fix:生成文件
This commit is contained in:
parent
f4280d733d
commit
c75270892a
|
@ -56,9 +56,16 @@ func UserMemberRenewalState(c *gin.Context) {
|
||||||
RespJson(c, status.Unauthorized, nil)
|
RespJson(c, status.Unauthorized, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
user := model.GetUserByUid(uc.Uid)
|
||||||
|
if !user.IsMember() {
|
||||||
|
RespOK(c, map[string]interface{}{
|
||||||
|
"is_pop": true,
|
||||||
|
"is_member_renewal": false,
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
var activityMemberRenewal model.ActivityMemberRenewal
|
var activityMemberRenewal model.ActivityMemberRenewal
|
||||||
err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).StateEq(1).
|
err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).ActivityIdEq(1).StateEq(1).
|
||||||
One(&activityMemberRenewal)
|
One(&activityMemberRenewal)
|
||||||
if err != nil && err != model.RecordNotFound {
|
if err != nil && err != model.RecordNotFound {
|
||||||
logger.Error("activity member renewal err:", err)
|
logger.Error("activity member renewal err:", err)
|
||||||
|
@ -68,7 +75,6 @@ func UserMemberRenewalState(c *gin.Context) {
|
||||||
isPop := true
|
isPop := true
|
||||||
|
|
||||||
if err == model.RecordNotFound {
|
if err == model.RecordNotFound {
|
||||||
user := model.GetUserByUid(uc.Uid)
|
|
||||||
if user.MemberExpire.After(utils.Now().AddDate(0, -1, 0)) &&
|
if user.MemberExpire.After(utils.Now().AddDate(0, -1, 0)) &&
|
||||||
user.MemberExpire.Before(utils.Now()) {
|
user.MemberExpire.Before(utils.Now()) {
|
||||||
activityMemberRenewal = model.ActivityMemberRenewal{
|
activityMemberRenewal = model.ActivityMemberRenewal{
|
||||||
|
@ -89,6 +95,16 @@ func UserMemberRenewalState(c *gin.Context) {
|
||||||
isPop = false
|
isPop = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if activityMemberRenewal.StartTime.AddDate(0, 0, 7).Before(utils.Now()) {
|
||||||
|
activityMemberRenewal.State = 3
|
||||||
|
_, err = model.NewActivityMemberRenewalQuerySet(model.DB).IDEq(activityMemberRenewal.ID).GetUpdater().
|
||||||
|
SetState(3).UpdateNum()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("update num err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
isMemberRenewal := false
|
isMemberRenewal := false
|
||||||
if activityMemberRenewal.State == 1 {
|
if activityMemberRenewal.State == 1 {
|
||||||
isMemberRenewal = true
|
isMemberRenewal = true
|
||||||
|
@ -100,3 +116,164 @@ func UserMemberRenewalState(c *gin.Context) {
|
||||||
RespOK(c, ret)
|
RespOK(c, ret)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func UserMemberRenewalInfo(c *gin.Context) {
|
||||||
|
uc := auth.GetCurrentUser(c)
|
||||||
|
if uc == nil {
|
||||||
|
RespJson(c, status.Unauthorized, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//uc := auth.UserClaims{Uid: 5640286}
|
||||||
|
var renewal model.ActivityMemberRenewal
|
||||||
|
err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).ActivityIdEq(1).
|
||||||
|
StateEq(1).One(&renewal)
|
||||||
|
if err != nil && err != model.RecordNotFound {
|
||||||
|
logger.Error("renewal err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err == model.RecordNotFound {
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var coupons []model.Coupon
|
||||||
|
err = model.NewCouponQuerySet(model.DB).ActivityIdEq(renewal.ActivityId).All(&coupons)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("coupons err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var userCoupons []model.UserCoupon
|
||||||
|
err = model.NewUserCouponQuerySet(model.DB).UidEq(uc.Uid).ActivityIdEq(renewal.ActivityId).
|
||||||
|
StateEq(1).All(&userCoupons)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("userCoupons err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
userCouponMap := make(map[uint32]*model.UserCoupon, 0)
|
||||||
|
for i, _ := range userCoupons {
|
||||||
|
userCouponMap[userCoupons[i].CouponId] = &userCoupons[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, _ := range coupons {
|
||||||
|
_, ok := userCouponMap[coupons[i].ID]
|
||||||
|
if ok {
|
||||||
|
coupons[i].IsDraw = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
down := 7*24*3600 - (utils.Now().Unix() - renewal.StartTime.Unix())
|
||||||
|
ret := map[string]interface{}{
|
||||||
|
"coupon_list": coupons,
|
||||||
|
"renewal": renewal,
|
||||||
|
"time_down": down,
|
||||||
|
}
|
||||||
|
RespOK(c, ret)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func UserMemberRenewalCouponDraw(c *gin.Context) {
|
||||||
|
req := &struct {
|
||||||
|
CouponIds []uint32 `json:"coupon_ids" binding:"required"`
|
||||||
|
}{}
|
||||||
|
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
|
||||||
|
}
|
||||||
|
if len(req.CouponIds) == 0 {
|
||||||
|
logger.Errorf("para err")
|
||||||
|
RespOK(c, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
var coupons []model.Coupon
|
||||||
|
err := model.NewCouponQuerySet(model.DB).IDIn(req.CouponIds...).All(&coupons)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("coupons err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, _ := range coupons {
|
||||||
|
userCoupon := &model.UserCoupon{
|
||||||
|
Uid: uc.Uid,
|
||||||
|
CouponId: coupons[i].ID,
|
||||||
|
CouponType: coupons[i].CouponType,
|
||||||
|
ActivityType: coupons[i].ActivityType,
|
||||||
|
ActivityId: coupons[i].ActivityId,
|
||||||
|
Value: coupons[i].Value,
|
||||||
|
State: 1,
|
||||||
|
ActiveStart: coupons[i].ActiveStart,
|
||||||
|
ActiveEnd: coupons[i].ActiveEnd,
|
||||||
|
MemberLevel: coupons[i].MemberLevel,
|
||||||
|
}
|
||||||
|
|
||||||
|
err = model.DB.Create(userCoupon).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("user coupon err:", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RespOK(c, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func MemberRenewalUserCouponList(c *gin.Context) {
|
||||||
|
req := struct {
|
||||||
|
PageIdx int `json:"page_idx"`
|
||||||
|
PageSize int `json:"page_size"`
|
||||||
|
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
|
||||||
|
}{}
|
||||||
|
if err := c.ShouldBindJSON(&req); err != nil {
|
||||||
|
logger.Error(err)
|
||||||
|
RespJson(c, status.BadRequest, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
uc := auth.GetCurrentUser(c)
|
||||||
|
if uc == nil {
|
||||||
|
RespJson(c, status.Unauthorized, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
page := req.PageIdx - 1
|
||||||
|
if page < 0 {
|
||||||
|
page = 0
|
||||||
|
}
|
||||||
|
if req.PageSize == 0 {
|
||||||
|
req.PageSize = 10
|
||||||
|
}
|
||||||
|
|
||||||
|
qs := model.NewUserCouponQuerySet(model.DB).UidEq(uc.Uid)
|
||||||
|
|
||||||
|
count, err := qs.Count()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("count err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
totalPage := count/req.PageSize + 1
|
||||||
|
var coupons []model.UserCoupon
|
||||||
|
err = qs.OrderDescByID().Offset(page * req.PageSize).Limit(req.PageSize).All(&coupons)
|
||||||
|
if err != nil && err != model.RecordNotFound {
|
||||||
|
logger.Error("coupons err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ret := map[string]interface{}{
|
||||||
|
"list": coupons,
|
||||||
|
"total_page": totalPage,
|
||||||
|
"page_idx": req.PageIdx,
|
||||||
|
}
|
||||||
|
RespOK(c, ret)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
1
controller/analyse.go
Normal file
1
controller/analyse.go
Normal file
|
@ -0,0 +1 @@
|
||||||
|
package controller
|
|
@ -19,6 +19,7 @@ import (
|
||||||
aliyun "mh-server/lib/ali"
|
aliyun "mh-server/lib/ali"
|
||||||
"mh-server/lib/auth"
|
"mh-server/lib/auth"
|
||||||
"mh-server/lib/status"
|
"mh-server/lib/status"
|
||||||
|
"mh-server/lib/utils"
|
||||||
"mh-server/lib/wxpay"
|
"mh-server/lib/wxpay"
|
||||||
"mh-server/model"
|
"mh-server/model"
|
||||||
"sort"
|
"sort"
|
||||||
|
@ -49,7 +50,8 @@ func GameCardList(c *gin.Context) {
|
||||||
}
|
}
|
||||||
fmt.Println("游戏类型:GameTypeIds:", req.GameTypeIds)
|
fmt.Println("游戏类型:GameTypeIds:", req.GameTypeIds)
|
||||||
|
|
||||||
cardList, totalPage, err := model.GetGameCardList(req.SortType, req.Page, req.PageSize, req.GameTypeIds, req.StoreId, uc.Uid)
|
cardList, totalPage, err := model.GetGameCardList(req.SortType, req.Page, req.PageSize,
|
||||||
|
req.GameTypeIds, req.StoreId, uc.Uid)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -67,6 +69,7 @@ func GameCardList(c *gin.Context) {
|
||||||
func GameCardInfo(c *gin.Context) {
|
func GameCardInfo(c *gin.Context) {
|
||||||
req := struct {
|
req := struct {
|
||||||
GameId uint64 `json:"game_id"`
|
GameId uint64 `json:"game_id"`
|
||||||
|
StoreId uint32 `json:"store_id"` // 门店id
|
||||||
}{}
|
}{}
|
||||||
if c.ShouldBindJSON(&req) != nil {
|
if c.ShouldBindJSON(&req) != nil {
|
||||||
RespJson(c, status.BadRequest, nil)
|
RespJson(c, status.BadRequest, nil)
|
||||||
|
@ -85,7 +88,7 @@ func GameCardInfo(c *gin.Context) {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
info, err := model.GetGameCardInfo(req.GameId)
|
info, err := model.GetGameCardInfo(req.GameId, req.StoreId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -170,12 +173,29 @@ func GameCardHotSearch(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func HomeCarouselList(c *gin.Context) {
|
func HomeCarouselList(c *gin.Context) {
|
||||||
|
uc := auth.GetCurrentUser(c)
|
||||||
|
if uc == nil {
|
||||||
|
RespJson(c, status.Unauthorized, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
carouselList, err := model.GetHomeCarouselList()
|
carouselList, err := model.GetHomeCarouselList()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
user := model.GetUserByUid(uc.Uid)
|
||||||
|
if user.MemberExpire.After(utils.Now().AddDate(0, -1, 0)) &&
|
||||||
|
user.MemberExpire.Before(utils.Now()) {
|
||||||
|
list := make([]model.HomeCarousel, 0, len(carouselList))
|
||||||
|
for i, _ := range carouselList {
|
||||||
|
if carouselList[i].ActivityType == 1 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
list = append(list, carouselList[i])
|
||||||
|
}
|
||||||
|
carouselList = list
|
||||||
|
}
|
||||||
RespOK(c, carouselList)
|
RespOK(c, carouselList)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -517,6 +537,14 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
model.CreateUserRentCardByMemberLevel(record.Uid, record.MemberLevel, memberConfig.CardMax)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if record.UserCouponId > 0 {
|
||||||
|
_, err = model.NewUserCouponQuerySet(model.DB).IDEq(record.UserCouponId).GetUpdater().
|
||||||
|
SetState(2).SetUseTime(utils.Now()).UpdateNum()
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("update user coupon state err:", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println("notify.TotalFee:", notifyInfo.TotalFee)
|
fmt.Println("notify.TotalFee:", notifyInfo.TotalFee)
|
||||||
fmt.Println("notify.OutTradeNo:", notifyInfo.OutTradeNo)
|
fmt.Println("notify.OutTradeNo:", notifyInfo.OutTradeNo)
|
||||||
|
|
||||||
|
@ -621,8 +649,8 @@ func PushWXPayNotice(c *gin.Context) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).SetMemberExpire(record.MemberExpire).
|
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
|
||||||
SetDeposit(memberConfig.MemberDeposit).UpdateNum()
|
SetMemberExpire(record.MemberExpire).SetDeposit(memberConfig.MemberDeposit).UpdateNum()
|
||||||
//err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
|
//err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
|
|
@ -208,6 +208,7 @@ func UserInfoUpdate(c *gin.Context) {
|
||||||
func OpenMember(c *gin.Context) {
|
func OpenMember(c *gin.Context) {
|
||||||
req := struct {
|
req := struct {
|
||||||
MemberLevel uint32 `json:"member_level"` // 昵称
|
MemberLevel uint32 `json:"member_level"` // 昵称
|
||||||
|
UserCouponId uint32 `json:"user_coupon_id"` // 优惠券id
|
||||||
}{}
|
}{}
|
||||||
if c.ShouldBindJSON(&req) != nil {
|
if c.ShouldBindJSON(&req) != nil {
|
||||||
logger.Error("parameter err")
|
logger.Error("parameter err")
|
||||||
|
@ -253,6 +254,23 @@ func OpenMember(c *gin.Context) {
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if req.UserCouponId != 0 {
|
||||||
|
var coupon model.UserCoupon
|
||||||
|
err = model.NewUserCouponQuerySet(model.DB).IDEq(req.UserCouponId).One(&coupon)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("coupon err:", err)
|
||||||
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if coupon.Uid == uc.Uid && coupon.MemberLevel == req.MemberLevel &&
|
||||||
|
coupon.ActivityId == 1 && coupon.State == 1 {
|
||||||
|
totalFee -= coupon.Value
|
||||||
|
} else {
|
||||||
|
req.UserCouponId = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//webPay, err := wxpay.WebPay(uid, totalFee, user.WxOpenID, "N", wxpay.WxPayMember)
|
//webPay, err := wxpay.WebPay(uid, totalFee, user.WxOpenID, "N", wxpay.WxPayMember)
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
// logger.Error(errors.New("WebPay err"))
|
// logger.Error(errors.New("WebPay err"))
|
||||||
|
@ -261,7 +279,8 @@ func OpenMember(c *gin.Context) {
|
||||||
//}
|
//}
|
||||||
//orderSn := utils.GetSerialNo32HEXString()
|
//orderSn := utils.GetSerialNo32HEXString()
|
||||||
orderSn := model.GetOrderSn()
|
orderSn := model.GetOrderSn()
|
||||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: req.MemberLevel}.Insert()
|
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn, MemberLevel: req.MemberLevel,
|
||||||
|
UserCouponId: req.UserCouponId}.Insert()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(errors.New("WebPay err"))
|
logger.Error(errors.New("WebPay err"))
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -299,11 +318,11 @@ func UpgradeMember(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
user := model.GetUserByUid(uc.Uid)
|
user := model.GetUserByUid(uc.Uid)
|
||||||
if user.MemberLevel != 2 && user.MemberLevel != 4 {
|
//if user.MemberLevel != 2 && user.MemberLevel != 4 {
|
||||||
logger.Error("MemberLevel err:")
|
// logger.Error("MemberLevel err:")
|
||||||
RespJson(c, status.InternalServerError, nil)
|
// RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
|
|
||||||
originalMemberConfig, err := model.GetMemberConfig(user.MemberLevel)
|
originalMemberConfig, err := model.GetMemberConfig(user.MemberLevel)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -332,7 +351,8 @@ func UpgradeMember(c *gin.Context) {
|
||||||
// 补押金
|
// 补押金
|
||||||
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
||||||
|
|
||||||
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).StatusEq(model.RedeemCodeStatusUsed).Count()
|
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).
|
||||||
|
StatusEq(model.RedeemCodeStatusUsed).Count()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -341,19 +361,19 @@ func UpgradeMember(c *gin.Context) {
|
||||||
fmt.Println("count:", count)
|
fmt.Println("count:", count)
|
||||||
// 抵扣天数
|
// 抵扣天数
|
||||||
deductionDays := int64(0)
|
deductionDays := int64(0)
|
||||||
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 12*3600
|
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 1*3600
|
||||||
if deductionTime < 0 {
|
if deductionTime < 0 {
|
||||||
deductionTime = 0
|
deductionTime = 0
|
||||||
}
|
}
|
||||||
if deductionTime > 0 {
|
if deductionTime > 0 {
|
||||||
deductionDays = deductionTime / int64(24*3600)
|
deductionDays = deductionTime / int64(24*3600)
|
||||||
}
|
}
|
||||||
|
memberYare := deductionDays/365 + 1
|
||||||
// 抵扣金
|
// 抵扣金
|
||||||
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
||||||
|
|
||||||
// 补会员费
|
// 补会员费
|
||||||
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
|
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
|
||||||
|
|
||||||
totalFee := int64(depositMendFee) + memberMendFee
|
totalFee := int64(depositMendFee) + memberMendFee
|
||||||
//if memberMendFee < 0 {
|
//if memberMendFee < 0 {
|
||||||
|
@ -383,10 +403,10 @@ func UpgradeMember(c *gin.Context) {
|
||||||
// return
|
// return
|
||||||
//}
|
//}
|
||||||
//orderSn := utils.GetSerialNo32HEXString()
|
//orderSn := utils.GetSerialNo32HEXString()
|
||||||
memberExpire := time.Now().AddDate(1, 0, count*30)
|
memberExpire := time.Now().AddDate(1*int(memberYare), 0, count*30)
|
||||||
orderSn := model.GetOrderSn()
|
orderSn := model.GetOrderSn()
|
||||||
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,
|
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,
|
||||||
MemberLevel: req.MemberLevel, OrderType: 3, MemberExpire: memberExpire}.Insert()
|
MemberLevel: req.MemberLevel, OrderType: 9, MemberExpire: memberExpire}.Insert()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(errors.New("WebPay err"))
|
logger.Error(errors.New("WebPay err"))
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -398,7 +418,8 @@ func UpgradeMember(c *gin.Context) {
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
webPay, err := wxpay.WebPay(orderSn, uint32(totalFee), user.WxOpenID, "N", wxpay.WxPayUpgradeMember, configInfo.NotifyUrl)
|
webPay, err := wxpay.WebPay(orderSn, uint32(totalFee), user.WxOpenID, "N", wxpay.WxPayUpgradeMember,
|
||||||
|
configInfo.NotifyUrl)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(errors.New("WebPay err"))
|
logger.Error(errors.New("WebPay err"))
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -424,11 +445,11 @@ func UpgradeMemberInfo(c *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
user := model.GetUserByUid(uc.Uid)
|
user := model.GetUserByUid(uc.Uid)
|
||||||
if user.MemberLevel != 2 && user.MemberLevel != 4 {
|
//if user.MemberLevel != 2 && user.MemberLevel != 4 {
|
||||||
logger.Error("MemberLevel err:")
|
// logger.Error("MemberLevel err:")
|
||||||
RespJson(c, status.InternalServerError, nil)
|
// RespJson(c, status.InternalServerError, nil)
|
||||||
return
|
// return
|
||||||
}
|
//}
|
||||||
|
|
||||||
//configInfo, err := model.PayConfigInfo()
|
//configInfo, err := model.PayConfigInfo()
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
|
@ -463,7 +484,8 @@ func UpgradeMemberInfo(c *gin.Context) {
|
||||||
// 补押金
|
// 补押金
|
||||||
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
depositMendFee := int64(memberConfig.MemberDeposit) - int64(user.Deposit)
|
||||||
|
|
||||||
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).StatusEq(model.RedeemCodeStatusUsed).Count()
|
count, err := model.NewUserRedeemCodeQuerySet(model.DB).UidEq(uc.Uid).CodeTypeEq(model.CodeTypeMemberCard30).
|
||||||
|
StatusEq(model.RedeemCodeStatusUsed).Count()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
RespJson(c, status.InternalServerError, nil)
|
RespJson(c, status.InternalServerError, nil)
|
||||||
|
@ -472,19 +494,19 @@ func UpgradeMemberInfo(c *gin.Context) {
|
||||||
fmt.Println("count:", count)
|
fmt.Println("count:", count)
|
||||||
// 抵扣天数
|
// 抵扣天数
|
||||||
deductionDays := int64(0)
|
deductionDays := int64(0)
|
||||||
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 12*3600
|
deductionTime := user.MemberExpire.Unix() - int64(count*30*24*3600) - time.Now().Unix() + 1*3600
|
||||||
if deductionTime < 0 {
|
if deductionTime < 0 {
|
||||||
deductionTime = 0
|
deductionTime = 0
|
||||||
}
|
}
|
||||||
if deductionTime > 0 {
|
if deductionTime > 0 {
|
||||||
deductionDays = deductionTime / int64(24*3600)
|
deductionDays = deductionTime / int64(24*3600)
|
||||||
}
|
}
|
||||||
|
memberYare := deductionDays/365 + 1
|
||||||
// 抵扣金
|
// 抵扣金
|
||||||
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
|
||||||
|
|
||||||
// 补会员费
|
// 补会员费
|
||||||
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
|
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
|
||||||
|
|
||||||
totalFee := int64(depositMendFee) + memberMendFee
|
totalFee := int64(depositMendFee) + memberMendFee
|
||||||
//if memberMendFee < 0 {
|
//if memberMendFee < 0 {
|
||||||
|
|
8
model/analyse.go
Normal file
8
model/analyse.go
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
package model
|
||||||
|
|
||||||
|
type Statistic struct {
|
||||||
|
Model
|
||||||
|
|
||||||
|
Count uint32 `json:"count"` // 计数
|
||||||
|
Type uint32 `json:"type" gorm:"index"` // 类型:1-
|
||||||
|
}
|
|
@ -1785,6 +1785,118 @@ func (qs CouponQuerySet) ActiveStartNe(activeStart time.Time) CouponQuerySet {
|
||||||
return qs.w(qs.db.Where("active_start != ?", activeStart))
|
return qs.w(qs.db.Where("active_start != ?", activeStart))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ActivityIdEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdEq(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id = ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdGt(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id > ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdGte(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id >= ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdIn(activityId ...uint32) CouponQuerySet {
|
||||||
|
if len(activityId) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityId in ActivityIdIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_id IN (?)", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdLt(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id < ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdLte(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id <= ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdNe(activityId uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id != ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityIdNotIn(activityId ...uint32) CouponQuerySet {
|
||||||
|
if len(activityId) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityId in ActivityIdNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_id NOT IN (?)", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeEq(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type = ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeGt(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type > ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeGte(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type >= ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeIn(activityType ...uint32) CouponQuerySet {
|
||||||
|
if len(activityType) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_type IN (?)", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeLt(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type < ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeLte(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type <= ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeNe(activityType uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type != ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) ActivityTypeNotIn(activityType ...uint32) CouponQuerySet {
|
||||||
|
if len(activityType) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_type NOT IN (?)", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
// All is an autogenerated method
|
// All is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) All(ret *[]Coupon) error {
|
func (qs CouponQuerySet) All(ret *[]Coupon) error {
|
||||||
|
@ -2113,6 +2225,62 @@ func (qs CouponQuerySet) Limit(limit int) CouponQuerySet {
|
||||||
return qs.w(qs.db.Limit(limit))
|
return qs.w(qs.db.Limit(limit))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MemberLevelEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelEq(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level = ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelGt(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level > ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelGte(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level >= ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelIn(memberLevel ...uint32) CouponQuerySet {
|
||||||
|
if len(memberLevel) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("member_level IN (?)", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelLt(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level < ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelLte(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level <= ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelNe(memberLevel uint32) CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level != ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) MemberLevelNotIn(memberLevel ...uint32) CouponQuerySet {
|
||||||
|
if len(memberLevel) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
// NameEq is an autogenerated method
|
// NameEq is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) NameEq(name string) CouponQuerySet {
|
func (qs CouponQuerySet) NameEq(name string) CouponQuerySet {
|
||||||
|
@ -2205,6 +2373,18 @@ func (qs CouponQuerySet) OrderAscByActiveStart() CouponQuerySet {
|
||||||
return qs.w(qs.db.Order("active_start ASC"))
|
return qs.w(qs.db.Order("active_start ASC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderAscByActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderAscByActivityId() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_id ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderAscByActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderAscByActivityType() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_type ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderAscByCouponType is an autogenerated method
|
// OrderAscByCouponType is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) OrderAscByCouponType() CouponQuerySet {
|
func (qs CouponQuerySet) OrderAscByCouponType() CouponQuerySet {
|
||||||
|
@ -2235,6 +2415,12 @@ func (qs CouponQuerySet) OrderAscByID() CouponQuerySet {
|
||||||
return qs.w(qs.db.Order("id ASC"))
|
return qs.w(qs.db.Order("id ASC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderAscByMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderAscByMemberLevel() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("member_level ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderAscByName is an autogenerated method
|
// OrderAscByName is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) OrderAscByName() CouponQuerySet {
|
func (qs CouponQuerySet) OrderAscByName() CouponQuerySet {
|
||||||
|
@ -2277,6 +2463,18 @@ func (qs CouponQuerySet) OrderDescByActiveStart() CouponQuerySet {
|
||||||
return qs.w(qs.db.Order("active_start DESC"))
|
return qs.w(qs.db.Order("active_start DESC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderDescByActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderDescByActivityId() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_id DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderDescByActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderDescByActivityType() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_type DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderDescByCouponType is an autogenerated method
|
// OrderDescByCouponType is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) OrderDescByCouponType() CouponQuerySet {
|
func (qs CouponQuerySet) OrderDescByCouponType() CouponQuerySet {
|
||||||
|
@ -2307,6 +2505,12 @@ func (qs CouponQuerySet) OrderDescByID() CouponQuerySet {
|
||||||
return qs.w(qs.db.Order("id DESC"))
|
return qs.w(qs.db.Order("id DESC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderDescByMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs CouponQuerySet) OrderDescByMemberLevel() CouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("member_level DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderDescByName is an autogenerated method
|
// OrderDescByName is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs CouponQuerySet) OrderDescByName() CouponQuerySet {
|
func (qs CouponQuerySet) OrderDescByName() CouponQuerySet {
|
||||||
|
@ -2555,6 +2759,20 @@ func (u CouponUpdater) SetActiveStart(activeStart time.Time) CouponUpdater {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u CouponUpdater) SetActivityId(activityId uint32) CouponUpdater {
|
||||||
|
u.fields[string(CouponDBSchema.ActivityId)] = activityId
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u CouponUpdater) SetActivityType(activityType uint32) CouponUpdater {
|
||||||
|
u.fields[string(CouponDBSchema.ActivityType)] = activityType
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
// SetCouponType is an autogenerated method
|
// SetCouponType is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (u CouponUpdater) SetCouponType(couponType string) CouponUpdater {
|
func (u CouponUpdater) SetCouponType(couponType string) CouponUpdater {
|
||||||
|
@ -2590,6 +2808,13 @@ func (u CouponUpdater) SetID(ID uint32) CouponUpdater {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u CouponUpdater) SetMemberLevel(memberLevel uint32) CouponUpdater {
|
||||||
|
u.fields[string(CouponDBSchema.MemberLevel)] = memberLevel
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
// SetName is an autogenerated method
|
// SetName is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (u CouponUpdater) SetName(name string) CouponUpdater {
|
func (u CouponUpdater) SetName(name string) CouponUpdater {
|
||||||
|
@ -2660,11 +2885,14 @@ var CouponDBSchema = struct {
|
||||||
Name CouponDBSchemaField
|
Name CouponDBSchemaField
|
||||||
Describe CouponDBSchemaField
|
Describe CouponDBSchemaField
|
||||||
CouponType CouponDBSchemaField
|
CouponType CouponDBSchemaField
|
||||||
|
ActivityType CouponDBSchemaField
|
||||||
|
ActivityId CouponDBSchemaField
|
||||||
Value CouponDBSchemaField
|
Value CouponDBSchemaField
|
||||||
OutCount CouponDBSchemaField
|
OutCount CouponDBSchemaField
|
||||||
UsedCount CouponDBSchemaField
|
UsedCount CouponDBSchemaField
|
||||||
ActiveStart CouponDBSchemaField
|
ActiveStart CouponDBSchemaField
|
||||||
ActiveEnd CouponDBSchemaField
|
ActiveEnd CouponDBSchemaField
|
||||||
|
MemberLevel CouponDBSchemaField
|
||||||
}{
|
}{
|
||||||
|
|
||||||
ID: CouponDBSchemaField("id"),
|
ID: CouponDBSchemaField("id"),
|
||||||
|
@ -2674,11 +2902,14 @@ var CouponDBSchema = struct {
|
||||||
Name: CouponDBSchemaField("name"),
|
Name: CouponDBSchemaField("name"),
|
||||||
Describe: CouponDBSchemaField("describe"),
|
Describe: CouponDBSchemaField("describe"),
|
||||||
CouponType: CouponDBSchemaField("coupon_type"),
|
CouponType: CouponDBSchemaField("coupon_type"),
|
||||||
|
ActivityType: CouponDBSchemaField("activity_type"),
|
||||||
|
ActivityId: CouponDBSchemaField("activity_id"),
|
||||||
Value: CouponDBSchemaField("value"),
|
Value: CouponDBSchemaField("value"),
|
||||||
OutCount: CouponDBSchemaField("out_count"),
|
OutCount: CouponDBSchemaField("out_count"),
|
||||||
UsedCount: CouponDBSchemaField("used_count"),
|
UsedCount: CouponDBSchemaField("used_count"),
|
||||||
ActiveStart: CouponDBSchemaField("active_start"),
|
ActiveStart: CouponDBSchemaField("active_start"),
|
||||||
ActiveEnd: CouponDBSchemaField("active_end"),
|
ActiveEnd: CouponDBSchemaField("active_end"),
|
||||||
|
MemberLevel: CouponDBSchemaField("member_level"),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update updates Coupon fields by primary key
|
// Update updates Coupon fields by primary key
|
||||||
|
@ -2692,11 +2923,14 @@ func (o *Coupon) Update(db *gorm.DB, fields ...CouponDBSchemaField) error {
|
||||||
"name": o.Name,
|
"name": o.Name,
|
||||||
"describe": o.Describe,
|
"describe": o.Describe,
|
||||||
"coupon_type": o.CouponType,
|
"coupon_type": o.CouponType,
|
||||||
|
"activity_type": o.ActivityType,
|
||||||
|
"activity_id": o.ActivityId,
|
||||||
"value": o.Value,
|
"value": o.Value,
|
||||||
"out_count": o.OutCount,
|
"out_count": o.OutCount,
|
||||||
"used_count": o.UsedCount,
|
"used_count": o.UsedCount,
|
||||||
"active_start": o.ActiveStart,
|
"active_start": o.ActiveStart,
|
||||||
"active_end": o.ActiveEnd,
|
"active_end": o.ActiveEnd,
|
||||||
|
"member_level": o.MemberLevel,
|
||||||
}
|
}
|
||||||
u := map[string]interface{}{}
|
u := map[string]interface{}{}
|
||||||
for _, f := range fields {
|
for _, f := range fields {
|
||||||
|
@ -2843,6 +3077,118 @@ func (qs UserCouponQuerySet) ActiveStartNe(activeStart time.Time) UserCouponQuer
|
||||||
return qs.w(qs.db.Where("active_start != ?", activeStart))
|
return qs.w(qs.db.Where("active_start != ?", activeStart))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ActivityIdEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdEq(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id = ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdGt(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id > ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdGte(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id >= ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdIn(activityId ...uint32) UserCouponQuerySet {
|
||||||
|
if len(activityId) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityId in ActivityIdIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_id IN (?)", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdLt(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id < ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdLte(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id <= ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdNe(activityId uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_id != ?", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityIdNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityIdNotIn(activityId ...uint32) UserCouponQuerySet {
|
||||||
|
if len(activityId) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityId in ActivityIdNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_id NOT IN (?)", activityId))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeEq(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type = ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeGt(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type > ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeGte(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type >= ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeIn(activityType ...uint32) UserCouponQuerySet {
|
||||||
|
if len(activityType) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_type IN (?)", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeLt(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type < ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeLte(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type <= ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeNe(activityType uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("activity_type != ?", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ActivityTypeNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) ActivityTypeNotIn(activityType ...uint32) UserCouponQuerySet {
|
||||||
|
if len(activityType) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one activityType in ActivityTypeNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("activity_type NOT IN (?)", activityType))
|
||||||
|
}
|
||||||
|
|
||||||
// All is an autogenerated method
|
// All is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) All(ret *[]UserCoupon) error {
|
func (qs UserCouponQuerySet) All(ret *[]UserCoupon) error {
|
||||||
|
@ -3159,6 +3505,62 @@ func (qs UserCouponQuerySet) Limit(limit int) UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Limit(limit))
|
return qs.w(qs.db.Limit(limit))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MemberLevelEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelEq(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level = ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelGt(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level > ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelGte(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level >= ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelIn(memberLevel ...uint32) UserCouponQuerySet {
|
||||||
|
if len(memberLevel) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("member_level IN (?)", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelLt(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level < ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelLte(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level <= ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelNe(memberLevel uint32) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("member_level != ?", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
|
// MemberLevelNotIn is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) MemberLevelNotIn(memberLevel ...uint32) UserCouponQuerySet {
|
||||||
|
if len(memberLevel) == 0 {
|
||||||
|
qs.db.AddError(errors.New("must at least pass one memberLevel in MemberLevelNotIn"))
|
||||||
|
return qs.w(qs.db)
|
||||||
|
}
|
||||||
|
return qs.w(qs.db.Where("member_level NOT IN (?)", memberLevel))
|
||||||
|
}
|
||||||
|
|
||||||
// Offset is an autogenerated method
|
// Offset is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) Offset(offset int) UserCouponQuerySet {
|
func (qs UserCouponQuerySet) Offset(offset int) UserCouponQuerySet {
|
||||||
|
@ -3183,6 +3585,18 @@ func (qs UserCouponQuerySet) OrderAscByActiveStart() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("active_start ASC"))
|
return qs.w(qs.db.Order("active_start ASC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderAscByActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderAscByActivityId() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_id ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderAscByActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderAscByActivityType() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_type ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderAscByCouponId is an autogenerated method
|
// OrderAscByCouponId is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderAscByCouponId() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderAscByCouponId() UserCouponQuerySet {
|
||||||
|
@ -3213,6 +3627,12 @@ func (qs UserCouponQuerySet) OrderAscByID() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("id ASC"))
|
return qs.w(qs.db.Order("id ASC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderAscByMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderAscByMemberLevel() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("member_level ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderAscByState is an autogenerated method
|
// OrderAscByState is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderAscByState() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderAscByState() UserCouponQuerySet {
|
||||||
|
@ -3231,6 +3651,12 @@ func (qs UserCouponQuerySet) OrderAscByUpdatedAt() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("updated_at ASC"))
|
return qs.w(qs.db.Order("updated_at ASC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderAscByUseTime is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderAscByUseTime() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("use_time ASC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderAscByValue is an autogenerated method
|
// OrderAscByValue is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderAscByValue() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderAscByValue() UserCouponQuerySet {
|
||||||
|
@ -3249,6 +3675,18 @@ func (qs UserCouponQuerySet) OrderDescByActiveStart() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("active_start DESC"))
|
return qs.w(qs.db.Order("active_start DESC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderDescByActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderDescByActivityId() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_id DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
|
// OrderDescByActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderDescByActivityType() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("activity_type DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderDescByCouponId is an autogenerated method
|
// OrderDescByCouponId is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderDescByCouponId() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderDescByCouponId() UserCouponQuerySet {
|
||||||
|
@ -3279,6 +3717,12 @@ func (qs UserCouponQuerySet) OrderDescByID() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("id DESC"))
|
return qs.w(qs.db.Order("id DESC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderDescByMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderDescByMemberLevel() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("member_level DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderDescByState is an autogenerated method
|
// OrderDescByState is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderDescByState() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderDescByState() UserCouponQuerySet {
|
||||||
|
@ -3297,6 +3741,12 @@ func (qs UserCouponQuerySet) OrderDescByUpdatedAt() UserCouponQuerySet {
|
||||||
return qs.w(qs.db.Order("updated_at DESC"))
|
return qs.w(qs.db.Order("updated_at DESC"))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// OrderDescByUseTime is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) OrderDescByUseTime() UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Order("use_time DESC"))
|
||||||
|
}
|
||||||
|
|
||||||
// OrderDescByValue is an autogenerated method
|
// OrderDescByValue is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) OrderDescByValue() UserCouponQuerySet {
|
func (qs UserCouponQuerySet) OrderDescByValue() UserCouponQuerySet {
|
||||||
|
@ -3451,6 +3901,42 @@ func (qs UserCouponQuerySet) UpdatedAtNe(updatedAt time.Time) UserCouponQuerySet
|
||||||
return qs.w(qs.db.Where("updated_at != ?", updatedAt))
|
return qs.w(qs.db.Where("updated_at != ?", updatedAt))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// UseTimeEq is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeEq(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time = ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UseTimeGt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeGt(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time > ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UseTimeGte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeGte(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time >= ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UseTimeLt is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeLt(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time < ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UseTimeLte is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeLte(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time <= ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
|
// UseTimeNe is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (qs UserCouponQuerySet) UseTimeNe(useTime time.Time) UserCouponQuerySet {
|
||||||
|
return qs.w(qs.db.Where("use_time != ?", useTime))
|
||||||
|
}
|
||||||
|
|
||||||
// ValueEq is an autogenerated method
|
// ValueEq is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (qs UserCouponQuerySet) ValueEq(value uint32) UserCouponQuerySet {
|
func (qs UserCouponQuerySet) ValueEq(value uint32) UserCouponQuerySet {
|
||||||
|
@ -3521,6 +4007,20 @@ func (u UserCouponUpdater) SetActiveStart(activeStart time.Time) UserCouponUpdat
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetActivityId is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u UserCouponUpdater) SetActivityId(activityId uint32) UserCouponUpdater {
|
||||||
|
u.fields[string(UserCouponDBSchema.ActivityId)] = activityId
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetActivityType is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u UserCouponUpdater) SetActivityType(activityType uint32) UserCouponUpdater {
|
||||||
|
u.fields[string(UserCouponDBSchema.ActivityType)] = activityType
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
// SetCouponId is an autogenerated method
|
// SetCouponId is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (u UserCouponUpdater) SetCouponId(couponId uint32) UserCouponUpdater {
|
func (u UserCouponUpdater) SetCouponId(couponId uint32) UserCouponUpdater {
|
||||||
|
@ -3556,6 +4056,13 @@ func (u UserCouponUpdater) SetID(ID uint32) UserCouponUpdater {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetMemberLevel is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u UserCouponUpdater) SetMemberLevel(memberLevel uint32) UserCouponUpdater {
|
||||||
|
u.fields[string(UserCouponDBSchema.MemberLevel)] = memberLevel
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
// SetState is an autogenerated method
|
// SetState is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (u UserCouponUpdater) SetState(state uint32) UserCouponUpdater {
|
func (u UserCouponUpdater) SetState(state uint32) UserCouponUpdater {
|
||||||
|
@ -3577,6 +4084,13 @@ func (u UserCouponUpdater) SetUpdatedAt(updatedAt time.Time) UserCouponUpdater {
|
||||||
return u
|
return u
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// SetUseTime is an autogenerated method
|
||||||
|
// nolint: dupl
|
||||||
|
func (u UserCouponUpdater) SetUseTime(useTime time.Time) UserCouponUpdater {
|
||||||
|
u.fields[string(UserCouponDBSchema.UseTime)] = useTime
|
||||||
|
return u
|
||||||
|
}
|
||||||
|
|
||||||
// SetValue is an autogenerated method
|
// SetValue is an autogenerated method
|
||||||
// nolint: dupl
|
// nolint: dupl
|
||||||
func (u UserCouponUpdater) SetValue(value uint32) UserCouponUpdater {
|
func (u UserCouponUpdater) SetValue(value uint32) UserCouponUpdater {
|
||||||
|
@ -3619,10 +4133,14 @@ var UserCouponDBSchema = struct {
|
||||||
Uid UserCouponDBSchemaField
|
Uid UserCouponDBSchemaField
|
||||||
CouponId UserCouponDBSchemaField
|
CouponId UserCouponDBSchemaField
|
||||||
CouponType UserCouponDBSchemaField
|
CouponType UserCouponDBSchemaField
|
||||||
|
ActivityType UserCouponDBSchemaField
|
||||||
|
ActivityId UserCouponDBSchemaField
|
||||||
Value UserCouponDBSchemaField
|
Value UserCouponDBSchemaField
|
||||||
State UserCouponDBSchemaField
|
State UserCouponDBSchemaField
|
||||||
ActiveStart UserCouponDBSchemaField
|
ActiveStart UserCouponDBSchemaField
|
||||||
ActiveEnd UserCouponDBSchemaField
|
ActiveEnd UserCouponDBSchemaField
|
||||||
|
UseTime UserCouponDBSchemaField
|
||||||
|
MemberLevel UserCouponDBSchemaField
|
||||||
}{
|
}{
|
||||||
|
|
||||||
ID: UserCouponDBSchemaField("id"),
|
ID: UserCouponDBSchemaField("id"),
|
||||||
|
@ -3632,10 +4150,14 @@ var UserCouponDBSchema = struct {
|
||||||
Uid: UserCouponDBSchemaField("uid"),
|
Uid: UserCouponDBSchemaField("uid"),
|
||||||
CouponId: UserCouponDBSchemaField("coupon_id"),
|
CouponId: UserCouponDBSchemaField("coupon_id"),
|
||||||
CouponType: UserCouponDBSchemaField("coupon_type"),
|
CouponType: UserCouponDBSchemaField("coupon_type"),
|
||||||
|
ActivityType: UserCouponDBSchemaField("activity_type"),
|
||||||
|
ActivityId: UserCouponDBSchemaField("activity_id"),
|
||||||
Value: UserCouponDBSchemaField("value"),
|
Value: UserCouponDBSchemaField("value"),
|
||||||
State: UserCouponDBSchemaField("state"),
|
State: UserCouponDBSchemaField("state"),
|
||||||
ActiveStart: UserCouponDBSchemaField("active_start"),
|
ActiveStart: UserCouponDBSchemaField("active_start"),
|
||||||
ActiveEnd: UserCouponDBSchemaField("active_end"),
|
ActiveEnd: UserCouponDBSchemaField("active_end"),
|
||||||
|
UseTime: UserCouponDBSchemaField("use_time"),
|
||||||
|
MemberLevel: UserCouponDBSchemaField("member_level"),
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update updates UserCoupon fields by primary key
|
// Update updates UserCoupon fields by primary key
|
||||||
|
@ -3649,10 +4171,14 @@ func (o *UserCoupon) Update(db *gorm.DB, fields ...UserCouponDBSchemaField) erro
|
||||||
"uid": o.Uid,
|
"uid": o.Uid,
|
||||||
"coupon_id": o.CouponId,
|
"coupon_id": o.CouponId,
|
||||||
"coupon_type": o.CouponType,
|
"coupon_type": o.CouponType,
|
||||||
|
"activity_type": o.ActivityType,
|
||||||
|
"activity_id": o.ActivityId,
|
||||||
"value": o.Value,
|
"value": o.Value,
|
||||||
"state": o.State,
|
"state": o.State,
|
||||||
"active_start": o.ActiveStart,
|
"active_start": o.ActiveStart,
|
||||||
"active_end": o.ActiveEnd,
|
"active_end": o.ActiveEnd,
|
||||||
|
"use_time": o.UseTime,
|
||||||
|
"member_level": o.MemberLevel,
|
||||||
}
|
}
|
||||||
u := map[string]interface{}{}
|
u := map[string]interface{}{}
|
||||||
for _, f := range fields {
|
for _, f := range fields {
|
||||||
|
|
|
@ -3,38 +3,44 @@ package model
|
||||||
import "time"
|
import "time"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
CouponTypeDeduction = "deduction"
|
CouponTypeDeduction = "deduction" // 抵扣
|
||||||
)
|
|
||||||
|
|
||||||
const (
|
|
||||||
CouponTypeMemberRenewal = "member_renewal"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
//go:generate goqueryset -in coupon.go
|
//go:generate goqueryset -in coupon.go
|
||||||
// gen:qs
|
// gen:qs
|
||||||
type Coupon struct {
|
type Coupon struct {
|
||||||
Model
|
Model
|
||||||
|
|
||||||
Name string `json:"name"`
|
Name string `json:"name"`
|
||||||
Describe string `json:"describe" gorm:"type:text;"` // 描述
|
Describe string `json:"describe" gorm:"type:text;"` // 描述
|
||||||
CouponType string `json:"coupon_type"`
|
CouponType string `json:"coupon_type"`
|
||||||
|
ActivityType uint32 `json:"activity_type"` // 活动类型 1-会员续费
|
||||||
|
ActivityId uint32 `json:"activity_id" gorm:"index"`
|
||||||
Value uint32 `json:"value"`
|
Value uint32 `json:"value"`
|
||||||
OutCount uint32 `json:"out_count"` // 用户已领取数量
|
OutCount uint32 `json:"out_count"` // 用户已领取数量
|
||||||
UsedCount uint32 `json:"used_count"` // 用户已使用数量
|
UsedCount uint32 `json:"used_count"` // 用户已使用数量
|
||||||
ActiveStart time.Time `json:"active_start"` // 有效期开始
|
ActiveStart time.Time `json:"active_start"` // 有效期开始
|
||||||
ActiveEnd time.Time `json:"active_end"` // 有效期结束 零值永不结束
|
ActiveEnd time.Time `json:"active_end"` // 有效期结束 零值永不结束
|
||||||
|
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||||
|
IsDraw bool `json:"is_draw" gorm:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// gen:qs
|
// gen:qs
|
||||||
type UserCoupon struct {
|
type UserCoupon struct {
|
||||||
Model
|
Model
|
||||||
|
|
||||||
Uid uint32 `json:"uid"`
|
Uid uint32 `json:"uid" gorm:"index"`
|
||||||
CouponId uint32 `json:"coupon_id"`
|
CouponId uint32 `json:"coupon_id" gorm:"index"`
|
||||||
CouponType string `json:"coupon_type"`
|
CouponType string `json:"coupon_type"`
|
||||||
|
ActivityType uint32 `json:"activity_type"` // 活动类型 1-会员续费
|
||||||
|
ActivityId uint32 `json:"activity_id" gorm:"index"`
|
||||||
Value uint32 `json:"value"`
|
Value uint32 `json:"value"`
|
||||||
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
|
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
|
||||||
ActiveStart time.Time `json:"active_start"` // 有效期开始
|
ActiveStart time.Time `json:"active_start"` // 有效期开始
|
||||||
ActiveEnd time.Time `json:"active_end"` // 有效期结束 零值永不结束
|
ActiveEnd time.Time `json:"active_end"` // 有效期结束 零值永不结束
|
||||||
|
UseTime time.Time `json:"use_time"` //
|
||||||
|
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
|
||||||
|
Coupon *Coupon `json:"coupon" gorm:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// gen:qs
|
// gen:qs
|
||||||
|
@ -52,7 +58,7 @@ type Activity struct {
|
||||||
type ActivityMemberRenewal struct {
|
type ActivityMemberRenewal struct {
|
||||||
Model
|
Model
|
||||||
|
|
||||||
ActivityId uint32 `json:"activity_id"`
|
ActivityId uint32 `json:"activity_id" gorm:"index"`
|
||||||
Uid uint32 `json:"uid"`
|
Uid uint32 `json:"uid"`
|
||||||
State uint32 `json:"state" gorm:"column:state;comment:'状态'"` // 1-进行中 2-已完成 3-已过期
|
State uint32 `json:"state" gorm:"column:state;comment:'状态'"` // 1-进行中 2-已完成 3-已过期
|
||||||
StartTime time.Time `json:"start_time" gorm:"column:start_time;comment:'开始时间'"` // 开始时间
|
StartTime time.Time `json:"start_time" gorm:"column:start_time;comment:'开始时间'"` // 开始时间
|
||||||
|
|
|
@ -21,7 +21,7 @@ type GameCard struct {
|
||||||
NewProducts uint8 `json:"new_products"` // 新品: 1-新品 2-非新品
|
NewProducts uint8 `json:"new_products"` // 新品: 1-新品 2-非新品
|
||||||
Status uint8 `json:"status"` // 状态: 1-上架 2-下架
|
Status uint8 `json:"status"` // 状态: 1-上架 2-下架
|
||||||
StockCount uint32 `json:"stock_count"` // 库存
|
StockCount uint32 `json:"stock_count"` // 库存
|
||||||
StockState uint32 `json:"stock_state"` // 1-库存 2-门店库存 3-无库存
|
StockState uint32 `json:"stock_state" gorm:"-"` // 1-库存 2-门店库存 3-无库存
|
||||||
TotalCount uint32 `json:"total_count"` // 总量
|
TotalCount uint32 `json:"total_count"` // 总量
|
||||||
GameTypeId uint32 `json:"game_type_id"` // 游戏类型
|
GameTypeId uint32 `json:"game_type_id"` // 游戏类型
|
||||||
GoodsGalleryUrl string `json:"goods_gallery_url" gorm:"type:text;comment:'轮播图'"` // 轮播图
|
GoodsGalleryUrl string `json:"goods_gallery_url" gorm:"type:text;comment:'轮播图'"` // 轮播图
|
||||||
|
@ -64,6 +64,7 @@ type HomeCarousel struct {
|
||||||
IsShow uint32 `json:"is_show"` // 1-显示 2-隐藏
|
IsShow uint32 `json:"is_show"` // 1-显示 2-隐藏
|
||||||
Detail string `json:"detail" gorm:"type:text;comment:'详情描述'"`
|
Detail string `json:"detail" gorm:"type:text;comment:'详情描述'"`
|
||||||
Link string `json:"link"`
|
Link string `json:"link"`
|
||||||
|
ActivityType uint32 `json:"activity_type"` // 活动类型:1-会员续费
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*HomeCarousel) TableName() string {
|
func (*HomeCarousel) TableName() string {
|
||||||
|
@ -137,9 +138,6 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if sortType == 1 {
|
|
||||||
|
|
||||||
}
|
|
||||||
hideGamePrice := uint32(30000)
|
hideGamePrice := uint32(30000)
|
||||||
var user *User
|
var user *User
|
||||||
if uid != 0 {
|
if uid != 0 {
|
||||||
|
@ -151,6 +149,8 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
}
|
}
|
||||||
gameIds := make([]uint32, 0)
|
gameIds := make([]uint32, 0)
|
||||||
gameIdMap := make(map[uint32]uint32)
|
gameIdMap := make(map[uint32]uint32)
|
||||||
|
|
||||||
|
if sortType == 1 {
|
||||||
if storeId != 0 {
|
if storeId != 0 {
|
||||||
//gameIds := make([]uint32, 0)
|
//gameIds := make([]uint32, 0)
|
||||||
////gameIdMap := make(map[uint32]int)
|
////gameIdMap := make(map[uint32]int)
|
||||||
|
@ -171,12 +171,12 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
//qs = qs.IDIn(gameIds...)
|
//qs = qs.IDIn(gameIds...)
|
||||||
|
|
||||||
var cardStocks []GameCardGoodsStock
|
var cardStocks []GameCardGoodsStock
|
||||||
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).RentStockGt(0).OrderDescByRentStock().All(&cardStocks)
|
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).RentStockGt(0).
|
||||||
|
OrderDescByRentStock().All(&cardStocks)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("GetGameIdByType err:", err)
|
logger.Error("GetGameIdByType err:", err)
|
||||||
return cards, 0, err
|
return cards, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
for i, _ := range cardStocks {
|
for i, _ := range cardStocks {
|
||||||
_, ok := gameIdMap[uint32(cardStocks[i].GameCardId)]
|
_, ok := gameIdMap[uint32(cardStocks[i].GameCardId)]
|
||||||
if !ok {
|
if !ok {
|
||||||
|
@ -185,7 +185,8 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockGt(0).OrderDescByRentStock().All(&cardStocks)
|
err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockGt(0).
|
||||||
|
OrderDescByRentStock().All(&cardStocks)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("GetGameIdByType err:", err)
|
logger.Error("GetGameIdByType err:", err)
|
||||||
return cards, 0, err
|
return cards, 0, err
|
||||||
|
@ -198,7 +199,36 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err = NewGameCardGoodsStockQuerySet(DB).StoreIdNe(uint64(storeId)).RentStockEq(0).All(&cardStocks)
|
err = NewGameCardGoodsStockQuerySet(DB).RentStockEq(0).All(&cardStocks)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetGameIdByType err:", err)
|
||||||
|
return cards, 0, err
|
||||||
|
}
|
||||||
|
for i, _ := range cardStocks {
|
||||||
|
_, ok := gameIdMap[uint32(cardStocks[i].GameCardId)]
|
||||||
|
if !ok {
|
||||||
|
gameIds = append(gameIds, uint32(cardStocks[i].GameCardId))
|
||||||
|
gameIdMap[uint32(cardStocks[i].GameCardId)] = 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
qs = qs.IDIn(gameIds...)
|
||||||
|
} else {
|
||||||
|
var cardStocks []GameCardGoodsStock
|
||||||
|
err := NewGameCardGoodsStockQuerySet(DB).RentStockGt(0).
|
||||||
|
OrderDescByRentStock().All(&cardStocks)
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("GetGameIdByType err:", err)
|
||||||
|
return cards, 0, err
|
||||||
|
}
|
||||||
|
for i, _ := range cardStocks {
|
||||||
|
_, ok := gameIdMap[uint32(cardStocks[i].GameCardId)]
|
||||||
|
if !ok {
|
||||||
|
gameIds = append(gameIds, uint32(cardStocks[i].GameCardId))
|
||||||
|
gameIdMap[uint32(cardStocks[i].GameCardId)] = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
err = NewGameCardGoodsStockQuerySet(DB).RentStockEq(0).All(&cardStocks)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("GetGameIdByType err:", err)
|
logger.Error("GetGameIdByType err:", err)
|
||||||
return cards, 0, err
|
return cards, 0, err
|
||||||
|
@ -212,13 +242,14 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
|
||||||
}
|
}
|
||||||
qs = qs.IDIn(gameIds...)
|
qs = qs.IDIn(gameIds...)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if count == 0 {
|
if count == 0 {
|
||||||
count, err = qs.Count()
|
count, err = qs.Count()
|
||||||
}
|
}
|
||||||
totalPage = uint32(count/pageSize + 1)
|
totalPage = uint32(count/pageSize + 1)
|
||||||
//err = qs.OrderDescByCreatedAt().Offset(page * pageSize).Limit(pageSize).All(&cards)
|
//err = qs.OrderDescByCreatedAt().Offset(page * pageSize).Limit(pageSize).All(&cards)
|
||||||
if storeId == 0 {
|
if sortType != 1 {
|
||||||
err = qs.Offset(page * pageSize).Limit(pageSize).All(&cards)
|
err = qs.Offset(page * pageSize).Limit(pageSize).All(&cards)
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
@ -377,7 +408,7 @@ func (*GameCardGoodsStock) TableName() string {
|
||||||
return "game_card_goods_stock"
|
return "game_card_goods_stock"
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetGameCardInfo(id uint64) (GameCard, error) {
|
func GetGameCardInfo(id uint64, storeId uint32) (GameCard, error) {
|
||||||
game := GameCard{}
|
game := GameCard{}
|
||||||
err := NewGameCardQuerySet(DB).IDEq(uint32(id)).One(&game)
|
err := NewGameCardQuerySet(DB).IDEq(uint32(id)).One(&game)
|
||||||
if err != nil && err != RecordNotFound {
|
if err != nil && err != RecordNotFound {
|
||||||
|
@ -385,16 +416,34 @@ func GetGameCardInfo(id uint64) (GameCard, error) {
|
||||||
return game, err
|
return game, err
|
||||||
}
|
}
|
||||||
|
|
||||||
var cardStocks []GameCardGoodsStock
|
var cardStock GameCardGoodsStock
|
||||||
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdEq(uint64(game.ID)).All(&cardStocks)
|
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdEq(uint64(game.ID)).StoreIdEq(uint64(storeId)).One(&cardStock)
|
||||||
if err != nil {
|
if err != nil && err != RecordNotFound {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
return game, nil
|
||||||
}
|
}
|
||||||
cardStock := uint32(0)
|
if cardStock.RentStock > 0 {
|
||||||
for i, _ := range cardStocks {
|
game.StockState = 1
|
||||||
cardStock += cardStocks[i].RentStock
|
return game, nil
|
||||||
}
|
}
|
||||||
game.StockCount = cardStock
|
|
||||||
|
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdEq(uint64(game.ID)).
|
||||||
|
StoreIdNe(uint64(storeId)).RentStockGt(0).One(&cardStock)
|
||||||
|
if err != nil && err != RecordNotFound {
|
||||||
|
logger.Error("err:", err)
|
||||||
|
return game, nil
|
||||||
|
}
|
||||||
|
if cardStock.RentStock > 0 {
|
||||||
|
game.StockState = 2
|
||||||
|
return game, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
game.StockState = 3
|
||||||
|
//cardStock := uint32(0)
|
||||||
|
//for i, _ := range cardStocks {
|
||||||
|
// cardStock += cardStocks[i].RentStock
|
||||||
|
//}
|
||||||
|
//game.StockCount = cardStock
|
||||||
|
|
||||||
return game, nil
|
return game, nil
|
||||||
}
|
}
|
||||||
|
@ -411,62 +460,86 @@ func GetGameCardSearch(name string, page, pageSize int, storeId uint32) ([]GameC
|
||||||
if page < 0 {
|
if page < 0 {
|
||||||
page = 0
|
page = 0
|
||||||
}
|
}
|
||||||
sqlStore := ""
|
if pageSize <= 0 {
|
||||||
if storeId != 0 {
|
pageSize = 10
|
||||||
var gameStocks []GameCardGoodsStock
|
}
|
||||||
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).All(&gameStocks)
|
//sqlStore := ""
|
||||||
if err != nil {
|
//if storeId != 0 {
|
||||||
|
// var gameStocks []GameCardGoodsStock
|
||||||
|
// err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).All(&gameStocks)
|
||||||
|
// if err != nil {
|
||||||
|
// logger.Error("game card goods stock err:", err)
|
||||||
|
// }
|
||||||
|
// if len(gameStocks) == 0 {
|
||||||
|
// logger.Error("err:", err)
|
||||||
|
// return cards, 0, err
|
||||||
|
// }
|
||||||
|
// gameCardIds := make([]string, 0, len(gameStocks))
|
||||||
|
// for i, _ := range gameStocks {
|
||||||
|
// gameCardIds = append(gameCardIds, fmt.Sprintf("%d", gameStocks[i].GameCardId))
|
||||||
|
// }
|
||||||
|
// sqlStore = fmt.Sprintf(" AND id IN (%s) ", strings.Join(gameCardIds, ","))
|
||||||
|
//}
|
||||||
|
|
||||||
}
|
countSql := "SELECT COUNT(id) AS count FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'"
|
||||||
if len(gameStocks) == 0 {
|
|
||||||
logger.Error("err:", err)
|
|
||||||
return cards, 0, err
|
|
||||||
}
|
|
||||||
gameCardIds := make([]string, 0, len(gameStocks))
|
|
||||||
for i, _ := range gameStocks {
|
|
||||||
gameCardIds = append(gameCardIds, fmt.Sprintf("%d", gameStocks[i].GameCardId))
|
|
||||||
}
|
|
||||||
sqlStore = fmt.Sprintf(" AND id IN (%s) ", strings.Join(gameCardIds, ","))
|
|
||||||
}
|
|
||||||
|
|
||||||
//countSql := "SELECT game_card.* FROM game_card WHERE game_card.name LIKE '%" + name + "%'"
|
|
||||||
countSql := "SELECT COUNT(id) AS count FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'" + sqlStore
|
|
||||||
err := DB.Raw(countSql).Scan(&cardCount).Error
|
err := DB.Raw(countSql).Scan(&cardCount).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
return cards, 0, err
|
return cards, 0, err
|
||||||
}
|
}
|
||||||
|
|
||||||
sql := "SELECT game_card.* FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'" + sqlStore + fmt.Sprintf(" LIMIT %d,%d;", page*pageSize, pageSize)
|
sql := "SELECT game_card.* FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'"
|
||||||
//sql := fmt.Sprintf(`SELECT * FROM game_card WHERE name LIKE '%%s%';`)
|
//sql := "SELECT game_card.* FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'" + sqlStore +
|
||||||
|
// fmt.Sprintf(" LIMIT %d,%d;", page*pageSize, pageSize)
|
||||||
err = DB.Raw(sql).Scan(&cards).Error
|
err = DB.Raw(sql).Scan(&cards).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
return cards, 0, err
|
return cards, 0, err
|
||||||
}
|
}
|
||||||
|
cardMap := make(map[uint32]GameCard, 0)
|
||||||
cardIds := make([]uint64, 0)
|
cardIds := make([]uint64, 0, len(cards))
|
||||||
for i, _ := range cards {
|
for i, _ := range cards {
|
||||||
cardIds = append(cardIds, uint64(cards[i].ID))
|
cardIds = append(cardIds, uint64(cards[i].ID))
|
||||||
|
cardMap[cards[i].ID] = cards[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
var cardStocks []GameCardGoodsStock
|
var cardStocks []GameCardGoodsStock
|
||||||
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdIn(cardIds...).All(&cardStocks)
|
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdIn(cardIds...).RentStockGt(0).All(&cardStocks)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("game card goods stock err:", err)
|
||||||
return cards, totalPage, nil
|
return cards, totalPage, nil
|
||||||
}
|
}
|
||||||
cardStockMap := make(map[uint64]uint32, 0)
|
list := make([]GameCard, 0, len(cards))
|
||||||
|
stockMap := make(map[uint64]uint32, 0)
|
||||||
for i, _ := range cardStocks {
|
for i, _ := range cardStocks {
|
||||||
cardStockMap[cardStocks[i].GameCardId] += cardStocks[i].RentStock
|
_, ok := stockMap[cardStocks[i].GameCardId]
|
||||||
|
if !ok {
|
||||||
|
stockMap[cardStocks[i].GameCardId] = 1
|
||||||
|
v2, ok2 := cardMap[uint32(cardStocks[i].GameCardId)]
|
||||||
|
v2.StockState = 1
|
||||||
|
if ok2 {
|
||||||
|
list = append(list, v2)
|
||||||
}
|
}
|
||||||
for i, _ := range cards {
|
|
||||||
stock, ok := cardStockMap[uint64(cards[i].ID)]
|
|
||||||
if ok {
|
|
||||||
cards[i].StockCount = stock
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for i, _ := range cardIds {
|
||||||
|
_, ok := stockMap[cardIds[i]]
|
||||||
|
if !ok {
|
||||||
|
stockMap[cardIds[i]] = 3
|
||||||
|
v2, ok2 := cardMap[uint32(cardIds[i])]
|
||||||
|
v2.StockState = 3
|
||||||
|
if ok2 {
|
||||||
|
list = append(list, v2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if uint32(page) < totalPage && totalPage != 1 {
|
||||||
|
cards = list[page*pageSize : (page+1)*pageSize]
|
||||||
|
} else {
|
||||||
|
cards = list[page*pageSize:]
|
||||||
|
}
|
||||||
|
|
||||||
totalPage = cardCount.Count/uint32(pageSize) + 1
|
totalPage = cardCount.Count/uint32(pageSize) + 1
|
||||||
return cards, totalPage, nil
|
return cards, totalPage, nil
|
||||||
}
|
}
|
||||||
|
@ -480,6 +553,7 @@ func GetHomeCarouselList() ([]HomeCarousel, error) {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
return carousels, err
|
return carousels, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return carousels, nil
|
return carousels, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -119,6 +119,11 @@ func InitTestDB() {
|
||||||
|
|
||||||
&GameCard{},
|
&GameCard{},
|
||||||
&ActivityMemberRenewal{},
|
&ActivityMemberRenewal{},
|
||||||
|
&Activity{},
|
||||||
|
&UserCoupon{},
|
||||||
|
&Coupon{},
|
||||||
|
&UserOpenMemberRecord{},
|
||||||
|
&HomeCarousel{},
|
||||||
)
|
)
|
||||||
|
|
||||||
fmt.Println("DB init success")
|
fmt.Println("DB init success")
|
||||||
|
@ -246,6 +251,48 @@ func TestHotSearch_TableName(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestActivity_Create(t *testing.T) {
|
||||||
|
InitTestDB()
|
||||||
|
DB = DBDev
|
||||||
|
//activity := Activity{
|
||||||
|
// Name: "会员续费优惠券",
|
||||||
|
// ActivityType: 1,
|
||||||
|
// State: 2,
|
||||||
|
// StartTime: utils.Now(),
|
||||||
|
// EndTime: utils.Now().AddDate(1, 0, 0),
|
||||||
|
//}
|
||||||
|
|
||||||
|
//&UserCoupon{
|
||||||
|
// Uid: 0,
|
||||||
|
// CouponId: 0,
|
||||||
|
// CouponType: "",
|
||||||
|
// ActivityType: 0,
|
||||||
|
// Value: 0,
|
||||||
|
// State: 0,
|
||||||
|
// ActiveStart: time.Time{},
|
||||||
|
// ActiveEnd: time.Time{},
|
||||||
|
//},
|
||||||
|
|
||||||
|
coupon := Coupon{
|
||||||
|
Name: "150抵扣券",
|
||||||
|
Describe: "续费黑金会员减150",
|
||||||
|
CouponType: "deduction",
|
||||||
|
ActivityType: 1,
|
||||||
|
ActivityId: 1,
|
||||||
|
Value: 15000,
|
||||||
|
OutCount: 0,
|
||||||
|
UsedCount: 0,
|
||||||
|
ActiveStart: utils.Now(),
|
||||||
|
ActiveEnd: utils.Now().AddDate(1, 0, 0),
|
||||||
|
}
|
||||||
|
|
||||||
|
err := DB.Create(&coupon).Error
|
||||||
|
if err != nil {
|
||||||
|
logger.Error("coupon err:", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func TestGetHomeCarouselList(t *testing.T) {
|
func TestGetHomeCarouselList(t *testing.T) {
|
||||||
InitTestDB()
|
InitTestDB()
|
||||||
//imgs := []string{"1-2011060021334X.jpg", "1-2011060021425N.jpg", "1-201106002150294.jpg", "1-201106002159522.jpg"}
|
//imgs := []string{"1-2011060021334X.jpg", "1-2011060021425N.jpg", "1-201106002150294.jpg", "1-201106002159522.jpg"}
|
||||||
|
@ -1174,7 +1221,8 @@ func TestAddMemberPromotion(t *testing.T) {
|
||||||
func AddMemberPromotion() {
|
func AddMemberPromotion() {
|
||||||
InitTestDB()
|
InitTestDB()
|
||||||
sql := fmt.Sprintf(
|
sql := fmt.Sprintf(
|
||||||
"UPDATE cooperative_member_promotion SET gold_count=gold_count+1 WHERE date=%s AND cooperative_business_id=%d", "2022-04", 1)
|
"UPDATE cooperative_member_promotion SET gold_count=gold_count+1 WHERE date=%s AND cooperative_business_id=%d",
|
||||||
|
"2022-04", 1)
|
||||||
err := DBDev.Exec(sql).Error
|
err := DBDev.Exec(sql).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err:", err)
|
logger.Error("err:", err)
|
||||||
|
@ -1364,7 +1412,7 @@ func NumStringSort(n string) (string, error) {
|
||||||
return ns[:len(ns)-1], nil
|
return ns[:len(ns)-1], nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestBtys(t *testing.T) {
|
func TestByte(t *testing.T) {
|
||||||
s := strings.Split("91 123 34 105 100 34 58 49 53 57 57 44 34 99 114 101 97 116 101 100 65 116 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 54 58 51 53 43 48 56 58 48 48 34 44 34 117 105 100 34 58 53 54 52 48 50 56 54 44 34 103 97 109 101 95 99 97 114 100 95 105 100 34 58 48 44 34 103 97 109 101 95 99 97 114 100 95 103 111 111 100 115 95 105 100 34 58 48 44 34 103 97 109 101 95 99 97 114 100 95 115 101 114 105 97 108 95 110 117 109 98 101 114 34 58 34 98 50 50 50 49 49 49 34 44 34 115 116 111 114 101 95 105 100 34 58 50 57 44 34 117 115 101 114 95 97 100 100 114 101 115 115 95 105 100 34 58 48 44 34 100 101 108 105 118 101 114 121 95 116 121 112 101 34 58 49 44 34 99 111 117 110 116 34 58 49 44 34 112 105 99 107 117 112 95 99 111 100 101 34 58 34 229 183 178 229 143 150 232 180 167 34 44 34 99 97 114 100 95 115 116 97 116 117 115 34 58 52 44 34 100 101 108 105 118 101 114 121 95 116 105 109 101 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 55 58 53 56 43 48 56 58 48 48 34 44 34 114 101 99 101 105 112 116 95 116 105 109 101 34 58 34 48 48 48 49 45 48 49 45 48 49 84 48 48 58 48 48 58 48 48 90 34 44 34 112 97 121 95 116 105 109 101 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 54 58 51 53 43 48 56 58 48 48 34 44 34 112 97 121 95 115 116 97 116 117 115 34 58 50 44 34 111 114 100 101 114 95 115 110 34 58 34 55 56 49 57 50 51 66 54 50 56 34 44 34 112 97 121 95 112 114 105 99 101 34 58 48 44 34 112 111 115 116 97 103 101 34 58 48 44 34 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 34 58 34 34 44 34 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 95 110 111 34 58 34 34 44 34 101 120 112 114 101 115 115 95 110 111 34 58 34 34 44 34 101 120 112 114 101 115 115 95 100 117 114 97 116 105 111 110 34 58 48 44 34 114 101 118 101 114 116 95 115 116 111 114 101 95 105 100 34 58 48 44 34 114 101 118 101 114 116 95 116 105 109 101 34 58 34 48 48 48 49 45 48 49 45 48 49 84 48 48 58 48 48 58 48 48 90 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 95 110 111 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 110 111 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 100 117 114 97 116 105 111 110 34 58 48 44 34 99 111 111 112 101 114 97 116 105 118 101 95 98 117 115 105 110 101 115 115 95 105 100 34 58 49 48 44 34 99 111 111 112 101 114 97 116 105 118 101 95 110 97 109 101 34 58 34 34 44 34 103 97 109 101 95 99 97 114 100 95 115 101 114 105 97 108 95 110 117 109 98 101 114 115 34 58 110 117 108 108 44 34 111 114 100 101 114 95 99 97 114 100 115 34 58 110 117 108 108 125 93", " ")
|
s := strings.Split("91 123 34 105 100 34 58 49 53 57 57 44 34 99 114 101 97 116 101 100 65 116 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 54 58 51 53 43 48 56 58 48 48 34 44 34 117 105 100 34 58 53 54 52 48 50 56 54 44 34 103 97 109 101 95 99 97 114 100 95 105 100 34 58 48 44 34 103 97 109 101 95 99 97 114 100 95 103 111 111 100 115 95 105 100 34 58 48 44 34 103 97 109 101 95 99 97 114 100 95 115 101 114 105 97 108 95 110 117 109 98 101 114 34 58 34 98 50 50 50 49 49 49 34 44 34 115 116 111 114 101 95 105 100 34 58 50 57 44 34 117 115 101 114 95 97 100 100 114 101 115 115 95 105 100 34 58 48 44 34 100 101 108 105 118 101 114 121 95 116 121 112 101 34 58 49 44 34 99 111 117 110 116 34 58 49 44 34 112 105 99 107 117 112 95 99 111 100 101 34 58 34 229 183 178 229 143 150 232 180 167 34 44 34 99 97 114 100 95 115 116 97 116 117 115 34 58 52 44 34 100 101 108 105 118 101 114 121 95 116 105 109 101 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 55 58 53 56 43 48 56 58 48 48 34 44 34 114 101 99 101 105 112 116 95 116 105 109 101 34 58 34 48 48 48 49 45 48 49 45 48 49 84 48 48 58 48 48 58 48 48 90 34 44 34 112 97 121 95 116 105 109 101 34 58 34 50 48 50 50 45 48 54 45 48 56 84 49 49 58 52 54 58 51 53 43 48 56 58 48 48 34 44 34 112 97 121 95 115 116 97 116 117 115 34 58 50 44 34 111 114 100 101 114 95 115 110 34 58 34 55 56 49 57 50 51 66 54 50 56 34 44 34 112 97 121 95 112 114 105 99 101 34 58 48 44 34 112 111 115 116 97 103 101 34 58 48 44 34 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 34 58 34 34 44 34 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 95 110 111 34 58 34 34 44 34 101 120 112 114 101 115 115 95 110 111 34 58 34 34 44 34 101 120 112 114 101 115 115 95 100 117 114 97 116 105 111 110 34 58 48 44 34 114 101 118 101 114 116 95 115 116 111 114 101 95 105 100 34 58 48 44 34 114 101 118 101 114 116 95 116 105 109 101 34 58 34 48 48 48 49 45 48 49 45 48 49 84 48 48 58 48 48 58 48 48 90 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 99 111 109 112 97 110 121 95 110 111 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 110 111 34 58 34 34 44 34 114 101 118 101 114 116 95 101 120 112 114 101 115 115 95 100 117 114 97 116 105 111 110 34 58 48 44 34 99 111 111 112 101 114 97 116 105 118 101 95 98 117 115 105 110 101 115 115 95 105 100 34 58 49 48 44 34 99 111 111 112 101 114 97 116 105 118 101 95 110 97 109 101 34 58 34 34 44 34 103 97 109 101 95 99 97 114 100 95 115 101 114 105 97 108 95 110 117 109 98 101 114 115 34 58 110 117 108 108 44 34 111 114 100 101 114 95 99 97 114 100 115 34 58 110 117 108 108 125 93", " ")
|
||||||
|
|
||||||
b := make([]byte, 0)
|
b := make([]byte, 0)
|
||||||
|
@ -1375,3 +1423,12 @@ func TestBtys(t *testing.T) {
|
||||||
|
|
||||||
fmt.Println("byte:", string(b))
|
fmt.Println("byte:", string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSlice(t *testing.T) {
|
||||||
|
var p [100]int
|
||||||
|
var m interface{} = [...]int{99: 0}
|
||||||
|
fmt.Println(p == m)
|
||||||
|
fmt.Println("p:", p)
|
||||||
|
fmt.Println("m:", m)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -251,7 +251,7 @@ func UserUpdate(user *User) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
//OrderType: 1-物流支付 2-取消物流租卡 3-滞纳金 4-收回卡 5-退物流费 6-商城购物 7-购买商品取消订单 8-购买商品订单退货
|
//OrderType: 1-物流支付 2-取消物流租卡 3-滞纳金 4-收回卡 5-退物流费 6-商城购物 7-购买商品取消订单 8-购买商品订单退货 9-升级会员
|
||||||
|
|
||||||
// gen:qs
|
// gen:qs
|
||||||
type UserOpenMemberRecord struct {
|
type UserOpenMemberRecord struct {
|
||||||
|
@ -263,6 +263,7 @@ type UserOpenMemberRecord struct {
|
||||||
OrderType uint32 `json:"order_type"`
|
OrderType uint32 `json:"order_type"`
|
||||||
MemberLevel uint32 `json:"member_level"`
|
MemberLevel uint32 `json:"member_level"`
|
||||||
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
|
||||||
|
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
|
||||||
|
|
||||||
Order *Order `json:"order" gorm:"-"`
|
Order *Order `json:"order" gorm:"-"`
|
||||||
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
|
||||||
|
@ -763,7 +764,9 @@ func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig,
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
sql := fmt.Sprintf("UPDATE user_rent_card SET have_rent_count=have_rent_count+%d ,can_rent_count=can_rent_count-%d WHERE uid = %d", count, count, uid)
|
sql := fmt.Sprintf(
|
||||||
|
"UPDATE user_rent_card SET have_rent_count=have_rent_count+%d ,can_rent_count=can_rent_count-%d WHERE uid = %d",
|
||||||
|
count, count, uid)
|
||||||
err = gdb.Exec(sql).Error
|
err = gdb.Exec(sql).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("err", err)
|
logger.Error("err", err)
|
||||||
|
|
|
@ -49,14 +49,13 @@ func ConfigAppRouter(r gin.IRouter) {
|
||||||
|
|
||||||
gameCard := api.Group("game_card")
|
gameCard := api.Group("game_card")
|
||||||
{
|
{
|
||||||
|
|
||||||
gameCard.POST("banner", controller.HomeCarouselList) // 轮播图
|
|
||||||
gameCard.POST("game_type", controller.GameCardTypes) // 游戏标签
|
gameCard.POST("game_type", controller.GameCardTypes) // 游戏标签
|
||||||
gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表
|
gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表
|
||||||
|
|
||||||
gameCard.Use(auth.UserAccessAuth)
|
gameCard.Use(auth.UserAccessAuth)
|
||||||
gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情
|
gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情
|
||||||
gameCard.POST("list", controller.GameCardList) // 游戏卡列表
|
gameCard.POST("list", controller.GameCardList) // 游戏卡列表
|
||||||
|
gameCard.POST("banner", controller.HomeCarouselList) // 轮播图
|
||||||
}
|
}
|
||||||
|
|
||||||
search := gameCard.Group("search")
|
search := gameCard.Group("search")
|
||||||
|
@ -165,7 +164,9 @@ func ConfigAppRouter(r gin.IRouter) {
|
||||||
|
|
||||||
// 会员续费
|
// 会员续费
|
||||||
activity.POST("member_renewal/state", controller.UserMemberRenewalState)
|
activity.POST("member_renewal/state", controller.UserMemberRenewalState)
|
||||||
|
activity.POST("member_renewal/info", controller.UserMemberRenewalInfo)
|
||||||
|
activity.POST("member_renewal/coupon_draw", controller.UserMemberRenewalCouponDraw)
|
||||||
|
activity.POST("member_renewal/user_coupon/list", controller.MemberRenewalUserCouponList)
|
||||||
}
|
}
|
||||||
|
|
||||||
mall := api.Group("mall")
|
mall := api.Group("mall")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user