scrm-go

members_controller.go 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639
  1. package members
  2. import (
  3. base_ctl "SCRM/controllers"
  4. "SCRM/enums"
  5. "SCRM/models"
  6. "SCRM/service/member_service"
  7. "SCRM/utils"
  8. "reflect"
  9. "time"
  10. "encoding/json"
  11. "github.com/astaxie/beego"
  12. )
  13. func MemberCtlRegistRouters() {
  14. beego.Router("/api/members", &MembersAPIController{}, "get:GetMembers")
  15. beego.Router("/api/member/create", &MembersAPIController{}, "Post:CreateMember")
  16. beego.Router("/api/member/edit", &MembersAPIController{}, "Put:EditMember")
  17. beego.Router("/api/members/delete", &MembersAPIController{}, "Delete:DeleteMembers")
  18. }
  19. type MembersAPIController struct {
  20. base_ctl.BaseAuthAPIController
  21. }
  22. func (c *MembersAPIController) GetMembers() {
  23. page, _ := c.GetInt64("page", 1)
  24. limit, _ := c.GetInt64("limit", 10)
  25. startTime := c.GetString("start_time", "")
  26. endTime := c.GetString("end_time", "")
  27. searchKey := c.GetString("search", "")
  28. level, _ := c.GetInt64("level", 0)
  29. source, _ := c.GetInt64("source", 0)
  30. tag, _ := c.GetInt64("tag", 0)
  31. init, _ := c.GetInt64("init", 0)
  32. if page <= 0 {
  33. page = 1
  34. }
  35. if limit <= 0 {
  36. limit = 10
  37. }
  38. adminUserInfo := c.GetAdminUserInfo()
  39. timeLayout := "2006-01-02 15:04:05"
  40. var isStartTime bool
  41. var theStartTIme int64
  42. if len(startTime) > 0 {
  43. theTime, err := utils.ParseTimeStringToTime(timeLayout, startTime+" 00:00:00")
  44. if err != nil {
  45. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "开始时间错误")
  46. return
  47. }
  48. isStartTime = true
  49. theStartTIme = theTime.Unix()
  50. }
  51. var isEndTime bool
  52. var theEndtTIme int64
  53. if len(endTime) > 0 {
  54. theTime, err := utils.ParseTimeStringToTime(timeLayout, endTime+" 23:59:59")
  55. if err != nil {
  56. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "结束时间错误")
  57. return
  58. }
  59. isEndTime = true
  60. theEndtTIme = theTime.Unix()
  61. }
  62. members, total, err := member_service.GetMemberList(adminUserInfo.CurrentOrgId, page, limit, level, source, tag, theStartTIme, theEndtTIme, isStartTime, isEndTime, searchKey)
  63. if err != nil {
  64. c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取会员列表失败")
  65. return
  66. }
  67. returnData := make(map[string]interface{}, 0)
  68. if init == 1 {
  69. cards, err := member_service.GetCardList(adminUserInfo.CurrentOrgId)
  70. if err != nil {
  71. c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取会员卡列表失败")
  72. return
  73. }
  74. returnData["cards"] = cards
  75. tags, err := member_service.GetTagList(adminUserInfo.CurrentOrgId)
  76. if err != nil {
  77. c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取标签列表失败")
  78. return
  79. }
  80. returnData["tags"] = tags
  81. illness, err := member_service.GetIllnessList()
  82. if err != nil {
  83. c.ServeFailJsonSend(enums.ErrorCodeDataException, "获取病种列表失败")
  84. return
  85. }
  86. returnData["illness"] = illness
  87. }
  88. returnData["members"] = members
  89. returnData["total"] = total
  90. c.ServeSuccessJSON(returnData)
  91. return
  92. }
  93. func (c *MembersAPIController) CreateMember() {
  94. adminUserInfo := c.GetAdminUserInfo()
  95. timeNow := time.Now().Unix()
  96. dataBody := make(map[string]interface{}, 0)
  97. err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody)
  98. if err != nil {
  99. utils.ErrorLog(err.Error())
  100. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  101. return
  102. }
  103. var member member_service.Members
  104. if dataBody["name"] == nil || reflect.TypeOf(dataBody["name"]).String() != "string" {
  105. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:姓名")
  106. return
  107. }
  108. name, _ := dataBody["name"].(string)
  109. if len(name) == 0 {
  110. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "姓名不能为空")
  111. return
  112. }
  113. member.Name = name
  114. if dataBody["mobile"] == nil || reflect.TypeOf(dataBody["mobile"]).String() != "string" {
  115. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:手机号")
  116. return
  117. }
  118. mobile, _ := dataBody["mobile"].(string)
  119. if len(mobile) == 0 {
  120. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "手机号不能为空")
  121. return
  122. }
  123. if !utils.CheckMobile(mobile) {
  124. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "手机号格式不正确")
  125. return
  126. }
  127. member.Mobile = mobile
  128. if dataBody["gender"] == nil || reflect.TypeOf(dataBody["gender"]).String() != "float64" {
  129. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:性别")
  130. return
  131. }
  132. gender := int64(dataBody["gender"].(float64))
  133. if gender != 1 && gender != 2 {
  134. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "性别选择不正确")
  135. return
  136. }
  137. member.Gender = gender
  138. if dataBody["birthday"] == nil || reflect.TypeOf(dataBody["birthday"]).String() != "string" {
  139. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:生日")
  140. return
  141. }
  142. birthday, _ := dataBody["birthday"].(string)
  143. if len(birthday) == 0 {
  144. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "生日格式不正确")
  145. return
  146. }
  147. timeLayout := "2006-01-02 15:04:05"
  148. theTime, err := utils.ParseTimeStringToTime(timeLayout, birthday+" 00:00:00")
  149. if err != nil {
  150. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "生日格式不正确")
  151. return
  152. }
  153. member.Birthday = theTime.Unix()
  154. if dataBody["province_id"] == nil || reflect.TypeOf(dataBody["province_id"]).String() != "float64" {
  155. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(省)")
  156. return
  157. }
  158. provinceID := int64(dataBody["province_id"].(float64))
  159. if provinceID <= 0 {
  160. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  161. return
  162. }
  163. member.ProvinceId = provinceID
  164. if dataBody["city_id"] == nil || reflect.TypeOf(dataBody["city_id"]).String() != "float64" {
  165. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(市)")
  166. return
  167. }
  168. cityID := int64(dataBody["city_id"].(float64))
  169. if cityID <= 0 {
  170. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  171. return
  172. }
  173. member.CityId = cityID
  174. if dataBody["district_id"] == nil || reflect.TypeOf(dataBody["district_id"]).String() != "float64" {
  175. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(区/县)")
  176. return
  177. }
  178. districtID := int64(dataBody["district_id"].(float64))
  179. if districtID <= 0 {
  180. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  181. return
  182. }
  183. member.DistrictId = districtID
  184. if dataBody["illness"] == nil || reflect.TypeOf(dataBody["illness"]).String() != "[]interface {}" {
  185. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:病种")
  186. return
  187. }
  188. illnessInters := dataBody["illness"].([]interface{})
  189. if len(illnessInters) <= 0 {
  190. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择病种")
  191. return
  192. }
  193. member.Illness = make([]*member_service.CustomerIllness, 0)
  194. for _, illnessInter := range illnessInters {
  195. id := int64(illnessInter.(float64))
  196. var illItem member_service.CustomerIllness
  197. illItem.UserOrgId = adminUserInfo.CurrentOrgId
  198. illItem.IllnessId = id
  199. illItem.Status = 1
  200. illItem.UpdatedTime = timeNow
  201. illItem.CreatedTime = timeNow
  202. member.Illness = append(member.Illness, &illItem)
  203. }
  204. if dataBody["ill_date"] == nil || reflect.TypeOf(dataBody["ill_date"]).String() != "string" {
  205. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:患病时间")
  206. return
  207. }
  208. illDate, _ := dataBody["ill_date"].(string)
  209. if len(illDate) == 0 {
  210. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "患病时间格式不正确")
  211. return
  212. }
  213. illDateTime, err := utils.ParseTimeStringToTime(timeLayout, illDate+" 00:00:00")
  214. if err != nil {
  215. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "患病时间格式不正确")
  216. return
  217. }
  218. member.IllDate = illDateTime.Unix()
  219. if dataBody["treat_type"] == nil || reflect.TypeOf(dataBody["treat_type"]).String() != "float64" {
  220. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:治疗方式")
  221. return
  222. }
  223. treatType := int64(dataBody["treat_type"].(float64))
  224. if treatType <= 0 {
  225. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择治疗方式")
  226. return
  227. }
  228. member.TreatType = treatType
  229. if dataBody["tags"] != nil && reflect.TypeOf(dataBody["tags"]).String() == "[]interface {}" {
  230. tagsInters := dataBody["tags"].([]interface{})
  231. if len(tagsInters) > 0 {
  232. member.UserTags = make([]*models.UserTagLinks, 0)
  233. for _, tagsInter := range tagsInters {
  234. id := int64(tagsInter.(float64))
  235. var tagItem models.UserTagLinks
  236. tagItem.TagId = id
  237. tagItem.UserOrgId = adminUserInfo.CurrentOrgId
  238. tagItem.Status = 1
  239. tagItem.UpdatedTime = timeNow
  240. tagItem.CreatedTime = timeNow
  241. member.UserTags = append(member.UserTags, &tagItem)
  242. }
  243. }
  244. }
  245. if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" {
  246. remark, _ := dataBody["remark"].(string)
  247. if len(remark) > 0 {
  248. member.Remark = remark
  249. }
  250. }
  251. if dataBody["avatar"] != nil && reflect.TypeOf(dataBody["avatar"]).String() == "string" {
  252. avatar, _ := dataBody["avatar"].(string)
  253. if len(avatar) > 0 {
  254. member.Avatar = avatar
  255. }
  256. }
  257. customer, err := member_service.GetCustomerByMobile(adminUserInfo.CurrentOrgId, member.Mobile)
  258. if err != nil {
  259. c.ServeFailJsonSend(enums.ErrorCodeDBCreate, "添加会员失败:("+err.Error()+")")
  260. return
  261. }
  262. if customer != nil {
  263. c.ServeFailJsonSend(enums.ErrorCodeDBCreate, "添加会员失败:(已经存在该手机号的客户)")
  264. return
  265. }
  266. member.UserOrgId = adminUserInfo.CurrentOrgId
  267. member.Status = 1
  268. member.CreatedTime = timeNow
  269. member.UpdatedTime = timeNow
  270. member.Sources = 7
  271. user, err := member_service.GetUserByMobile(member.Mobile)
  272. if err != nil {
  273. c.ServeFailJsonSend(enums.ErrorCodeDBCreate, "添加会员失败:("+err.Error()+")")
  274. return
  275. }
  276. if user != nil {
  277. member.UserId = user.ID
  278. err = member_service.CreateMember(&member)
  279. if err != nil {
  280. c.ServeFailJsonSend(enums.ErrorCodeDBCreate, "添加会员失败:("+err.Error()+")")
  281. return
  282. }
  283. } else {
  284. var userData models.User
  285. userData.Avatar = member.Avatar
  286. userData.AvatarThumb = member.Avatar
  287. userData.Username = member.Name
  288. userData.Remarkname = member.Name
  289. userData.Mobile = member.Mobile
  290. userData.Gender = member.Gender
  291. userData.ProvinceId = member.ProvinceId
  292. userData.CityId = member.CityId
  293. userData.Address = member.Address
  294. userData.Birthday = member.Birthday
  295. userData.TreatType = member.TreatType
  296. userData.Relationship = member.Relationship
  297. userData.IllnessId = member.Illness[0].IllnessId
  298. userData.Sources = member.Sources
  299. userData.Status = 1
  300. userData.CreatedTime = timeNow
  301. userData.UpdatedTime = timeNow
  302. err = member_service.CreateMemberWithUser(&member, &userData)
  303. if err != nil {
  304. c.ServeFailJsonSend(enums.ErrorCodeDBCreate, "添加会员失败:("+err.Error()+")")
  305. return
  306. }
  307. }
  308. returnData := make(map[string]interface{}, 0)
  309. returnData["member"] = member
  310. c.ServeSuccessJSON(returnData)
  311. return
  312. }
  313. func (c *MembersAPIController) EditMember() {
  314. id, _ := c.GetInt64("id", 0)
  315. if id <= 0 {
  316. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误:id")
  317. return
  318. }
  319. adminUserInfo := c.GetAdminUserInfo()
  320. member, err := member_service.GetOnlyMemberByID(adminUserInfo.CurrentOrgId, id)
  321. if err != nil {
  322. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
  323. return
  324. }
  325. if member == nil {
  326. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:(会员记录不存在)")
  327. return
  328. }
  329. timeNow := time.Now().Unix()
  330. dataBody := make(map[string]interface{}, 0)
  331. err = json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody)
  332. if err != nil {
  333. utils.ErrorLog(err.Error())
  334. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  335. return
  336. }
  337. if dataBody["name"] == nil || reflect.TypeOf(dataBody["name"]).String() != "string" {
  338. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:姓名")
  339. return
  340. }
  341. name, _ := dataBody["name"].(string)
  342. if len(name) == 0 {
  343. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "姓名不能为空")
  344. return
  345. }
  346. member.Name = name
  347. if dataBody["mobile"] == nil || reflect.TypeOf(dataBody["mobile"]).String() != "string" {
  348. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:手机号")
  349. return
  350. }
  351. mobile, _ := dataBody["mobile"].(string)
  352. if len(mobile) == 0 {
  353. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "手机号不能为空")
  354. return
  355. }
  356. if !utils.CheckMobile(mobile) {
  357. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "手机号格式不正确")
  358. return
  359. }
  360. changeMobile := true
  361. if member.Mobile == mobile {
  362. changeMobile = false
  363. }
  364. member.Mobile = mobile
  365. if dataBody["gender"] == nil || reflect.TypeOf(dataBody["gender"]).String() != "float64" {
  366. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:性别")
  367. return
  368. }
  369. gender := int64(dataBody["gender"].(float64))
  370. if gender != 1 && gender != 2 {
  371. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "性别选择不正确")
  372. return
  373. }
  374. member.Gender = gender
  375. if dataBody["birthday"] == nil || reflect.TypeOf(dataBody["birthday"]).String() != "string" {
  376. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:生日")
  377. return
  378. }
  379. birthday, _ := dataBody["birthday"].(string)
  380. if len(birthday) == 0 {
  381. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "生日格式不正确")
  382. return
  383. }
  384. timeLayout := "2006-01-02 15:04:05"
  385. theTime, err := utils.ParseTimeStringToTime(timeLayout, birthday+" 00:00:00")
  386. if err != nil {
  387. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "生日格式不正确")
  388. return
  389. }
  390. member.Birthday = theTime.Unix()
  391. if dataBody["province_id"] == nil || reflect.TypeOf(dataBody["province_id"]).String() != "float64" {
  392. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(省)")
  393. return
  394. }
  395. provinceID := int64(dataBody["province_id"].(float64))
  396. if provinceID <= 0 {
  397. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  398. return
  399. }
  400. member.ProvinceId = provinceID
  401. if dataBody["city_id"] == nil || reflect.TypeOf(dataBody["city_id"]).String() != "float64" {
  402. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(市)")
  403. return
  404. }
  405. cityID := int64(dataBody["city_id"].(float64))
  406. if cityID <= 0 {
  407. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  408. return
  409. }
  410. member.CityId = cityID
  411. if dataBody["district_id"] == nil || reflect.TypeOf(dataBody["district_id"]).String() != "float64" {
  412. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:地区(区/县)")
  413. return
  414. }
  415. districtID := int64(dataBody["district_id"].(float64))
  416. if districtID <= 0 {
  417. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择地区")
  418. return
  419. }
  420. member.DistrictId = districtID
  421. if dataBody["illness"] == nil || reflect.TypeOf(dataBody["illness"]).String() != "[]interface {}" {
  422. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:病种")
  423. return
  424. }
  425. illnessInters := dataBody["illness"].([]interface{})
  426. if len(illnessInters) <= 0 {
  427. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择病种")
  428. return
  429. }
  430. member.Illness = make([]*member_service.CustomerIllness, 0)
  431. illnessIDS := make([]int64, 0)
  432. illnessIDMap := make(map[int64]int64, 0)
  433. for _, illnessInter := range illnessInters {
  434. id := int64(illnessInter.(float64))
  435. illnessIDS = append(illnessIDS, id)
  436. illnessIDMap[id] = id
  437. }
  438. allIllness, err := member_service.GetMemberAllIllness(adminUserInfo.CurrentOrgId, member.ID)
  439. if err != nil {
  440. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
  441. return
  442. }
  443. oldIllIDMap := make(map[int64]int64, 0)
  444. for _, illItem := range allIllness {
  445. item := *illItem
  446. item.Status = 1
  447. if _, exist := illnessIDMap[item.IllnessId]; !exist {
  448. item.Status = 0
  449. item.UpdatedTime = timeNow
  450. }
  451. member.Illness = append(member.Illness, &item)
  452. oldIllIDMap[item.IllnessId] = item.IllnessId
  453. }
  454. for _, id := range illnessIDMap {
  455. if _, exist := oldIllIDMap[id]; exist {
  456. continue
  457. }
  458. var illItem member_service.CustomerIllness
  459. illItem.UserOrgId = adminUserInfo.CurrentOrgId
  460. illItem.IllnessId = id
  461. illItem.Status = 1
  462. illItem.UpdatedTime = timeNow
  463. illItem.CreatedTime = timeNow
  464. member.Illness = append(member.Illness, &illItem)
  465. }
  466. if dataBody["ill_date"] == nil || reflect.TypeOf(dataBody["ill_date"]).String() != "string" {
  467. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:患病时间")
  468. return
  469. }
  470. illDate, _ := dataBody["ill_date"].(string)
  471. if len(illDate) == 0 {
  472. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "患病时间格式不正确")
  473. return
  474. }
  475. illDateTime, err := utils.ParseTimeStringToTime(timeLayout, illDate+" 00:00:00")
  476. if err != nil {
  477. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "患病时间格式不正确")
  478. return
  479. }
  480. member.IllDate = illDateTime.Unix()
  481. if dataBody["treat_type"] == nil || reflect.TypeOf(dataBody["treat_type"]).String() != "float64" {
  482. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "缺少参数:治疗方式")
  483. return
  484. }
  485. treatType := int64(dataBody["treat_type"].(float64))
  486. if treatType <= 0 {
  487. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "请选择治疗方式")
  488. return
  489. }
  490. member.TreatType = treatType
  491. if dataBody["remark"] != nil && reflect.TypeOf(dataBody["remark"]).String() == "string" {
  492. remark, _ := dataBody["remark"].(string)
  493. if len(remark) > 0 {
  494. member.Remark = remark
  495. }
  496. }
  497. if dataBody["avatar"] != nil && reflect.TypeOf(dataBody["avatar"]).String() == "string" {
  498. avatar, _ := dataBody["avatar"].(string)
  499. if len(avatar) > 0 {
  500. member.Avatar = avatar
  501. }
  502. }
  503. if changeMobile {
  504. customer, err := member_service.GetCustomerByMobile(adminUserInfo.CurrentOrgId, member.Mobile)
  505. if err != nil {
  506. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
  507. return
  508. }
  509. if customer != nil && customer.ID != member.ID {
  510. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:(已经存在该手机号的客户)")
  511. return
  512. }
  513. }
  514. member.UpdatedTime = timeNow
  515. err = member_service.EditMember(member)
  516. if err != nil {
  517. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "编辑会员失败:("+err.Error()+")")
  518. return
  519. }
  520. illness := member.Illness
  521. member.Illness = make([]*member_service.CustomerIllness, 0)
  522. for _, ill := range illness {
  523. illItem := *ill
  524. if illItem.Status == 0 {
  525. continue
  526. }
  527. member.Illness = append(member.Illness, &illItem)
  528. }
  529. returnData := make(map[string]interface{}, 0)
  530. returnData["member"] = member
  531. c.ServeSuccessJSON(returnData)
  532. return
  533. }
  534. func (c *MembersAPIController) DeleteMembers() {
  535. adminUserInfo := c.GetAdminUserInfo()
  536. dataBody := make(map[string]interface{}, 0)
  537. err := json.Unmarshal(c.Ctx.Input.RequestBody, &dataBody)
  538. if err != nil {
  539. utils.ErrorLog(err.Error())
  540. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误")
  541. return
  542. }
  543. idsInters := dataBody["ids"].([]interface{})
  544. if len(idsInters) == 0 {
  545. if err != nil {
  546. c.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:(没有选择会员)")
  547. return
  548. }
  549. }
  550. ids := make([]int64, 0)
  551. for _, idsInter := range idsInters {
  552. id := int64(idsInter.(float64))
  553. ids = append(ids, id)
  554. }
  555. err = member_service.DeleteMembers(adminUserInfo.CurrentOrgId, ids)
  556. if err != nil {
  557. c.ServeFailJsonSend(enums.ErrorCodeDBDelete, "删除会员失败:("+err.Error()+")")
  558. return
  559. }
  560. returnData := make(map[string]interface{}, 0)
  561. returnData["msg"] = "ok"
  562. c.ServeSuccessJSON(returnData)
  563. return
  564. }