This commit is contained in:
li 2022-07-29 10:02:33 +08:00
parent 0a881f3b03
commit 581633ebe6
11 changed files with 2684 additions and 298 deletions

View File

@ -72,42 +72,80 @@ func AuthLogin(c *gin.Context) {
inviteUser := model.GetUserByUid(req.InviteUid) inviteUser := model.GetUserByUid(req.InviteUid)
user.StoreId = inviteUser.StoreId user.StoreId = inviteUser.StoreId
if inviteUser.UserType == 2 { if user.StoreId == 0 {
//user.UserType = model.UserTypeConsumer
_, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId). _, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId).
UpdateNum() UpdateNum()
if err != nil { if err != nil {
logger.Error(err) logger.Error("update err:", err)
}
memberLevel := user.MemberLevel
if memberLevel == 0 {
memberLevel = model.MemberTypeConsumer
}
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberOpenTime: time.Time{},
MemberType: memberLevel,
MemberStatus: 1,
ToUid: user.Uid,
}
//count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count()
//if err != nil {
// logger.Error(err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
//if count == 0 {
//}
if err := invite.Create(model.DB); err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return
} }
} }
if inviteUser.UserType == 2 && user.Uid != 0 {
inviteRecord := &model.UserInviteRecord{
ToUid: user.Uid,
FromUid: req.InviteUid,
Action: 1,
SpendType: 1,
MemberLevel: 0,
First: 0,
Scan: 1,
ActionTime: now,
}
err = model.DB.Create(inviteRecord).Error
if err != nil {
logger.Error("create user invite record err:", err)
}
var inviteNew model.UserInvite
inviteErr := model.NewUserInviteQuerySet(model.DB).ToUidEq(user.Uid).FromUidEq(req.InviteUid).ActionEq(1).
SpendTypeEq(1).One(&inviteNew)
if inviteErr != nil && inviteErr != model.RecordNotFound {
logger.Error("user invite err:", err)
}
if inviteErr == model.RecordNotFound {
memberLevel := user.MemberLevel
if memberLevel == 0 {
memberLevel = model.MemberTypeConsumer
}
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberOpenTime: time.Time{},
MemberType: memberLevel,
MemberStatus: 1,
ToUid: user.Uid,
Action: 1,
SpendType: 1,
UserInviteRecordId: inviteRecord.ID,
FirstInvite: 1,
Scan: 1,
}
//count, err := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.InviteUid).ToUidEq(user.Uid).Count()
//if err != nil {
// logger.Error(err)
// RespJson(c, status.InternalServerError, nil)
// return
//}
//if count == 0 {
//}
if err := invite.Create(model.DB); err != nil {
logger.Error(err)
RespJson(c, status.InternalServerError, nil)
return
}
}
if inviteErr == nil {
err = model.NewUserInviteQuerySet(model.DB).IDEq(inviteNew.ID).GetUpdater().
SetFromUid(req.InviteUid).SetStoreId(inviteUser.StoreId).SetUserInviteRecordId(inviteRecord.ID).Update()
if err != nil {
logger.Error("from uid update user invite err:", err, req.InviteUid)
}
}
}
} }
if sqlErr == model.RecordNotFound { if sqlErr == model.RecordNotFound {
user = model.User{ user = model.User{
@ -121,20 +159,53 @@ func AuthLogin(c *gin.Context) {
var eg errgroup.Group var eg errgroup.Group
if req.InviteUid != 0 { if req.InviteUid != 0 {
inviteUser := model.GetUserByUid(req.InviteUid) inviteRecordFirst := &model.UserInviteRecord{
ToUid: user.Uid,
FromUid: req.InviteUid,
Action: 2,
SpendType: 1,
MemberLevel: 0,
First: 1,
Scan: 1,
ActionTime: now,
}
err = model.DB.Create(inviteRecordFirst).Error
if err != nil {
logger.Error("create user invite record err:", err)
}
inviteRecord := &model.UserInviteRecord{
ToUid: user.Uid,
FromUid: req.InviteUid,
Action: 1,
SpendType: 1,
MemberLevel: 0,
First: 0,
Scan: 1,
ActionTime: now,
}
err = model.DB.Create(inviteRecord).Error
if err != nil {
logger.Error("create user invite record err:", err)
}
inviteUser := model.GetUserByUid(req.InviteUid)
user.StoreId = inviteUser.StoreId user.StoreId = inviteUser.StoreId
user.UserType = model.UserTypeConsumer user.UserType = model.UserTypeConsumer
user.CooperativeBusinessId = inviteUser.CooperativeBusinessId user.CooperativeBusinessId = inviteUser.CooperativeBusinessId
user.CooperativeName = inviteUser.CooperativeName user.CooperativeName = inviteUser.CooperativeName
invite := &model.UserInvite{ invite := &model.UserInvite{
FromUid: req.InviteUid, FromUid: req.InviteUid,
UserType: inviteUser.UserType, UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId, StoreId: inviteUser.StoreId,
MemberType: model.MemberTypeConsumer, MemberType: model.MemberTypeConsumer,
ToUid: user.Uid, ToUid: user.Uid,
MemberStatus: 1, MemberStatus: 1,
Action: 1,
SpendType: 1,
UserInviteRecordId: inviteRecord.ID,
Scan: 1,
} }
eg.Go(func() error { eg.Go(func() error {
if err := invite.Create(model.DB); err != nil { if err := invite.Create(model.DB); err != nil {

View File

@ -519,7 +519,7 @@ func AssistantMemberPromotionDetail(c *gin.Context) {
var list []model.UserInvite var list []model.UserInvite
qs := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.AssistantUid). qs := model.NewUserInviteQuerySet(model.DB).FromUidEq(req.AssistantUid).
MemberOpenTimeGte(dateTime).MemberOpenTimeLte(dateTime.AddDate(0, 1, 0)) MemberOpenTimeGte(dateTime).MemberOpenTimeLte(dateTime.AddDate(0, 1, 0))
qs = qs.SpendTypeEq(2)
count, err := qs.Count() count, err := qs.Count()
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)

View File

@ -475,7 +475,6 @@ func PushWXPayNotice(c *gin.Context) {
} else { } else {
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2) memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2)
} }
_, err = userUpdateQs.UpdateNum() _, err = userUpdateQs.UpdateNum()
if err != nil { if err != nil {
logger.Error("err:", err) logger.Error("err:", err)
@ -505,6 +504,8 @@ func PushWXPayNotice(c *gin.Context) {
ToUid: record.Uid, ToUid: record.Uid,
MemberStatus: 2, MemberStatus: 2,
MemberLevel: record.MemberLevel, MemberLevel: record.MemberLevel,
Action: 1,
SpendType: 1,
} }
err := userInvite.Create(model.DB) err := userInvite.Create(model.DB)
if err != nil { if err != nil {
@ -514,17 +515,71 @@ func PushWXPayNotice(c *gin.Context) {
if err != nil { if err != nil {
logger.Error("send user vm err:", err) logger.Error("send user vm err:", err)
} }
} else { }
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
if user.MemberLevel != 2 { if err == nil {
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel) spendType := uint32(2)
if !user.OpenMemberTime.IsZero() {
spendType = 3
} }
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
if err != nil { //qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
logger.Error("err:", err) if invite.Action != 2 {
} qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
if num == 0 { if user.MemberLevel != 2 {
logger.Error("更新错误") qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
}
_, err = qs.SetMemberType(2).SetMemberStatus(2).
SetAction(2).SetSpendType(spendType).UpdateNum()
if err != nil {
logger.Error("update user invite action spend type err:", err)
}
if invite.UserInviteRecordId != 0 {
go func() {
err = model.NewUserInviteRecordQuerySet(model.DB).IDEq(invite.UserInviteRecordId).GetUpdater().
SetAction(2).SetSpendType(spendType).SetMemberLevel(record.MemberLevel).
SetActionTime(newTime).Update()
if err != nil {
logger.Error("update user invite record err:", err)
}
}()
}
} else {
inviteRecordNew := &model.UserInviteRecord{
ToUid: invite.ToUid,
FromUid: invite.FromUid,
Action: 2,
SpendType: spendType,
MemberLevel: record.MemberLevel,
First: 0,
Scan: 0,
ActionTime: newTime,
}
err = model.DB.Create(inviteRecordNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
userInviteNew := &model.UserInvite{
FromUid: invite.FromUid,
UserType: invite.UserType,
StoreId: invite.StoreId,
MemberOpenTime: invite.MemberOpenTime,
MemberType: 2,
MemberStatus: 2,
ToUid: invite.ToUid,
StoreType: invite.StoreType,
Action: 2,
SpendType: spendType,
MemberLevel: record.MemberLevel,
UserInviteRecordId: inviteRecordNew.ID,
FirstInvite: 0,
}
err = model.DB.Create(userInviteNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
} }
if invite.FromUid != 0 { if invite.FromUid != 0 {

View File

@ -391,12 +391,18 @@ func UpgradeMember(c *gin.Context) {
if deductionTime > 0 { if deductionTime > 0 {
deductionDays = deductionTime / int64(24*3600) deductionDays = deductionTime / int64(24*3600)
} }
memberYare := deductionDays/365 + 1 memberYare := 0
memberMendFee := int64(0)
// 抵扣金 // 抵扣金
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100 deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
if deductionDays < 365 {
// 补会员费 memberYare = 1
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee // 补会员费
memberMendFee = int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
} else {
// 补会员费
memberMendFee = int64((int64(memberConfig.MemberFee)*deductionDays)/365) - deductionFee
}
totalFee := int64(depositMendFee) + memberMendFee totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 { //if memberMendFee < 0 {
@ -419,6 +425,7 @@ func UpgradeMember(c *gin.Context) {
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
totalFee = (totalFee / 100) * 100
if user.IsMember() && req.UserCouponId != 0 { if user.IsMember() && req.UserCouponId != 0 {
var coupon model.UserCoupon var coupon model.UserCoupon
@ -465,7 +472,12 @@ func UpgradeMember(c *gin.Context) {
// return // return
//} //}
//orderSn := utils.GetSerialNo32HEXString() //orderSn := utils.GetSerialNo32HEXString()
memberExpire := time.Now().AddDate(1*int(memberYare), 0, count*30) memberExpire := time.Time{}
if deductionDays < 365 {
memberExpire = time.Now().AddDate(1*int(memberYare), 0, count*30)
} else {
memberExpire = time.Now().AddDate(0, 0, count*30+int(deductionDays))
}
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: 9, MemberExpire: memberExpire, MemberLevel: req.MemberLevel, OrderType: 9, MemberExpire: memberExpire,
@ -565,12 +577,25 @@ func UpgradeMemberInfo(c *gin.Context) {
if deductionTime > 0 { if deductionTime > 0 {
deductionDays = deductionTime / int64(24*3600) deductionDays = deductionTime / int64(24*3600)
} }
memberYare := deductionDays/365 + 1 //memberYare := deductionDays/365 + 1
//// 抵扣金
//deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
//
//// 补会员费
//memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
memberYare := 0
memberMendFee := int64(0)
// 抵扣金 // 抵扣金
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100 deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
if deductionDays < 365 {
// 补会员费 memberYare = 1
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee // 补会员费
memberMendFee = int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
} else {
// 补会员费
memberMendFee = int64((int64(memberConfig.MemberFee)*deductionDays)/365) - deductionFee
}
totalFee := int64(depositMendFee) + memberMendFee totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 { //if memberMendFee < 0 {
@ -583,6 +608,7 @@ func UpgradeMemberInfo(c *gin.Context) {
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
totalFee = (totalFee / 100) * 100
//fmt.Println("MemberLevel:", req.MemberLevel) //fmt.Println("MemberLevel:", req.MemberLevel)
//fmt.Println("UserCouponId:", req.UserCouponId) //fmt.Println("UserCouponId:", req.UserCouponId)
//fmt.Println("totalFee:", totalFee) //fmt.Println("totalFee:", totalFee)

File diff suppressed because it is too large Load Diff

View File

@ -6923,6 +6923,62 @@ func (o *UserInvite) Delete(db *gorm.DB) error {
return db.Delete(o).Error return db.Delete(o).Error
} }
// ActionEq is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionEq(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action = ?", action))
}
// ActionGt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionGt(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action > ?", action))
}
// ActionGte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionGte(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action >= ?", action))
}
// ActionIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionIn(action ...uint32) UserInviteQuerySet {
if len(action) == 0 {
qs.db.AddError(errors.New("must at least pass one action in ActionIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("action IN (?)", action))
}
// ActionLt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionLt(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action < ?", action))
}
// ActionLte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionLte(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action <= ?", action))
}
// ActionNe is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionNe(action uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("action != ?", action))
}
// ActionNotIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) ActionNotIn(action ...uint32) UserInviteQuerySet {
if len(action) == 0 {
qs.db.AddError(errors.New("must at least pass one action in ActionNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("action NOT IN (?)", action))
}
// All is an autogenerated method // All is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) All(ret *[]UserInvite) error { func (qs UserInviteQuerySet) All(ret *[]UserInvite) error {
@ -7387,6 +7443,12 @@ func (qs UserInviteQuerySet) One(ret *UserInvite) error {
return qs.db.First(ret).Error return qs.db.First(ret).Error
} }
// OrderAscByAction is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByAction() UserInviteQuerySet {
return qs.w(qs.db.Order("action ASC"))
}
// OrderAscByCreatedAt is an autogenerated method // OrderAscByCreatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderAscByCreatedAt() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderAscByCreatedAt() UserInviteQuerySet {
@ -7435,6 +7497,12 @@ func (qs UserInviteQuerySet) OrderAscByMemberType() UserInviteQuerySet {
return qs.w(qs.db.Order("member_type ASC")) return qs.w(qs.db.Order("member_type ASC"))
} }
// OrderAscBySpendType is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscBySpendType() UserInviteQuerySet {
return qs.w(qs.db.Order("spend_type ASC"))
}
// OrderAscByStoreId is an autogenerated method // OrderAscByStoreId is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderAscByStoreId() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderAscByStoreId() UserInviteQuerySet {
@ -7459,12 +7527,24 @@ func (qs UserInviteQuerySet) OrderAscByUpdatedAt() UserInviteQuerySet {
return qs.w(qs.db.Order("updated_at ASC")) return qs.w(qs.db.Order("updated_at ASC"))
} }
// OrderAscByUserInviteRecordId is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByUserInviteRecordId() UserInviteQuerySet {
return qs.w(qs.db.Order("user_invite_record_id ASC"))
}
// OrderAscByUserType is an autogenerated method // OrderAscByUserType is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderAscByUserType() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderAscByUserType() UserInviteQuerySet {
return qs.w(qs.db.Order("user_type ASC")) return qs.w(qs.db.Order("user_type ASC"))
} }
// OrderDescByAction is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByAction() UserInviteQuerySet {
return qs.w(qs.db.Order("action DESC"))
}
// OrderDescByCreatedAt is an autogenerated method // OrderDescByCreatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderDescByCreatedAt() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderDescByCreatedAt() UserInviteQuerySet {
@ -7513,6 +7593,12 @@ func (qs UserInviteQuerySet) OrderDescByMemberType() UserInviteQuerySet {
return qs.w(qs.db.Order("member_type DESC")) return qs.w(qs.db.Order("member_type DESC"))
} }
// OrderDescBySpendType is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescBySpendType() UserInviteQuerySet {
return qs.w(qs.db.Order("spend_type DESC"))
}
// OrderDescByStoreId is an autogenerated method // OrderDescByStoreId is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderDescByStoreId() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderDescByStoreId() UserInviteQuerySet {
@ -7537,6 +7623,12 @@ func (qs UserInviteQuerySet) OrderDescByUpdatedAt() UserInviteQuerySet {
return qs.w(qs.db.Order("updated_at DESC")) return qs.w(qs.db.Order("updated_at DESC"))
} }
// OrderDescByUserInviteRecordId is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByUserInviteRecordId() UserInviteQuerySet {
return qs.w(qs.db.Order("user_invite_record_id DESC"))
}
// OrderDescByUserType is an autogenerated method // OrderDescByUserType is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) OrderDescByUserType() UserInviteQuerySet { func (qs UserInviteQuerySet) OrderDescByUserType() UserInviteQuerySet {
@ -7549,6 +7641,62 @@ func (qs UserInviteQuerySet) PreloadToUser() UserInviteQuerySet {
return qs.w(qs.db.Preload("ToUser")) return qs.w(qs.db.Preload("ToUser"))
} }
// SpendTypeEq is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeEq(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type = ?", spendType))
}
// SpendTypeGt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeGt(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type > ?", spendType))
}
// SpendTypeGte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeGte(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type >= ?", spendType))
}
// SpendTypeIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeIn(spendType ...uint32) UserInviteQuerySet {
if len(spendType) == 0 {
qs.db.AddError(errors.New("must at least pass one spendType in SpendTypeIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("spend_type IN (?)", spendType))
}
// SpendTypeLt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeLt(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type < ?", spendType))
}
// SpendTypeLte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeLte(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type <= ?", spendType))
}
// SpendTypeNe is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeNe(spendType uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("spend_type != ?", spendType))
}
// SpendTypeNotIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) SpendTypeNotIn(spendType ...uint32) UserInviteQuerySet {
if len(spendType) == 0 {
qs.db.AddError(errors.New("must at least pass one spendType in SpendTypeNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("spend_type NOT IN (?)", spendType))
}
// StoreIdEq is an autogenerated method // StoreIdEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) StoreIdEq(storeId uint64) UserInviteQuerySet { func (qs UserInviteQuerySet) StoreIdEq(storeId uint64) UserInviteQuerySet {
@ -7765,6 +7913,62 @@ func (qs UserInviteQuerySet) UpdatedAtNe(updatedAt time.Time) UserInviteQuerySet
return qs.w(qs.db.Where("updated_at != ?", updatedAt)) return qs.w(qs.db.Where("updated_at != ?", updatedAt))
} }
// UserInviteRecordIdEq is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdEq(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id = ?", userInviteRecordId))
}
// UserInviteRecordIdGt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdGt(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id > ?", userInviteRecordId))
}
// UserInviteRecordIdGte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdGte(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id >= ?", userInviteRecordId))
}
// UserInviteRecordIdIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdIn(userInviteRecordId ...uint32) UserInviteQuerySet {
if len(userInviteRecordId) == 0 {
qs.db.AddError(errors.New("must at least pass one userInviteRecordId in UserInviteRecordIdIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("user_invite_record_id IN (?)", userInviteRecordId))
}
// UserInviteRecordIdLt is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdLt(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id < ?", userInviteRecordId))
}
// UserInviteRecordIdLte is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdLte(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id <= ?", userInviteRecordId))
}
// UserInviteRecordIdNe is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdNe(userInviteRecordId uint32) UserInviteQuerySet {
return qs.w(qs.db.Where("user_invite_record_id != ?", userInviteRecordId))
}
// UserInviteRecordIdNotIn is an autogenerated method
// nolint: dupl
func (qs UserInviteQuerySet) UserInviteRecordIdNotIn(userInviteRecordId ...uint32) UserInviteQuerySet {
if len(userInviteRecordId) == 0 {
qs.db.AddError(errors.New("must at least pass one userInviteRecordId in UserInviteRecordIdNotIn"))
return qs.w(qs.db)
}
return qs.w(qs.db.Where("user_invite_record_id NOT IN (?)", userInviteRecordId))
}
// UserTypeEq is an autogenerated method // UserTypeEq is an autogenerated method
// nolint: dupl // nolint: dupl
func (qs UserInviteQuerySet) UserTypeEq(userType uint32) UserInviteQuerySet { func (qs UserInviteQuerySet) UserTypeEq(userType uint32) UserInviteQuerySet {
@ -7821,6 +8025,13 @@ func (qs UserInviteQuerySet) UserTypeNotIn(userType ...uint32) UserInviteQuerySe
return qs.w(qs.db.Where("user_type NOT IN (?)", userType)) return qs.w(qs.db.Where("user_type NOT IN (?)", userType))
} }
// SetAction is an autogenerated method
// nolint: dupl
func (u UserInviteUpdater) SetAction(action uint32) UserInviteUpdater {
u.fields[string(UserInviteDBSchema.Action)] = action
return u
}
// SetCreatedAt is an autogenerated method // SetCreatedAt is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserInviteUpdater) SetCreatedAt(createdAt time.Time) UserInviteUpdater { func (u UserInviteUpdater) SetCreatedAt(createdAt time.Time) UserInviteUpdater {
@ -7877,6 +8088,13 @@ func (u UserInviteUpdater) SetMemberType(memberType uint32) UserInviteUpdater {
return u return u
} }
// SetSpendType is an autogenerated method
// nolint: dupl
func (u UserInviteUpdater) SetSpendType(spendType uint32) UserInviteUpdater {
u.fields[string(UserInviteDBSchema.SpendType)] = spendType
return u
}
// SetStoreId is an autogenerated method // SetStoreId is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserInviteUpdater) SetStoreId(storeId uint64) UserInviteUpdater { func (u UserInviteUpdater) SetStoreId(storeId uint64) UserInviteUpdater {
@ -7905,6 +8123,13 @@ func (u UserInviteUpdater) SetUpdatedAt(updatedAt time.Time) UserInviteUpdater {
return u return u
} }
// SetUserInviteRecordId is an autogenerated method
// nolint: dupl
func (u UserInviteUpdater) SetUserInviteRecordId(userInviteRecordId uint32) UserInviteUpdater {
u.fields[string(UserInviteDBSchema.UserInviteRecordId)] = userInviteRecordId
return u
}
// SetUserType is an autogenerated method // SetUserType is an autogenerated method
// nolint: dupl // nolint: dupl
func (u UserInviteUpdater) SetUserType(userType uint32) UserInviteUpdater { func (u UserInviteUpdater) SetUserType(userType uint32) UserInviteUpdater {
@ -7940,56 +8165,65 @@ func (f UserInviteDBSchemaField) String() string {
// UserInviteDBSchema stores db field names of UserInvite // UserInviteDBSchema stores db field names of UserInvite
var UserInviteDBSchema = struct { var UserInviteDBSchema = struct {
ID UserInviteDBSchemaField ID UserInviteDBSchemaField
CreatedAt UserInviteDBSchemaField CreatedAt UserInviteDBSchemaField
UpdatedAt UserInviteDBSchemaField UpdatedAt UserInviteDBSchemaField
DeletedAt UserInviteDBSchemaField DeletedAt UserInviteDBSchemaField
FromUid UserInviteDBSchemaField FromUid UserInviteDBSchemaField
UserType UserInviteDBSchemaField UserType UserInviteDBSchemaField
StoreId UserInviteDBSchemaField StoreId UserInviteDBSchemaField
MemberOpenTime UserInviteDBSchemaField MemberOpenTime UserInviteDBSchemaField
MemberType UserInviteDBSchemaField MemberType UserInviteDBSchemaField
MemberStatus UserInviteDBSchemaField MemberStatus UserInviteDBSchemaField
ToUid UserInviteDBSchemaField ToUid UserInviteDBSchemaField
StoreType UserInviteDBSchemaField StoreType UserInviteDBSchemaField
MemberLevel UserInviteDBSchemaField Action UserInviteDBSchemaField
ToUser UserInviteDBSchemaField SpendType UserInviteDBSchemaField
MemberLevel UserInviteDBSchemaField
UserInviteRecordId UserInviteDBSchemaField
ToUser UserInviteDBSchemaField
}{ }{
ID: UserInviteDBSchemaField("id"), ID: UserInviteDBSchemaField("id"),
CreatedAt: UserInviteDBSchemaField("created_at"), CreatedAt: UserInviteDBSchemaField("created_at"),
UpdatedAt: UserInviteDBSchemaField("updated_at"), UpdatedAt: UserInviteDBSchemaField("updated_at"),
DeletedAt: UserInviteDBSchemaField("deleted_at"), DeletedAt: UserInviteDBSchemaField("deleted_at"),
FromUid: UserInviteDBSchemaField("from_uid"), FromUid: UserInviteDBSchemaField("from_uid"),
UserType: UserInviteDBSchemaField("user_type"), UserType: UserInviteDBSchemaField("user_type"),
StoreId: UserInviteDBSchemaField("store_id"), StoreId: UserInviteDBSchemaField("store_id"),
MemberOpenTime: UserInviteDBSchemaField("member_open_time"), MemberOpenTime: UserInviteDBSchemaField("member_open_time"),
MemberType: UserInviteDBSchemaField("member_type"), MemberType: UserInviteDBSchemaField("member_type"),
MemberStatus: UserInviteDBSchemaField("member_status"), MemberStatus: UserInviteDBSchemaField("member_status"),
ToUid: UserInviteDBSchemaField("to_uid"), ToUid: UserInviteDBSchemaField("to_uid"),
StoreType: UserInviteDBSchemaField("store_type"), StoreType: UserInviteDBSchemaField("store_type"),
MemberLevel: UserInviteDBSchemaField("member_level"), Action: UserInviteDBSchemaField("action"),
ToUser: UserInviteDBSchemaField("to_user"), SpendType: UserInviteDBSchemaField("spend_type"),
MemberLevel: UserInviteDBSchemaField("member_level"),
UserInviteRecordId: UserInviteDBSchemaField("user_invite_record_id"),
ToUser: UserInviteDBSchemaField("to_user"),
} }
// Update updates UserInvite fields by primary key // Update updates UserInvite fields by primary key
// nolint: dupl // nolint: dupl
func (o *UserInvite) Update(db *gorm.DB, fields ...UserInviteDBSchemaField) error { func (o *UserInvite) Update(db *gorm.DB, fields ...UserInviteDBSchemaField) error {
dbNameToFieldName := map[string]interface{}{ dbNameToFieldName := map[string]interface{}{
"id": o.ID, "id": o.ID,
"created_at": o.CreatedAt, "created_at": o.CreatedAt,
"updated_at": o.UpdatedAt, "updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt, "deleted_at": o.DeletedAt,
"from_uid": o.FromUid, "from_uid": o.FromUid,
"user_type": o.UserType, "user_type": o.UserType,
"store_id": o.StoreId, "store_id": o.StoreId,
"member_open_time": o.MemberOpenTime, "member_open_time": o.MemberOpenTime,
"member_type": o.MemberType, "member_type": o.MemberType,
"member_status": o.MemberStatus, "member_status": o.MemberStatus,
"to_uid": o.ToUid, "to_uid": o.ToUid,
"store_type": o.StoreType, "store_type": o.StoreType,
"member_level": o.MemberLevel, "action": o.Action,
"to_user": o.ToUser, "spend_type": o.SpendType,
"member_level": o.MemberLevel,
"user_invite_record_id": o.UserInviteRecordId,
"to_user": o.ToUser,
} }
u := map[string]interface{}{} u := map[string]interface{}{}
for _, f := range fields { for _, f := range fields {

View File

@ -74,16 +74,16 @@ const (
type CooperativeMemberPromotion struct { type CooperativeMemberPromotion struct {
Model Model
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
GoldCount uint32 `json:"gold_count"` // 黄金会员数量 GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量 PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量 BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
Date string `json:"date" gorm:"index"` // Date string `json:"date" gorm:"index"` //
State string `json:"state"` // 待发起结算 待财务打款 已结算 State string `json:"state"` // 待发起结算 待财务打款 已结算
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量 RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量 RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量 RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
// cooperative_member_promotion // cooperative_member_promotion
} }
@ -93,15 +93,15 @@ type CooperativeMemberPromotion struct {
type CooperativeMemberPromotionStore struct { type CooperativeMemberPromotionStore struct {
Model Model
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
GoldCount uint32 `json:"gold_count"` // 黄金会员数量 GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量 PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量 BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
Date string `json:"date" gorm:"index"` // Date string `json:"date" gorm:"index"` //
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量 RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量 RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量 RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
// cooperative_member_promotion_store // cooperative_member_promotion_store
} }
@ -110,14 +110,14 @@ type CooperativeMemberPromotionStore struct {
type CooperativeMemberPromotionDay struct { type CooperativeMemberPromotionDay struct {
Model Model
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
GoldCount uint32 `json:"gold_count"` // 黄金会员数量 GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量 PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量 BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
DayTime string `json:"day_time" gorm:"index"` // DayTime string `json:"day_time" gorm:"index"` //
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量 RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量 RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量 RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
// cooperative_member_promotion_day // cooperative_member_promotion_day
} }
@ -126,15 +126,15 @@ type CooperativeMemberPromotionDay struct {
type CooperativeMemberPromotionStoreDay struct { type CooperativeMemberPromotionStoreDay struct {
Model Model
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
StoreId uint32 `json:"store_id" gorm:"index"` // 门店id StoreId uint32 `json:"store_id" gorm:"index"` // 门店id
GoldCount uint32 `json:"gold_count"` // 黄金会员数量 GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量 PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量 BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
DayTime string `json:"day_time" gorm:"index"` // DayTime string `json:"day_time" gorm:"index"` //
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量 RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量 RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量 RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
// cooperative_member_promotion_store_day // cooperative_member_promotion_store_day
} }
@ -143,21 +143,21 @@ type CooperativeDeductSettle struct {
Model Model
CooperativeMemberPromotionId uint32 `json:"cooperative_member_promotion_id" gorm:"index"` CooperativeMemberPromotionId uint32 `json:"cooperative_member_promotion_id" gorm:"index"`
CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"` CooperativeBusinessId uint32 `json:"cooperative_business_id" gorm:"index"`
CooperativeName string `json:"cooperative_name"` // 合作商名称 CooperativeName string `json:"cooperative_name"` // 合作商名称
DeductAmount uint32 `json:"deduct_amount"` // 提成金额 DeductAmount uint32 `json:"deduct_amount"` // 提成金额
Date string `json:"date" gorm:"index"` // Date string `json:"date" gorm:"index"` //
State string `json:"state"` // 待财务打款 已结算 State string `json:"state"` // 待财务打款 已结算
GoldCount uint32 `json:"gold_count"` // 黄金会员数量 GoldCount uint32 `json:"gold_count" gorm:"default:0"` // 黄金会员数量
PlatinumCount uint32 `json:"platinum_count"` // 白金会员数量 PlatinumCount uint32 `json:"platinum_count" gorm:"default:0"` // 白金会员数量
BlackGoldCount uint32 `json:"black_gold_count"` // 黑金会员数量 BlackGoldCount uint32 `json:"black_gold_count" gorm:"default:0"` // 黑金会员数量
GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置 GoldDeduct uint32 `json:"gold_deduct"` // 黄金会员提成配置
PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置 PlatinumDeduct uint32 `json:"platinum_deduct"` // 白金会员提成配置
BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金会员提成配置 BlackGoldDeduct uint32 `json:"black_gold_deduct"` // 黑金会员提成配置
RenewalGoldCount uint32 `json:"renewal_gold_count"` // 续费黄金会员数量 RenewalGoldCount uint32 `json:"renewal_gold_count" gorm:"default:0"` // 续费黄金会员数量
RenewalPlatinumCount uint32 `json:"renewal_platinum_count"` // 续费白金会员数量 RenewalPlatinumCount uint32 `json:"renewal_platinum_count" gorm:"default:0"` // 续费白金会员数量
RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count"` // 续费黑金会员数量 RenewalBlackGoldCount uint32 `json:"renewal_black_gold_count" gorm:"default:0"` // 续费黑金会员数量
RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成 RenewalGoldDeduct uint32 `json:"renewal_gold_deduct"` // 续费黄金会员提成
RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成 RenewalPlatinumDeduct uint32 `json:"renewal_platinum_deduct"` // 续费白金会员提成
@ -600,6 +600,7 @@ func (m *CooperativeMemberPromotion) AddRenewal(gdb *gorm.DB, memberLevel int) e
return err return err
} }
} else { } else {
m.State = PromotionStateUnSettlement m.State = PromotionStateUnSettlement
err = gdb.Create(m).Error err = gdb.Create(m).Error
if err != nil { if err != nil {
@ -649,6 +650,7 @@ func (m *CooperativeMemberPromotionStore) AddRenewal(gdb *gorm.DB, memberLevel i
return err return err
} }
} else { } else {
err = gdb.Create(m).Error err = gdb.Create(m).Error
if err != nil { if err != nil {
logger.Error("create cooperative member promotion err:", err) logger.Error("create cooperative member promotion err:", err)
@ -693,6 +695,7 @@ func (m *CooperativeMemberPromotionDay) AddRenewal(gdb *gorm.DB, memberLevel int
return err return err
} }
} else { } else {
err = gdb.Create(m).Error err = gdb.Create(m).Error
if err != nil { if err != nil {
logger.Error("create cooperative member promotion day err:", err) logger.Error("create cooperative member promotion day err:", err)
@ -741,6 +744,7 @@ func (m *CooperativeMemberPromotionStoreDay) AddRenewal(gdb *gorm.DB, memberLeve
return err return err
} }
} else { } else {
err = gdb.Create(m).Error err = gdb.Create(m).Error
if err != nil { if err != nil {
logger.Error("create cooperative member promotion store day err:", err) logger.Error("create cooperative member promotion store day err:", err)
@ -765,6 +769,7 @@ func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel int) error {
return errors.New("uid is null") return errors.New("uid is null")
} }
m.Date = dateString m.Date = dateString
sql := "" sql := ""
switch memberLevel { switch memberLevel {
case 2: case 2:
@ -798,6 +803,7 @@ func (m *InviteMemberReport) AddRenewal(gdb *gorm.DB, memberLevel int) error {
return err return err
} }
} else { } else {
//m.State = PromotionStateUnSettlement //m.State = PromotionStateUnSettlement
err = gdb.Create(m).Error err = gdb.Create(m).Error
if err != nil { if err != nil {

View File

@ -111,8 +111,9 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
switch sortType { switch sortType {
case 1: case 1:
// 排序类型 1-默认 // 排序类型 1-默认
qs = qs.OrderDescByCreatedAt() //qs = qs.OrderDescByCreatedAt()
//qs = qs.OrderAscByStockState() //qs = qs.OrderAscByStockState()
qs = qs.OrderAscByID()
case 2: case 2:
// 排序类型 2-新品 // 排序类型 2-新品
qs = qs.NewProductsEq(1) qs = qs.NewProductsEq(1)
@ -146,6 +147,10 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
var user *User var user *User
if uid != 0 { if uid != 0 {
user = GetUserByUid(uid) user = GetUserByUid(uid)
if user == nil {
logger.Error("get user err:", err)
return cards, 0, err
}
if user.MemberExpire.After(time.Now()) && if user.MemberExpire.After(time.Now()) &&
user.MemberExpire.AddDate(0, 0, -14).Before(time.Now()) { user.MemberExpire.AddDate(0, 0, -14).Before(time.Now()) {
qs = qs.RealPriceLte(hideGamePrice) qs = qs.RealPriceLte(hideGamePrice)
@ -254,9 +259,6 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
} }
} }
//if count == 0 {
//
//}
count, err = qs.Count() count, err = qs.Count()
if err != nil { if err != nil {
logger.Error("count err:", err) logger.Error("count err:", err)
@ -275,7 +277,8 @@ func GetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, storeId
GameCardListSetStockState(cards, storeId) GameCardListSetStockState(cards, storeId)
} else { } else {
err = qs.All(&cards) err = qs.OrderDescByID().All(&cards)
//err = qs.OrderAscByID().All(&cards)
if err != nil && err != RecordNotFound { if err != nil && err != RecordNotFound {
logger.Error("list err:", err) logger.Error("list err:", err)
return cards, 0, err return cards, 0, err

View File

@ -1,7 +1,9 @@
package model package model
import "time"
// 邀请关系 // 邀请关系
//go:generate goqueryset -in user_invite_level.go //go:generate goqueryset -in invite.go
// gen:qs // gen:qs
type UserInviteLevel struct { type UserInviteLevel struct {
Model Model
@ -19,6 +21,13 @@ type UserInviteLevel struct {
type UserInviteRecord struct { type UserInviteRecord struct {
Model Model
ToUid uint32 `json:"to_uid"` // 用户ID ToUid uint32 `json:"to_uid"` // 用户ID
FromUid uint32 `json:"from_uid"` // 邀请人ID FromUid uint32 `json:"from_uid"` // 邀请人ID
Action uint32 `json:"action"` // 1-未激活 2-激活邀请
SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级
MemberLevel uint32 `json:"member_level"` // 会员等级
First uint32 `json:"first"` // 首次
Scan uint32 `json:"scan"` // 扫码
ActionTime time.Time `json:"action_time"` // 激活时间
// user_invite_record
} }

View File

@ -147,13 +147,16 @@ func InitTestDB() {
//&CooperativeMemberPromotion{}, //&CooperativeMemberPromotion{},
//&CooperativeMemberPromotion{}, //&CooperativeMemberPromotion{},
//&CooperativeMemberPromotionDay{}, //&CooperativeMemberPromotionDay{},
&CooperativeMemberDeduct{}, //&CooperativeMemberDeduct{},
&CooperativeAssistantMemberDeduct{}, //&CooperativeAssistantMemberDeduct{},
&CooperativeMemberPromotion{}, //&CooperativeMemberPromotion{},
//&CooperativeMemberPromotionStore{},
//&CooperativeMemberPromotionDay{},
//&CooperativeMemberPromotionStoreDay{},
//&CooperativeDeductSettle{},
&UserInvite{},
&UserInviteRecord{},
&CooperativeMemberPromotionStore{}, &CooperativeMemberPromotionStore{},
&CooperativeMemberPromotionDay{},
&CooperativeMemberPromotionStoreDay{},
&CooperativeDeductSettle{},
) )
fmt.Println("DB init success") fmt.Println("DB init success")
@ -258,6 +261,10 @@ func InitDBProd() {
//&HomeCarousel{}, //&HomeCarousel{},
//&UserRenewalLog{}, //&UserRenewalLog{},
&GameCard{}, &GameCard{},
&CooperativeMemberPromotion{},
&CooperativeMemberPromotionStore{},
&CooperativeMemberPromotionDay{},
&CooperativeMemberPromotionStoreDay{},
) )
if err := DBProd.DB().Ping(); err != nil { if err := DBProd.DB().Ping(); err != nil {
@ -772,28 +779,28 @@ func TestMemberUserList(t *testing.T) {
} }
func MemberUserList() { func MemberUserList() {
InitDBProd() //InitDBProd()
var users []User //var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).OrderAscByID().All(&users) //err := NewUserQuerySet(DBProd).MemberLevelEq(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).MemberLevelNe(2).OrderAscByID().All(&users) ////err := NewUserQuerySet(DBProd).MemberLevelNe(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users) ////err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users)
if err != nil { //if err != nil {
fmt.Println("users err:", err) // fmt.Println("users err:", err)
return // return
} //}
endTime, _ := time.Parse("2006-01-02", "2022-02-13") //endTime, _ := time.Parse("2006-01-02", "2022-02-13")
startTime, _ := time.Parse("2006-01-02", "2021-07-30") //startTime, _ := time.Parse("2006-01-02", "2021-07-30")
//
for _, user := range users { //for _, user := range users {
count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count() // count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count()
//count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count() // //count, err := NewUserInviteQuerySet(DBProd).ToUidEq(user.Uid).MemberTypeEq(2).MemberOpenTimeGt(startTime).MemberOpenTimeLt(endTime).Count()
if err != nil { // if err != nil {
fmt.Println("err:", err) // fmt.Println("err:", err)
} // }
if count == 0 { // if count == 0 {
fmt.Println("user :", user.Uid) // fmt.Println("user :", user.Uid)
} // }
} //}
} }
@ -802,34 +809,34 @@ func TestOpenMemberTimeUserList(t *testing.T) {
} }
func OpenMemberTimeUserList() { func OpenMemberTimeUserList() {
InitDBProd() //InitDBProd()
var users []User //var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).All(&users) //err := NewUserQuerySet(DBProd).MemberLevelEq(2).All(&users)
if err != nil { //if err != nil {
fmt.Println("err:", err) // fmt.Println("err:", err)
} //}
userMap := make(map[uint32]User, 0) //userMap := make(map[uint32]User, 0)
for i, _ := range users { //for i, _ := range users {
userMap[users[i].Uid] = users[i] // userMap[users[i].Uid] = users[i]
} //}
//
var userInvites []UserInvite //var userInvites []UserInvite
err = NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites) //err = NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil { //if err != nil {
fmt.Println("err:", err) // fmt.Println("err:", err)
} //}
//
for i, _ := range userInvites { //for i, _ := range userInvites {
user, ok := userMap[userInvites[i].ToUid] // user, ok := userMap[userInvites[i].ToUid]
if ok { // if ok {
if user.OpenMemberTime.IsZero() { // if user.OpenMemberTime.IsZero() {
fmt.Println("", user.OpenMemberTime, user.Uid, user.MemberLevel) // fmt.Println("", user.OpenMemberTime, user.Uid, user.MemberLevel)
fmt.Println("", userInvites[i].MemberOpenTime, userInvites[i].MemberType, userInvites[i].ToUid) // fmt.Println("", userInvites[i].MemberOpenTime, userInvites[i].MemberType, userInvites[i].ToUid)
//
} // }
} // }
//
} //}
} }
@ -882,29 +889,29 @@ func TestSyncUserOpenMemberTime(t *testing.T) {
} }
func SyncUserOpenMemberTime() { func SyncUserOpenMemberTime() {
InitDBProd() //InitDBProd()
var userInvites []UserInvite //var userInvites []UserInvite
err := NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites) //err := NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil { //if err != nil {
logger.Error("err:", err) // logger.Error("err:", err)
} //}
count := 0 //count := 0
for _, userInvite := range userInvites { //for _, userInvite := range userInvites {
fmt.Println("user:", userInvite.MemberLevel, userInvite.MemberOpenTime) // fmt.Println("user:", userInvite.MemberLevel, userInvite.MemberOpenTime)
//err = NewUserInviteQuerySet(DBProd).IDEq(userInvite.ID).GetUpdater().SetMemberLevel(2).Update() // //err = NewUserInviteQuerySet(DBProd).IDEq(userInvite.ID).GetUpdater().SetMemberLevel(2).Update()
//if err != nil { // //if err != nil {
// logger.Error("err:", err) // // logger.Error("err:", err)
//} // //}
//
err = NewUserQuerySet(DBProd).UidEq(userInvite.ToUid).GetUpdater(). // err = NewUserQuerySet(DBProd).UidEq(userInvite.ToUid).GetUpdater().
SetOpenMemberTime(userInvite.MemberOpenTime).Update() // SetOpenMemberTime(userInvite.MemberOpenTime).Update()
if err != nil { // if err != nil {
logger.Error("err:", err) // logger.Error("err:", err)
} // }
count++ // count++
} //}
//
fmt.Println("count:", count) //fmt.Println("count:", count)
} }
func TestSyncUserOrder(t *testing.T) { func TestSyncUserOrder(t *testing.T) {

View File

@ -87,16 +87,23 @@ const (
type UserInvite struct { type UserInvite struct {
Model Model
FromUid uint32 `json:"from_uid"` // 邀请用户id FromUid uint32 `json:"from_uid"` // 邀请用户id
UserType uint32 `json:"user_type"` // 用户类型 UserType uint32 `json:"user_type"` // 用户类型 1-普通用户
StoreId uint64 `json:"store_id"` // 门店id StoreId uint64 `json:"store_id"` // 门店id
MemberOpenTime time.Time `json:"member_open_time"` // 开通会员 MemberOpenTime time.Time `json:"member_open_time"` // 开通会员
MemberType uint32 `json:"member_type"` // 被邀请用户 1-普通用户 2-会员 MemberType uint32 `json:"member_type"` // 被邀请用户 1-普通用户 2-会员
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员 MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
ToUid uint32 `json:"to_uid"` // 被邀请用户 ToUid uint32 `json:"to_uid"` // 被邀请用户
StoreType uint32 `json:"store_type"` // 门店类型 StoreType uint32 `json:"store_type"` // 门店类型 1-自有 2-合作商
MemberLevel uint32 `json:"member_level"` // 会员等级 Action uint32 `json:"action"` // 1-未激活 2-激活邀请
ToUser *UserLess `json:"to_user"` // SpendType uint32 `json:"spend_type"` // 1-未开通 2-开通会员 3-续费 4-升级
MemberLevel uint32 `json:"member_level"` // 会员等级
UserInviteRecordId uint32 `json:"user_invite_record_id"` // 邀请记录
FirstInvite uint32 `json:"first_invite"` // 首次
Scan uint32 `json:"scan"` // 扫码
ToUser *User `json:"to_user" gorm:"-"`
//ToUser *UserLess `json:"to_user" gorm:"-"` //
} }
type UserLess struct { type UserLess struct {
@ -128,13 +135,6 @@ type DepositRefundRecord struct {
} }
const ( const (
//FundTypeMemberGold = "member_gold" // 黄金会员
//FundTypeMemberPlatinum = "member_platinum" // 白金会员
//FundTypeMemberBlackGold = "member_black_gold" // 黑金会员
//FundTypeMemberGoldDeposit = "member_gold_deposit" // 黄金会员押金
//FundTypeMemberPlatinumDeposit = "member_platinum_deposit" // 白金会员押金
//FundTypeMemberBlackGoldDeposit = "member_black_gold_platinum" // 黑金会员押金
FundTypeMemberFee = "member_fee" // 会员费 FundTypeMemberFee = "member_fee" // 会员费
FundTypeMemberDeposit = "member_deposit" // 押金 FundTypeMemberDeposit = "member_deposit" // 押金
FundTypeExpressFee = "express_fee" // 邮费 FundTypeExpressFee = "express_fee" // 邮费
@ -522,22 +522,23 @@ type UserInviteListReq struct {
} }
type UserInviteListResp struct { type UserInviteListResp struct {
Page int `json:"page"` Page int `json:"page"`
TotalPage int `json:"total_page"` TotalPage int `json:"total_page"`
List []UserInviteList `json:"list"` //List []UserInviteList `json:"list"`
Count int `json:"count"` List []UserInvite `json:"list"`
Count int `json:"count"`
} }
type UserInviteList struct { //type UserInviteList struct {
User User `json:"user"` // User User `json:"user"`
UserInvite UserInvite `json:"user_invite"` // UserInvite UserInvite `json:"user_invite"`
} //}
func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) { func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
list := make([]User, 0) list := make([]User, 0)
resp := &UserInviteListResp{ resp := &UserInviteListResp{
Page: m.Page, Page: m.Page,
List: make([]UserInviteList, 0), List: make([]UserInvite, 0),
} }
page := m.Page - 1 page := m.Page - 1
if page < 0 { if page < 0 {
@ -587,19 +588,25 @@ func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
var invites []UserInvite var invites []UserInvite
//err = qs.Offset(page * m.PageSize).Limit(m.PageSize).OrderDescByID().All(&invites) //err = qs.Offset(page * m.PageSize).Limit(m.PageSize).OrderDescByID().All(&invites)
err = qs.Offset(page * m.PageSize).Limit(m.PageSize).OrderDescByMemberOpenTime().All(&invites) err = qs.OrderDescByID().Offset(page * m.PageSize).Limit(m.PageSize).OrderDescByMemberOpenTime().All(&invites)
if err != nil && err != RecordNotFound { if err != nil && err != RecordNotFound {
logger.Error("err:", err) logger.Error("err:", err)
return resp, err return resp, err
} }
if len(invites) == 0 { //if len(invites) == 0 {
return resp, nil // return resp, nil
} //}
uids := make([]uint32, 0) uids := make([]uint32, 0)
inviteMap := make(map[uint32]UserInvite, 0) //inviteMap := make(map[uint32]UserInvite, 0)
for i, _ := range invites { for i, _ := range invites {
uids = append(uids, invites[i].ToUid) uids = append(uids, invites[i].ToUid)
inviteMap[invites[i].ToUid] = invites[i] //inviteMap[invites[i].ToUid] = invites[i]
if invites[i].MemberStatus != 1 {
invites[i].CreatedAt = invites[i].MemberOpenTime
}
}
if len(uids) == 0 {
return resp, nil
} }
err = NewUserQuerySet(DB).UidIn(uids...).All(&list) err = NewUserQuerySet(DB).UidIn(uids...).All(&list)
if err != nil { if err != nil {
@ -611,22 +618,27 @@ func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
for i, _ := range list { for i, _ := range list {
userMap[list[i].Uid] = list[i] userMap[list[i].Uid] = list[i]
} }
//users := make([]User, 0) for i, _ := range invites {
users := make([]UserInviteList, 0)
for i, _ := range uids {
user, ok1 := userMap[uids[i]] user, ok1 := userMap[uids[i]]
invite, ok2 := inviteMap[uids[i]] if ok1 {
if !ok1 || !ok2 { invites[i].ToUser = &user
continue
} }
userInvite := UserInviteList{
User: user,
UserInvite: invite,
}
users = append(users, userInvite)
} }
resp.List = users //users := make([]User, 0)
//users := make([]UserInviteList, 0)
//for i, _ := range uids {
// user, ok1 := userMap[uids[i]]
// invite, ok2 := inviteMap[uids[i]]
// if !ok1 || !ok2 {
// continue
// }
// userInvite := UserInviteList{
// User: user,
// UserInvite: invite,
// }
// users = append(users, userInvite)
//}
resp.List = invites
return resp, nil return resp, nil
} }
@ -1003,28 +1015,28 @@ func (u *User) SetVm() error {
} }
func UserInviteListSetToUser(list []UserInvite) { func UserInviteListSetToUser(list []UserInvite) {
ids := make([]uint32, 0, len(list)) //ids := make([]uint32, 0, len(list))
for i, _ := range list { //for i, _ := range list {
ids = append(ids, list[i].ToUid) // ids = append(ids, list[i].ToUid)
} //}
//
//userMap, err := GetUserMap(ids)
//if err != nil {
// logger.Error("user map err:", err)
// return
//}
userMap, err := GetUserMap(ids) //for i, _ := range list {
if err != nil { // v, ok := userMap[list[i].ToUid]
logger.Error("user map err:", err) // if ok {
return //
} // list[i].ToUser = &UserLess{
// Uid: v.Uid,
for i, _ := range list { // MemberOpenTime: v.OpenMemberTime,
v, ok := userMap[list[i].ToUid] // MemberLevel: v.MemberLevel,
if ok { // }
// }
list[i].ToUser = &UserLess{ //}
Uid: v.Uid,
MemberOpenTime: v.OpenMemberTime,
MemberLevel: v.MemberLevel,
}
}
}
} }
// gen:qs // gen:qs