103 lines
2.3 KiB
Go
103 lines
2.3 KiB
Go
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
|
|
}
|