package members import ( base_ctl "SCRM/controllers" "SCRM/enums" "SCRM/models" "SCRM/service/member_service" "time" "fmt" "github.com/astaxie/beego" "github.com/bwmarrin/snowflake" ) func CardCtlRegistRouters() { beego.Router("/api/member/card/edit", &CardAPIController{}, "Put:EditMemberCard") } type CardAPIController struct { base_ctl.BaseAuthAPIController } func (c *CardAPIController) EditMemberCard() { id, _ := c.GetInt64("id", 0) if id <= 0 { c.ServeFailJsonSend(enums.ErrorCodeParamWrong, "参数错误:id") return } cardID, _ := c.GetInt64("card_id", 0) if cardID <= 0 { //设置为无卡 cardID = 0 } adminUserInfo := c.GetAdminUserInfo() timeNow := time.Now().Unix() member, err := member_service.GetOnlyMemberByID(adminUserInfo.CurrentOrgId, id) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")") return } if member == nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(会员记录不存在)") return } returnData := make(map[string]interface{}, 0) if cardID == 0 { err = member_service.DeleteUserCard(adminUserInfo.CurrentOrgId, id) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")") return } returnData["user_card"] = nil } else { card, err := member_service.GetCardByID(adminUserInfo.CurrentOrgId, cardID) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")") return } if card == nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(会员卡不存在)") return } oldUserCard, err := member_service.GetUserCardByID(adminUserInfo.CurrentOrgId, id) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")") return } var userCard models.UserCard if oldUserCard != nil { userCard = *oldUserCard } else { node, err := snowflake.NewNode(1) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:(生成卡号时出错)") return } cardNo := node.Generate() userCard.CardId = card.ID userCard.CardName = card.CardName userCard.CustomerId = id userCard.UserOrgId = adminUserInfo.CurrentOrgId userCard.CreatedTime = timeNow userCard.CardNo = fmt.Sprintf("%s", cardNo) } userCard.UpdatedTime = timeNow userCard.Status = 1 err = member_service.SaveUserCard(&userCard, member) if err != nil { c.ServeFailJsonSend(enums.ErrorCodeDBUpdate, "设置会员卡失败:("+err.Error()+")") return } returnData["user_card"] = userCard returnData["member"] = member } c.ServeSuccessJSON(returnData) return }