scrm-go

card_controller.go 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package members
  2. import (
  3. base_ctl "SCRM/controllers"
  4. "SCRM/enums"
  5. "SCRM/models"
  6. "SCRM/service/member_service"
  7. "time"
  8. "fmt"
  9. "github.com/astaxie/beego"
  10. "github.com/bwmarrin/snowflake"
  11. )
  12. func CardCtlRegistRouters() {
  13. beego.Router("/api/member/card/edit", &CardAPIController{}, "Put:EditMemberCard")
  14. }
  15. type CardAPIController struct {
  16. base_ctl.BaseAuthAPIController
  17. }
  18. func (c *CardAPIController) EditMemberCard() {
  19. id, _ := c.GetInt64("id", 0)
  20. if id <= 0 {
  21. c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误:id")
  22. return
  23. }
  24. cardID, _ := c.GetInt64("card_id", 0)
  25. if cardID <= 0 { //设置为无卡
  26. cardID = 0
  27. }
  28. adminUserInfo := c.GetAdminUserInfo()
  29. timeNow := time.Now().Unix()
  30. member, err := member_service.GetOnlyMemberByID(adminUserInfo.CurrentOrgId, id)
  31. if err != nil {
  32. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")")
  33. return
  34. }
  35. if member == nil {
  36. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(会员记录不存在)")
  37. return
  38. }
  39. returnData := make(map[string]interface{}, 0)
  40. if cardID == 0 {
  41. err = member_service.DeleteUserCard(adminUserInfo.CurrentOrgId, id)
  42. if err != nil {
  43. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")")
  44. return
  45. }
  46. returnData["user_card"] = nil
  47. } else {
  48. card, err := member_service.GetCardByID(adminUserInfo.CurrentOrgId, cardID)
  49. if err != nil {
  50. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")")
  51. return
  52. }
  53. if card == nil {
  54. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(会员卡不存在)")
  55. return
  56. }
  57. oldUserCard, err := member_service.GetUserCardByID(adminUserInfo.CurrentOrgId, id)
  58. if err != nil {
  59. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")")
  60. return
  61. }
  62. var userCard models.UserCard
  63. if oldUserCard != nil {
  64. userCard = *oldUserCard
  65. } else {
  66. node, err := snowflake.NewNode(1)
  67. if err != nil {
  68. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(生成卡号时出错)")
  69. return
  70. }
  71. cardNo := node.Generate()
  72. userCard.CardId = card.ID
  73. userCard.CardName = card.CardName
  74. userCard.CustomerId = id
  75. userCard.UserOrgId = adminUserInfo.CurrentOrgId
  76. userCard.CreatedTime = timeNow
  77. userCard.CardNo = fmt.Sprintf("%s", cardNo)
  78. }
  79. userCard.UpdatedTime = timeNow
  80. userCard.Status = 1
  81. err = member_service.SaveUserCard(&userCard, member)
  82. if err != nil {
  83. c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")")
  84. return
  85. }
  86. returnData["user_card"] = userCard
  87. returnData["member"] = member
  88. }
  89. c.ServeSuccessJSON(returnData)
  90. return
  91. }