fix:生成文件

This commit is contained in:
li 2022-06-29 16:03:50 +08:00
parent f4280d733d
commit c75270892a
11 changed files with 1138 additions and 235 deletions

View File

@ -56,9 +56,16 @@ func UserMemberRenewalState(c *gin.Context) {
RespJson(c, status.Unauthorized, nil)
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
err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).StateEq(1).
err := model.NewActivityMemberRenewalQuerySet(model.DB).UidEq(uc.Uid).ActivityIdEq(1).StateEq(1).
One(&activityMemberRenewal)
if err != nil && err != model.RecordNotFound {
logger.Error("activity member renewal err:", err)
@ -68,7 +75,6 @@ func UserMemberRenewalState(c *gin.Context) {
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{
@ -89,6 +95,16 @@ func UserMemberRenewalState(c *gin.Context) {
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
if activityMemberRenewal.State == 1 {
isMemberRenewal = true
@ -100,3 +116,164 @@ func UserMemberRenewalState(c *gin.Context) {
RespOK(c, ret)
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
View File

@ -0,0 +1 @@
package controller

View File

@ -19,6 +19,7 @@ import (
aliyun "mh-server/lib/ali"
"mh-server/lib/auth"
"mh-server/lib/status"
"mh-server/lib/utils"
"mh-server/lib/wxpay"
"mh-server/model"
"sort"
@ -49,7 +50,8 @@ func GameCardList(c *gin.Context) {
}
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 {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -67,6 +69,7 @@ func GameCardList(c *gin.Context) {
func GameCardInfo(c *gin.Context) {
req := struct {
GameId uint64 `json:"game_id"`
StoreId uint32 `json:"store_id"` // 门店id
}{}
if c.ShouldBindJSON(&req) != 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 {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -170,12 +173,29 @@ func GameCardHotSearch(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()
if err != nil {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
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)
}
@ -517,6 +537,14 @@ func PushWXPayNotice(c *gin.Context) {
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.OutTradeNo:", notifyInfo.OutTradeNo)
@ -621,8 +649,8 @@ func PushWXPayNotice(c *gin.Context) {
return
}
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).SetMemberExpire(record.MemberExpire).
SetDeposit(memberConfig.MemberDeposit).UpdateNum()
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().SetMemberLevel(record.MemberLevel).
SetMemberExpire(record.MemberExpire).SetDeposit(memberConfig.MemberDeposit).UpdateNum()
//err = model.UserUpdate(&model.User{Uid: uint32(record.Uid), MemberLevel: record.MemberLevel, MemberExpire: expireTime, Deposit: memberConfig.MemberDeposit})
if err != nil {
logger.Error("err:", err)

View File

@ -208,6 +208,7 @@ func UserInfoUpdate(c *gin.Context) {
func OpenMember(c *gin.Context) {
req := struct {
MemberLevel uint32 `json:"member_level"` // 昵称
UserCouponId uint32 `json:"user_coupon_id"` // 优惠券id
}{}
if c.ShouldBindJSON(&req) != nil {
logger.Error("parameter err")
@ -253,6 +254,23 @@ func OpenMember(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
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)
//if err != nil {
// logger.Error(errors.New("WebPay err"))
@ -261,7 +279,8 @@ func OpenMember(c *gin.Context) {
//}
//orderSn := utils.GetSerialNo32HEXString()
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 {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -299,11 +318,11 @@ func UpgradeMember(c *gin.Context) {
}
user := model.GetUserByUid(uc.Uid)
if user.MemberLevel != 2 && user.MemberLevel != 4 {
logger.Error("MemberLevel err:")
RespJson(c, status.InternalServerError, nil)
return
}
//if user.MemberLevel != 2 && user.MemberLevel != 4 {
// logger.Error("MemberLevel err:")
// RespJson(c, status.InternalServerError, nil)
// return
//}
originalMemberConfig, err := model.GetMemberConfig(user.MemberLevel)
if err != nil {
@ -332,7 +351,8 @@ func UpgradeMember(c *gin.Context) {
// 补押金
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 {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -341,19 +361,19 @@ func UpgradeMember(c *gin.Context) {
fmt.Println("count:", count)
// 抵扣天数
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 {
deductionTime = 0
}
if deductionTime > 0 {
deductionDays = deductionTime / int64(24*3600)
}
memberYare := deductionDays/365 + 1
// 抵扣金
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
// 补会员费
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 {
@ -383,10 +403,10 @@ func UpgradeMember(c *gin.Context) {
// return
//}
//orderSn := utils.GetSerialNo32HEXString()
memberExpire := time.Now().AddDate(1, 0, count*30)
memberExpire := time.Now().AddDate(1*int(memberYare), 0, count*30)
orderSn := model.GetOrderSn()
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 {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -398,7 +418,8 @@ func UpgradeMember(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
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 {
logger.Error(errors.New("WebPay err"))
RespJson(c, status.InternalServerError, nil)
@ -424,11 +445,11 @@ func UpgradeMemberInfo(c *gin.Context) {
}
user := model.GetUserByUid(uc.Uid)
if user.MemberLevel != 2 && user.MemberLevel != 4 {
logger.Error("MemberLevel err:")
RespJson(c, status.InternalServerError, nil)
return
}
//if user.MemberLevel != 2 && user.MemberLevel != 4 {
// logger.Error("MemberLevel err:")
// RespJson(c, status.InternalServerError, nil)
// return
//}
//configInfo, err := model.PayConfigInfo()
//if err != nil {
@ -463,7 +484,8 @@ func UpgradeMemberInfo(c *gin.Context) {
// 补押金
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 {
logger.Error("err:", err)
RespJson(c, status.InternalServerError, nil)
@ -472,19 +494,19 @@ func UpgradeMemberInfo(c *gin.Context) {
fmt.Println("count:", count)
// 抵扣天数
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 {
deductionTime = 0
}
if deductionTime > 0 {
deductionDays = deductionTime / int64(24*3600)
}
memberYare := deductionDays/365 + 1
// 抵扣金
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
// 补会员费
memberMendFee := int64(memberConfig.MemberFee) - deductionFee
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 {

8
model/analyse.go Normal file
View File

@ -0,0 +1,8 @@
package model
type Statistic struct {
Model
Count uint32 `json:"count"` // 计数
Type uint32 `json:"type" gorm:"index"` // 类型:1-
}

View File

@ -1785,6 +1785,118 @@ func (qs CouponQuerySet) ActiveStartNe(activeStart time.Time) CouponQuerySet {
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
// nolint: dupl
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))
}
// 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
// nolint: dupl
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"))
}
// 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
// nolint: dupl
func (qs CouponQuerySet) OrderAscByCouponType() CouponQuerySet {
@ -2235,6 +2415,12 @@ func (qs CouponQuerySet) OrderAscByID() CouponQuerySet {
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
// nolint: dupl
func (qs CouponQuerySet) OrderAscByName() CouponQuerySet {
@ -2277,6 +2463,18 @@ func (qs CouponQuerySet) OrderDescByActiveStart() CouponQuerySet {
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
// nolint: dupl
func (qs CouponQuerySet) OrderDescByCouponType() CouponQuerySet {
@ -2307,6 +2505,12 @@ func (qs CouponQuerySet) OrderDescByID() CouponQuerySet {
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
// nolint: dupl
func (qs CouponQuerySet) OrderDescByName() CouponQuerySet {
@ -2555,6 +2759,20 @@ func (u CouponUpdater) SetActiveStart(activeStart time.Time) CouponUpdater {
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
// nolint: dupl
func (u CouponUpdater) SetCouponType(couponType string) CouponUpdater {
@ -2590,6 +2808,13 @@ func (u CouponUpdater) SetID(ID uint32) CouponUpdater {
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
// nolint: dupl
func (u CouponUpdater) SetName(name string) CouponUpdater {
@ -2660,11 +2885,14 @@ var CouponDBSchema = struct {
Name CouponDBSchemaField
Describe CouponDBSchemaField
CouponType CouponDBSchemaField
ActivityType CouponDBSchemaField
ActivityId CouponDBSchemaField
Value CouponDBSchemaField
OutCount CouponDBSchemaField
UsedCount CouponDBSchemaField
ActiveStart CouponDBSchemaField
ActiveEnd CouponDBSchemaField
MemberLevel CouponDBSchemaField
}{
ID: CouponDBSchemaField("id"),
@ -2674,11 +2902,14 @@ var CouponDBSchema = struct {
Name: CouponDBSchemaField("name"),
Describe: CouponDBSchemaField("describe"),
CouponType: CouponDBSchemaField("coupon_type"),
ActivityType: CouponDBSchemaField("activity_type"),
ActivityId: CouponDBSchemaField("activity_id"),
Value: CouponDBSchemaField("value"),
OutCount: CouponDBSchemaField("out_count"),
UsedCount: CouponDBSchemaField("used_count"),
ActiveStart: CouponDBSchemaField("active_start"),
ActiveEnd: CouponDBSchemaField("active_end"),
MemberLevel: CouponDBSchemaField("member_level"),
}
// Update updates Coupon fields by primary key
@ -2692,11 +2923,14 @@ func (o *Coupon) Update(db *gorm.DB, fields ...CouponDBSchemaField) error {
"name": o.Name,
"describe": o.Describe,
"coupon_type": o.CouponType,
"activity_type": o.ActivityType,
"activity_id": o.ActivityId,
"value": o.Value,
"out_count": o.OutCount,
"used_count": o.UsedCount,
"active_start": o.ActiveStart,
"active_end": o.ActiveEnd,
"member_level": o.MemberLevel,
}
u := map[string]interface{}{}
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))
}
// 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
// nolint: dupl
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))
}
// 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
// nolint: dupl
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"))
}
// 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
// nolint: dupl
func (qs UserCouponQuerySet) OrderAscByCouponId() UserCouponQuerySet {
@ -3213,6 +3627,12 @@ func (qs UserCouponQuerySet) OrderAscByID() UserCouponQuerySet {
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
// nolint: dupl
func (qs UserCouponQuerySet) OrderAscByState() UserCouponQuerySet {
@ -3231,6 +3651,12 @@ func (qs UserCouponQuerySet) OrderAscByUpdatedAt() UserCouponQuerySet {
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
// nolint: dupl
func (qs UserCouponQuerySet) OrderAscByValue() UserCouponQuerySet {
@ -3249,6 +3675,18 @@ func (qs UserCouponQuerySet) OrderDescByActiveStart() UserCouponQuerySet {
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
// nolint: dupl
func (qs UserCouponQuerySet) OrderDescByCouponId() UserCouponQuerySet {
@ -3279,6 +3717,12 @@ func (qs UserCouponQuerySet) OrderDescByID() UserCouponQuerySet {
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
// nolint: dupl
func (qs UserCouponQuerySet) OrderDescByState() UserCouponQuerySet {
@ -3297,6 +3741,12 @@ func (qs UserCouponQuerySet) OrderDescByUpdatedAt() UserCouponQuerySet {
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
// nolint: dupl
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))
}
// 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
// nolint: dupl
func (qs UserCouponQuerySet) ValueEq(value uint32) UserCouponQuerySet {
@ -3521,6 +4007,20 @@ func (u UserCouponUpdater) SetActiveStart(activeStart time.Time) UserCouponUpdat
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
// nolint: dupl
func (u UserCouponUpdater) SetCouponId(couponId uint32) UserCouponUpdater {
@ -3556,6 +4056,13 @@ func (u UserCouponUpdater) SetID(ID uint32) UserCouponUpdater {
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
// nolint: dupl
func (u UserCouponUpdater) SetState(state uint32) UserCouponUpdater {
@ -3577,6 +4084,13 @@ func (u UserCouponUpdater) SetUpdatedAt(updatedAt time.Time) UserCouponUpdater {
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
// nolint: dupl
func (u UserCouponUpdater) SetValue(value uint32) UserCouponUpdater {
@ -3619,10 +4133,14 @@ var UserCouponDBSchema = struct {
Uid UserCouponDBSchemaField
CouponId UserCouponDBSchemaField
CouponType UserCouponDBSchemaField
ActivityType UserCouponDBSchemaField
ActivityId UserCouponDBSchemaField
Value UserCouponDBSchemaField
State UserCouponDBSchemaField
ActiveStart UserCouponDBSchemaField
ActiveEnd UserCouponDBSchemaField
UseTime UserCouponDBSchemaField
MemberLevel UserCouponDBSchemaField
}{
ID: UserCouponDBSchemaField("id"),
@ -3632,10 +4150,14 @@ var UserCouponDBSchema = struct {
Uid: UserCouponDBSchemaField("uid"),
CouponId: UserCouponDBSchemaField("coupon_id"),
CouponType: UserCouponDBSchemaField("coupon_type"),
ActivityType: UserCouponDBSchemaField("activity_type"),
ActivityId: UserCouponDBSchemaField("activity_id"),
Value: UserCouponDBSchemaField("value"),
State: UserCouponDBSchemaField("state"),
ActiveStart: UserCouponDBSchemaField("active_start"),
ActiveEnd: UserCouponDBSchemaField("active_end"),
UseTime: UserCouponDBSchemaField("use_time"),
MemberLevel: UserCouponDBSchemaField("member_level"),
}
// Update updates UserCoupon fields by primary key
@ -3649,10 +4171,14 @@ func (o *UserCoupon) Update(db *gorm.DB, fields ...UserCouponDBSchemaField) erro
"uid": o.Uid,
"coupon_id": o.CouponId,
"coupon_type": o.CouponType,
"activity_type": o.ActivityType,
"activity_id": o.ActivityId,
"value": o.Value,
"state": o.State,
"active_start": o.ActiveStart,
"active_end": o.ActiveEnd,
"use_time": o.UseTime,
"member_level": o.MemberLevel,
}
u := map[string]interface{}{}
for _, f := range fields {

View File

@ -3,38 +3,44 @@ package model
import "time"
const (
CouponTypeDeduction = "deduction"
)
const (
CouponTypeMemberRenewal = "member_renewal"
CouponTypeDeduction = "deduction" // 抵扣
)
//go:generate goqueryset -in coupon.go
// gen:qs
type Coupon struct {
Model
Name string `json:"name"`
Describe string `json:"describe" gorm:"type:text;"` // 描述
CouponType string `json:"coupon_type"`
ActivityType uint32 `json:"activity_type"` // 活动类型 1-会员续费
ActivityId uint32 `json:"activity_id" gorm:"index"`
Value uint32 `json:"value"`
OutCount uint32 `json:"out_count"` // 用户已领取数量
UsedCount uint32 `json:"used_count"` // 用户已使用数量
ActiveStart time.Time `json:"active_start"` // 有效期开始
ActiveEnd time.Time `json:"active_end"` // 有效期结束 零值永不结束
MemberLevel uint32 `json:"member_level"` // 会员等级 1-用户 2-会员
IsDraw bool `json:"is_draw" gorm:"-"`
}
// gen:qs
type UserCoupon struct {
Model
Uid uint32 `json:"uid"`
CouponId uint32 `json:"coupon_id"`
Uid uint32 `json:"uid" gorm:"index"`
CouponId uint32 `json:"coupon_id" gorm:"index"`
CouponType string `json:"coupon_type"`
ActivityType uint32 `json:"activity_type"` // 活动类型 1-会员续费
ActivityId uint32 `json:"activity_id" gorm:"index"`
Value uint32 `json:"value"`
State uint32 `json:"state"` // 1-未使用 2-已使用 3-已过期
ActiveStart time.Time `json:"active_start"` // 有效期开始
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
@ -52,7 +58,7 @@ type Activity struct {
type ActivityMemberRenewal struct {
Model
ActivityId uint32 `json:"activity_id"`
ActivityId uint32 `json:"activity_id" gorm:"index"`
Uid uint32 `json:"uid"`
State uint32 `json:"state" gorm:"column:state;comment:'状态'"` // 1-进行中 2-已完成 3-已过期
StartTime time.Time `json:"start_time" gorm:"column:start_time;comment:'开始时间'"` // 开始时间

View File

@ -21,7 +21,7 @@ type GameCard struct {
NewProducts uint8 `json:"new_products"` // 新品: 1-新品 2-非新品
Status uint8 `json:"status"` // 状态: 1-上架 2-下架
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"` // 总量
GameTypeId uint32 `json:"game_type_id"` // 游戏类型
GoodsGalleryUrl string `json:"goods_gallery_url" gorm:"type:text;comment:'轮播图'"` // 轮播图
@ -64,6 +64,7 @@ type HomeCarousel struct {
IsShow uint32 `json:"is_show"` // 1-显示 2-隐藏
Detail string `json:"detail" gorm:"type:text;comment:'详情描述'"`
Link string `json:"link"`
ActivityType uint32 `json:"activity_type"` // 活动类型:1-会员续费
}
func (*HomeCarousel) TableName() string {
@ -137,9 +138,6 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
}
}
if sortType == 1 {
}
hideGamePrice := uint32(30000)
var user *User
if uid != 0 {
@ -151,6 +149,8 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
}
gameIds := make([]uint32, 0)
gameIdMap := make(map[uint32]uint32)
if sortType == 1 {
if storeId != 0 {
//gameIds := make([]uint32, 0)
////gameIdMap := make(map[uint32]int)
@ -171,12 +171,12 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
//qs = qs.IDIn(gameIds...)
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 {
logger.Error("GetGameIdByType err:", err)
return cards, 0, err
}
for i, _ := range cardStocks {
_, ok := gameIdMap[uint32(cardStocks[i].GameCardId)]
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 {
logger.Error("GetGameIdByType err:", 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 {
logger.Error("GetGameIdByType err:", err)
return cards, 0, err
@ -212,13 +242,14 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
}
qs = qs.IDIn(gameIds...)
}
}
if count == 0 {
count, err = qs.Count()
}
totalPage = uint32(count/pageSize + 1)
//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)
if err != nil && err != RecordNotFound {
logger.Error("err:", err)
@ -377,7 +408,7 @@ func (*GameCardGoodsStock) TableName() string {
return "game_card_goods_stock"
}
func GetGameCardInfo(id uint64) (GameCard, error) {
func GetGameCardInfo(id uint64, storeId uint32) (GameCard, error) {
game := GameCard{}
err := NewGameCardQuerySet(DB).IDEq(uint32(id)).One(&game)
if err != nil && err != RecordNotFound {
@ -385,16 +416,34 @@ func GetGameCardInfo(id uint64) (GameCard, error) {
return game, err
}
var cardStocks []GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdEq(uint64(game.ID)).All(&cardStocks)
if err != nil {
var cardStock GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdEq(uint64(game.ID)).StoreIdEq(uint64(storeId)).One(&cardStock)
if err != nil && err != RecordNotFound {
logger.Error("err:", err)
return game, nil
}
cardStock := uint32(0)
for i, _ := range cardStocks {
cardStock += cardStocks[i].RentStock
if cardStock.RentStock > 0 {
game.StockState = 1
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
}
@ -411,62 +460,86 @@ func GetGameCardSearch(name string, page, pageSize int, storeId uint32) ([]GameC
if page < 0 {
page = 0
}
sqlStore := ""
if storeId != 0 {
var gameStocks []GameCardGoodsStock
err := NewGameCardGoodsStockQuerySet(DB).StoreIdEq(uint64(storeId)).All(&gameStocks)
if err != nil {
if pageSize <= 0 {
pageSize = 10
}
//sqlStore := ""
//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, ","))
//}
}
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
countSql := "SELECT COUNT(id) AS count FROM game_card WHERE status=1 AND game_card.name LIKE '%" + name + "%'"
err := DB.Raw(countSql).Scan(&cardCount).Error
if err != nil {
logger.Error("err:", 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 := 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 + "%'"
//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
if err != nil {
logger.Error("err:", err)
return cards, 0, err
}
cardIds := make([]uint64, 0)
cardMap := make(map[uint32]GameCard, 0)
cardIds := make([]uint64, 0, len(cards))
for i, _ := range cards {
cardIds = append(cardIds, uint64(cards[i].ID))
cardMap[cards[i].ID] = cards[i]
}
var cardStocks []GameCardGoodsStock
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdIn(cardIds...).All(&cardStocks)
err = NewGameCardGoodsStockQuerySet(DB).GameCardIdIn(cardIds...).RentStockGt(0).All(&cardStocks)
if err != nil {
logger.Error("err:", err)
logger.Error("game card goods stock err:", err)
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 {
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
return cards, totalPage, nil
}
@ -480,6 +553,7 @@ func GetHomeCarouselList() ([]HomeCarousel, error) {
logger.Error("err:", err)
return carousels, err
}
return carousels, nil
}

View File

@ -119,6 +119,11 @@ func InitTestDB() {
&GameCard{},
&ActivityMemberRenewal{},
&Activity{},
&UserCoupon{},
&Coupon{},
&UserOpenMemberRecord{},
&HomeCarousel{},
)
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) {
InitTestDB()
//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() {
InitTestDB()
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
if err != nil {
logger.Error("err:", err)
@ -1364,7 +1412,7 @@ func NumStringSort(n string) (string, error) {
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", " ")
b := make([]byte, 0)
@ -1375,3 +1423,12 @@ func TestBtys(t *testing.T) {
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)
}

View File

@ -251,7 +251,7 @@ func UserUpdate(user *User) error {
return nil
}
//OrderType: 1-物流支付 2-取消物流租卡 3-滞纳金 4-收回卡 5-退物流费 6-商城购物 7-购买商品取消订单 8-购买商品订单退货
//OrderType: 1-物流支付 2-取消物流租卡 3-滞纳金 4-收回卡 5-退物流费 6-商城购物 7-购买商品取消订单 8-购买商品订单退货 9-升级会员
// gen:qs
type UserOpenMemberRecord struct {
@ -263,6 +263,7 @@ type UserOpenMemberRecord struct {
OrderType uint32 `json:"order_type"`
MemberLevel uint32 `json:"member_level"`
MemberExpire time.Time `json:"member_expire"` // 会员到期时间
UserCouponId uint32 `json:"user_coupon_id" gorm:"index"` // 优惠券id
Order *Order `json:"order" gorm:"-"`
ShareCardRetrieve *ShareCardRetrieve `json:"share_card_retrieve" gorm:"-"`
@ -763,7 +764,9 @@ func OrderCardUserRentCard(uid uint32, count uint32, memberConfig *MemberConfig,
}
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
if err != nil {
logger.Error("err", err)

View File

@ -49,14 +49,13 @@ func ConfigAppRouter(r gin.IRouter) {
gameCard := api.Group("game_card")
{
gameCard.POST("banner", controller.HomeCarouselList) // 轮播图
gameCard.POST("game_type", controller.GameCardTypes) // 游戏标签
gameCard.POST("type/list", controller.GameCardTypeList) // 游戏类型列表
gameCard.Use(auth.UserAccessAuth)
gameCard.POST("info", controller.GameCardInfo) // 游戏卡详情
gameCard.POST("list", controller.GameCardList) // 游戏卡列表
gameCard.POST("banner", controller.HomeCarouselList) // 轮播图
}
search := gameCard.Group("search")
@ -165,7 +164,9 @@ func ConfigAppRouter(r gin.IRouter) {
// 会员续费
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")