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)
user.StoreId = inviteUser.StoreId
if inviteUser.UserType == 2 {
//user.UserType = model.UserTypeConsumer
if user.StoreId == 0 {
_, err = model.NewUserQuerySet(model.DB).UidEq(user.Uid).GetUpdater().SetStoreId(inviteUser.StoreId).
UpdateNum()
if err != nil {
logger.Error(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
logger.Error("update err:", err)
}
}
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 {
user = model.User{
@ -121,20 +159,53 @@ func AuthLogin(c *gin.Context) {
var eg errgroup.Group
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.UserType = model.UserTypeConsumer
user.CooperativeBusinessId = inviteUser.CooperativeBusinessId
user.CooperativeName = inviteUser.CooperativeName
invite := &model.UserInvite{
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberType: model.MemberTypeConsumer,
ToUid: user.Uid,
MemberStatus: 1,
FromUid: req.InviteUid,
UserType: inviteUser.UserType,
StoreId: inviteUser.StoreId,
MemberType: model.MemberTypeConsumer,
ToUid: user.Uid,
MemberStatus: 1,
Action: 1,
SpendType: 1,
UserInviteRecordId: inviteRecord.ID,
Scan: 1,
}
eg.Go(func() error {
if err := invite.Create(model.DB); err != nil {

View File

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

View File

@ -475,7 +475,6 @@ func PushWXPayNotice(c *gin.Context) {
} else {
memberRecord.Type = model.GetUserMemberRecordType(record.MemberLevel, 2)
}
_, err = userUpdateQs.UpdateNum()
if err != nil {
logger.Error("err:", err)
@ -505,6 +504,8 @@ func PushWXPayNotice(c *gin.Context) {
ToUid: record.Uid,
MemberStatus: 2,
MemberLevel: record.MemberLevel,
Action: 1,
SpendType: 1,
}
err := userInvite.Create(model.DB)
if err != nil {
@ -514,17 +515,71 @@ func PushWXPayNotice(c *gin.Context) {
if err != nil {
logger.Error("send user vm err:", err)
}
} else {
qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
if user.MemberLevel != 2 {
qs = qs.SetMemberOpenTime(newTime).SetMemberLevel(record.MemberLevel)
}
if err == nil {
spendType := uint32(2)
if !user.OpenMemberTime.IsZero() {
spendType = 3
}
num, err := qs.SetMemberType(2).SetMemberStatus(2).UpdateNum()
if err != nil {
logger.Error("err:", err)
}
if num == 0 {
logger.Error("更新错误")
//qs := model.NewUserInviteQuerySet(model.DB).ToUidEq(record.Uid).GetUpdater()
if invite.Action != 2 {
qs := model.NewUserInviteQuerySet(model.DB).IDEq(invite.ID).GetUpdater()
if user.MemberLevel != 2 {
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 {

View File

@ -391,12 +391,18 @@ func UpgradeMember(c *gin.Context) {
if deductionTime > 0 {
deductionDays = deductionTime / int64(24*3600)
}
memberYare := deductionDays/365 + 1
memberYare := 0
memberMendFee := int64(0)
// 抵扣金
deductionFee := (((int64(memberFee) * deductionDays) / 365) / 100) * 100
// 补会员费
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
if deductionDays < 365 {
memberYare = 1
// 补会员费
memberMendFee = int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
} else {
// 补会员费
memberMendFee = int64((int64(memberConfig.MemberFee)*deductionDays)/365) - deductionFee
}
totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 {
@ -419,6 +425,7 @@ func UpgradeMember(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
return
}
totalFee = (totalFee / 100) * 100
if user.IsMember() && req.UserCouponId != 0 {
var coupon model.UserCoupon
@ -465,7 +472,12 @@ func UpgradeMember(c *gin.Context) {
// return
//}
//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()
err = model.UserOpenMemberRecord{Uid: uc.Uid, OpenNo: orderSn,
MemberLevel: req.MemberLevel, OrderType: 9, MemberExpire: memberExpire,
@ -565,12 +577,25 @@ func UpgradeMemberInfo(c *gin.Context) {
if deductionTime > 0 {
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
// 补会员费
memberMendFee := int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
if deductionDays < 365 {
memberYare = 1
// 补会员费
memberMendFee = int64(memberConfig.MemberFee*uint32(memberYare)) - deductionFee
} else {
// 补会员费
memberMendFee = int64((int64(memberConfig.MemberFee)*deductionDays)/365) - deductionFee
}
totalFee := int64(depositMendFee) + memberMendFee
//if memberMendFee < 0 {
@ -583,6 +608,7 @@ func UpgradeMemberInfo(c *gin.Context) {
RespJson(c, status.InternalServerError, nil)
return
}
totalFee = (totalFee / 100) * 100
//fmt.Println("MemberLevel:", req.MemberLevel)
//fmt.Println("UserCouponId:", req.UserCouponId)
//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
}
// 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
// nolint: dupl
func (qs UserInviteQuerySet) All(ret *[]UserInvite) error {
@ -7387,6 +7443,12 @@ func (qs UserInviteQuerySet) One(ret *UserInvite) 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
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByCreatedAt() UserInviteQuerySet {
@ -7435,6 +7497,12 @@ func (qs UserInviteQuerySet) OrderAscByMemberType() UserInviteQuerySet {
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
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByStoreId() UserInviteQuerySet {
@ -7459,12 +7527,24 @@ func (qs UserInviteQuerySet) OrderAscByUpdatedAt() UserInviteQuerySet {
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
// nolint: dupl
func (qs UserInviteQuerySet) OrderAscByUserType() UserInviteQuerySet {
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
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByCreatedAt() UserInviteQuerySet {
@ -7513,6 +7593,12 @@ func (qs UserInviteQuerySet) OrderDescByMemberType() UserInviteQuerySet {
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
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByStoreId() UserInviteQuerySet {
@ -7537,6 +7623,12 @@ func (qs UserInviteQuerySet) OrderDescByUpdatedAt() UserInviteQuerySet {
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
// nolint: dupl
func (qs UserInviteQuerySet) OrderDescByUserType() UserInviteQuerySet {
@ -7549,6 +7641,62 @@ func (qs UserInviteQuerySet) PreloadToUser() UserInviteQuerySet {
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
// nolint: dupl
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))
}
// 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
// nolint: dupl
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))
}
// 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
// nolint: dupl
func (u UserInviteUpdater) SetCreatedAt(createdAt time.Time) UserInviteUpdater {
@ -7877,6 +8088,13 @@ func (u UserInviteUpdater) SetMemberType(memberType uint32) UserInviteUpdater {
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
// nolint: dupl
func (u UserInviteUpdater) SetStoreId(storeId uint64) UserInviteUpdater {
@ -7905,6 +8123,13 @@ func (u UserInviteUpdater) SetUpdatedAt(updatedAt time.Time) UserInviteUpdater {
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
// nolint: dupl
func (u UserInviteUpdater) SetUserType(userType uint32) UserInviteUpdater {
@ -7940,56 +8165,65 @@ func (f UserInviteDBSchemaField) String() string {
// UserInviteDBSchema stores db field names of UserInvite
var UserInviteDBSchema = struct {
ID UserInviteDBSchemaField
CreatedAt UserInviteDBSchemaField
UpdatedAt UserInviteDBSchemaField
DeletedAt UserInviteDBSchemaField
FromUid UserInviteDBSchemaField
UserType UserInviteDBSchemaField
StoreId UserInviteDBSchemaField
MemberOpenTime UserInviteDBSchemaField
MemberType UserInviteDBSchemaField
MemberStatus UserInviteDBSchemaField
ToUid UserInviteDBSchemaField
StoreType UserInviteDBSchemaField
MemberLevel UserInviteDBSchemaField
ToUser UserInviteDBSchemaField
ID UserInviteDBSchemaField
CreatedAt UserInviteDBSchemaField
UpdatedAt UserInviteDBSchemaField
DeletedAt UserInviteDBSchemaField
FromUid UserInviteDBSchemaField
UserType UserInviteDBSchemaField
StoreId UserInviteDBSchemaField
MemberOpenTime UserInviteDBSchemaField
MemberType UserInviteDBSchemaField
MemberStatus UserInviteDBSchemaField
ToUid UserInviteDBSchemaField
StoreType UserInviteDBSchemaField
Action UserInviteDBSchemaField
SpendType UserInviteDBSchemaField
MemberLevel UserInviteDBSchemaField
UserInviteRecordId UserInviteDBSchemaField
ToUser UserInviteDBSchemaField
}{
ID: UserInviteDBSchemaField("id"),
CreatedAt: UserInviteDBSchemaField("created_at"),
UpdatedAt: UserInviteDBSchemaField("updated_at"),
DeletedAt: UserInviteDBSchemaField("deleted_at"),
FromUid: UserInviteDBSchemaField("from_uid"),
UserType: UserInviteDBSchemaField("user_type"),
StoreId: UserInviteDBSchemaField("store_id"),
MemberOpenTime: UserInviteDBSchemaField("member_open_time"),
MemberType: UserInviteDBSchemaField("member_type"),
MemberStatus: UserInviteDBSchemaField("member_status"),
ToUid: UserInviteDBSchemaField("to_uid"),
StoreType: UserInviteDBSchemaField("store_type"),
MemberLevel: UserInviteDBSchemaField("member_level"),
ToUser: UserInviteDBSchemaField("to_user"),
ID: UserInviteDBSchemaField("id"),
CreatedAt: UserInviteDBSchemaField("created_at"),
UpdatedAt: UserInviteDBSchemaField("updated_at"),
DeletedAt: UserInviteDBSchemaField("deleted_at"),
FromUid: UserInviteDBSchemaField("from_uid"),
UserType: UserInviteDBSchemaField("user_type"),
StoreId: UserInviteDBSchemaField("store_id"),
MemberOpenTime: UserInviteDBSchemaField("member_open_time"),
MemberType: UserInviteDBSchemaField("member_type"),
MemberStatus: UserInviteDBSchemaField("member_status"),
ToUid: UserInviteDBSchemaField("to_uid"),
StoreType: UserInviteDBSchemaField("store_type"),
Action: UserInviteDBSchemaField("action"),
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
// nolint: dupl
func (o *UserInvite) Update(db *gorm.DB, fields ...UserInviteDBSchemaField) error {
dbNameToFieldName := map[string]interface{}{
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"from_uid": o.FromUid,
"user_type": o.UserType,
"store_id": o.StoreId,
"member_open_time": o.MemberOpenTime,
"member_type": o.MemberType,
"member_status": o.MemberStatus,
"to_uid": o.ToUid,
"store_type": o.StoreType,
"member_level": o.MemberLevel,
"to_user": o.ToUser,
"id": o.ID,
"created_at": o.CreatedAt,
"updated_at": o.UpdatedAt,
"deleted_at": o.DeletedAt,
"from_uid": o.FromUid,
"user_type": o.UserType,
"store_id": o.StoreId,
"member_open_time": o.MemberOpenTime,
"member_type": o.MemberType,
"member_status": o.MemberStatus,
"to_uid": o.ToUid,
"store_type": o.StoreType,
"action": o.Action,
"spend_type": o.SpendType,
"member_level": o.MemberLevel,
"user_invite_record_id": o.UserInviteRecordId,
"to_user": o.ToUser,
}
u := map[string]interface{}{}
for _, f := range fields {

View File

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

View File

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

View File

@ -1,7 +1,9 @@
package model
import "time"
// 邀请关系
//go:generate goqueryset -in user_invite_level.go
//go:generate goqueryset -in invite.go
// gen:qs
type UserInviteLevel struct {
Model
@ -19,6 +21,13 @@ type UserInviteLevel struct {
type UserInviteRecord struct {
Model
ToUid uint32 `json:"to_uid"` // 用户ID
FromUid uint32 `json:"from_uid"` // 邀请人ID
ToUid uint32 `json:"to_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{},
//&CooperativeMemberPromotionDay{},
&CooperativeMemberDeduct{},
&CooperativeAssistantMemberDeduct{},
&CooperativeMemberPromotion{},
//&CooperativeMemberDeduct{},
//&CooperativeAssistantMemberDeduct{},
//&CooperativeMemberPromotion{},
//&CooperativeMemberPromotionStore{},
//&CooperativeMemberPromotionDay{},
//&CooperativeMemberPromotionStoreDay{},
//&CooperativeDeductSettle{},
&UserInvite{},
&UserInviteRecord{},
&CooperativeMemberPromotionStore{},
&CooperativeMemberPromotionDay{},
&CooperativeMemberPromotionStoreDay{},
&CooperativeDeductSettle{},
)
fmt.Println("DB init success")
@ -258,6 +261,10 @@ func InitDBProd() {
//&HomeCarousel{},
//&UserRenewalLog{},
&GameCard{},
&CooperativeMemberPromotion{},
&CooperativeMemberPromotionStore{},
&CooperativeMemberPromotionDay{},
&CooperativeMemberPromotionStoreDay{},
)
if err := DBProd.DB().Ping(); err != nil {
@ -772,28 +779,28 @@ func TestMemberUserList(t *testing.T) {
}
func MemberUserList() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).MemberLevelNe(2).OrderAscByID().All(&users)
//err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users)
if err != nil {
fmt.Println("users err:", err)
return
}
endTime, _ := time.Parse("2006-01-02", "2022-02-13")
startTime, _ := time.Parse("2006-01-02", "2021-07-30")
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()
if err != nil {
fmt.Println("err:", err)
}
if count == 0 {
fmt.Println("user :", user.Uid)
}
}
//InitDBProd()
//var users []User
//err := NewUserQuerySet(DBProd).MemberLevelEq(2).OrderAscByID().All(&users)
////err := NewUserQuerySet(DBProd).MemberLevelNe(2).OrderAscByID().All(&users)
////err := NewUserQuerySet(DBProd).StoreTypeEq(1).OrderAscByID().All(&users)
//if err != nil {
// fmt.Println("users err:", err)
// return
//}
//endTime, _ := time.Parse("2006-01-02", "2022-02-13")
//startTime, _ := time.Parse("2006-01-02", "2021-07-30")
//
//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()
// if err != nil {
// fmt.Println("err:", err)
// }
// if count == 0 {
// fmt.Println("user :", user.Uid)
// }
//}
}
@ -802,34 +809,34 @@ func TestOpenMemberTimeUserList(t *testing.T) {
}
func OpenMemberTimeUserList() {
InitDBProd()
var users []User
err := NewUserQuerySet(DBProd).MemberLevelEq(2).All(&users)
if err != nil {
fmt.Println("err:", err)
}
userMap := make(map[uint32]User, 0)
for i, _ := range users {
userMap[users[i].Uid] = users[i]
}
var userInvites []UserInvite
err = NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil {
fmt.Println("err:", err)
}
for i, _ := range userInvites {
user, ok := userMap[userInvites[i].ToUid]
if ok {
if user.OpenMemberTime.IsZero() {
fmt.Println("", user.OpenMemberTime, user.Uid, user.MemberLevel)
fmt.Println("", userInvites[i].MemberOpenTime, userInvites[i].MemberType, userInvites[i].ToUid)
}
}
}
//InitDBProd()
//var users []User
//err := NewUserQuerySet(DBProd).MemberLevelEq(2).All(&users)
//if err != nil {
// fmt.Println("err:", err)
//}
//userMap := make(map[uint32]User, 0)
//for i, _ := range users {
// userMap[users[i].Uid] = users[i]
//}
//
//var userInvites []UserInvite
//err = NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
//if err != nil {
// fmt.Println("err:", err)
//}
//
//for i, _ := range userInvites {
// user, ok := userMap[userInvites[i].ToUid]
// if ok {
// if user.OpenMemberTime.IsZero() {
// fmt.Println("", user.OpenMemberTime, user.Uid, user.MemberLevel)
// fmt.Println("", userInvites[i].MemberOpenTime, userInvites[i].MemberType, userInvites[i].ToUid)
//
// }
// }
//
//}
}
@ -882,29 +889,29 @@ func TestSyncUserOpenMemberTime(t *testing.T) {
}
func SyncUserOpenMemberTime() {
InitDBProd()
var userInvites []UserInvite
err := NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
if err != nil {
logger.Error("err:", err)
}
count := 0
for _, userInvite := range userInvites {
fmt.Println("user:", userInvite.MemberLevel, userInvite.MemberOpenTime)
//err = NewUserInviteQuerySet(DBProd).IDEq(userInvite.ID).GetUpdater().SetMemberLevel(2).Update()
//if err != nil {
// logger.Error("err:", err)
//}
err = NewUserQuerySet(DBProd).UidEq(userInvite.ToUid).GetUpdater().
SetOpenMemberTime(userInvite.MemberOpenTime).Update()
if err != nil {
logger.Error("err:", err)
}
count++
}
fmt.Println("count:", count)
//InitDBProd()
//var userInvites []UserInvite
//err := NewUserInviteQuerySet(DBProd).MemberTypeEq(2).All(&userInvites)
//if err != nil {
// logger.Error("err:", err)
//}
//count := 0
//for _, userInvite := range userInvites {
// fmt.Println("user:", userInvite.MemberLevel, userInvite.MemberOpenTime)
// //err = NewUserInviteQuerySet(DBProd).IDEq(userInvite.ID).GetUpdater().SetMemberLevel(2).Update()
// //if err != nil {
// // logger.Error("err:", err)
// //}
//
// err = NewUserQuerySet(DBProd).UidEq(userInvite.ToUid).GetUpdater().
// SetOpenMemberTime(userInvite.MemberOpenTime).Update()
// if err != nil {
// logger.Error("err:", err)
// }
// count++
//}
//
//fmt.Println("count:", count)
}
func TestSyncUserOrder(t *testing.T) {

View File

@ -87,16 +87,23 @@ const (
type UserInvite struct {
Model
FromUid uint32 `json:"from_uid"` // 邀请用户id
UserType uint32 `json:"user_type"` // 用户类型
StoreId uint64 `json:"store_id"` // 门店id
MemberOpenTime time.Time `json:"member_open_time"` // 开通会员
MemberType uint32 `json:"member_type"` // 被邀请用户 1-普通用户 2-会员
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
ToUid uint32 `json:"to_uid"` // 被邀请用户
StoreType uint32 `json:"store_type"` // 门店类型
MemberLevel uint32 `json:"member_level"` // 会员等级
ToUser *UserLess `json:"to_user"` //
FromUid uint32 `json:"from_uid"` // 邀请用户id
UserType uint32 `json:"user_type"` // 用户类型 1-普通用户
StoreId uint64 `json:"store_id"` // 门店id
MemberOpenTime time.Time `json:"member_open_time"` // 开通会员
MemberType uint32 `json:"member_type"` // 被邀请用户 1-普通用户 2-会员
MemberStatus uint8 `json:"member_status"` // 被邀请用户 1-未开通 2-已开通 3-已取消会员
ToUid uint32 `json:"to_uid"` // 被邀请用户
StoreType uint32 `json:"store_type"` // 门店类型 1-自有 2-合作商
Action uint32 `json:"action"` // 1-未激活 2-激活邀请
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 {
@ -128,13 +135,6 @@ type DepositRefundRecord struct {
}
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" // 会员费
FundTypeMemberDeposit = "member_deposit" // 押金
FundTypeExpressFee = "express_fee" // 邮费
@ -522,22 +522,23 @@ type UserInviteListReq struct {
}
type UserInviteListResp struct {
Page int `json:"page"`
TotalPage int `json:"total_page"`
List []UserInviteList `json:"list"`
Count int `json:"count"`
Page int `json:"page"`
TotalPage int `json:"total_page"`
//List []UserInviteList `json:"list"`
List []UserInvite `json:"list"`
Count int `json:"count"`
}
type UserInviteList struct {
User User `json:"user"`
UserInvite UserInvite `json:"user_invite"`
}
//type UserInviteList struct {
// User User `json:"user"`
// UserInvite UserInvite `json:"user_invite"`
//}
func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
list := make([]User, 0)
resp := &UserInviteListResp{
Page: m.Page,
List: make([]UserInviteList, 0),
List: make([]UserInvite, 0),
}
page := m.Page - 1
if page < 0 {
@ -587,19 +588,25 @@ func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
var invites []UserInvite
//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 {
logger.Error("err:", err)
return resp, err
}
if len(invites) == 0 {
return resp, nil
}
//if len(invites) == 0 {
// return resp, nil
//}
uids := make([]uint32, 0)
inviteMap := make(map[uint32]UserInvite, 0)
//inviteMap := make(map[uint32]UserInvite, 0)
for i, _ := range invites {
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)
if err != nil {
@ -611,22 +618,27 @@ func (m *UserInviteListReq) InviteUserList() (*UserInviteListResp, error) {
for i, _ := range list {
userMap[list[i].Uid] = list[i]
}
//users := make([]User, 0)
users := make([]UserInviteList, 0)
for i, _ := range uids {
for i, _ := range invites {
user, ok1 := userMap[uids[i]]
invite, ok2 := inviteMap[uids[i]]
if !ok1 || !ok2 {
continue
if ok1 {
invites[i].ToUser = &user
}
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
}
@ -1003,28 +1015,28 @@ func (u *User) SetVm() error {
}
func UserInviteListSetToUser(list []UserInvite) {
ids := make([]uint32, 0, len(list))
for i, _ := range list {
ids = append(ids, list[i].ToUid)
}
//ids := make([]uint32, 0, len(list))
//for i, _ := range list {
// ids = append(ids, list[i].ToUid)
//}
//
//userMap, err := GetUserMap(ids)
//if err != nil {
// logger.Error("user map err:", err)
// return
//}
userMap, err := GetUserMap(ids)
if err != nil {
logger.Error("user map err:", err)
return
}
for i, _ := range list {
v, ok := userMap[list[i].ToUid]
if ok {
list[i].ToUser = &UserLess{
Uid: v.Uid,
MemberOpenTime: v.OpenMemberTime,
MemberLevel: v.MemberLevel,
}
}
}
//for i, _ := range list {
// v, ok := userMap[list[i].ToUid]
// if ok {
//
// list[i].ToUser = &UserLess{
// Uid: v.Uid,
// MemberOpenTime: v.OpenMemberTime,
// MemberLevel: v.MemberLevel,
// }
// }
//}
}
// gen:qs