package controller import ( "github.com/codinl/go-logger" "github.com/gin-gonic/gin" "mh-server/lib/auth" "mh-server/lib/status" "mh-server/lib/utils" "mh-server/model" ) func UserRedeemCodeList(c *gin.Context) { uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } codeList, err := model.UserRedeemCodeList(uc.Uid) if err != nil { logger.Errorf("err:%#v", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, codeList) } func UserConvertRedeemCode(c *gin.Context) { req := &struct { SerialCode string `json:"serial_code"` }{} if c.ShouldBindJSON(req) != nil { logger.Errorf("para err") RespJson(c, status.BadRequest, nil) return } uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } err := model.UserRedeemCodeConvert(uc.Uid, req.SerialCode) if err != nil { logger.Errorf("err:%#v", err) RespJson(c, status.InternalServerError, nil) return } RespOK(c, nil) } func UserMemberRenewalState(c *gin.Context) { uc := auth.GetCurrentUser(c) if uc == nil { RespJson(c, status.Unauthorized, nil) return } var activityMemberRenewal model.ActivityMemberRenewal err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).StateEq(1). One(&activityMemberRenewal) if err != nil && err != model.RecordNotFound { logger.Error("activity member renewal err:", err) RespJson(c, status.InternalServerError, nil) return } isPop := true if err == model.RecordNotFound { user := model.GetUserByUid(uc.Uid) if user.MemberExpire.After(utils.Now().AddDate(0, -1, 0)) && user.MemberExpire.Before(utils.Now()) { activityMemberRenewal = model.ActivityMemberRenewal{ ActivityId: 1, Uid: uc.Uid, State: 1, StartTime: utils.Now(), IsPop: true, MemberLevel: user.MemberLevel, } err = model.DB.Create(&activityMemberRenewal).Error if err != nil { logger.Error("create activity member renewal err:", err) RespJson(c, status.InternalServerError, nil) return } isPop = false } } isMemberRenewal := false if activityMemberRenewal.State == 1 { isMemberRenewal = true } ret := make(map[string]interface{}, 0) ret["is_pop"] = isPop ret["is_member_renewal"] = isMemberRenewal RespOK(c, ret) return }