scrm-go

members_controller.go 19KB

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