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