1.优化会员邀请记录,自己开通会员,自己续费也需要进行记录;

This commit is contained in:
chenlin 2024-05-31 17:53:15 +08:00
parent 3c9cf29eca
commit fdc30f76d8
3 changed files with 251 additions and 106 deletions

View File

@ -560,7 +560,7 @@ func PushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
if invite.Action == 1 { // 1-未激活 用户首次开通 if invite.Action == 1 { // 1-未激活 用户首次开通
@ -590,8 +590,8 @@ func PushWXPayNotice(c *gin.Context) {
logger.Info("invite.Action == 2") logger.Info("invite.Action == 2")
inviteRecordNew := &model.UserInviteRecord{ inviteRecordNew := &model.UserInviteRecord{
ToUid: invite.ToUid, ToUid: invite.ToUid,
//FromUid: invite.FromUid, FromUid: invite.FromUid,
//StoreId: effectiveStoreInfo.StoreID, StoreId: effectiveStoreInfo.StoreID,
Action: 2, Action: 2,
SpendType: spendType, SpendType: spendType,
MemberLevel: record.MemberLevel, MemberLevel: record.MemberLevel,
@ -604,8 +604,8 @@ func PushWXPayNotice(c *gin.Context) {
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费 if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
inviteRecordNew.Scan = 1 inviteRecordNew.Scan = 1
inviteRecordNew.RenewHide = 0 // 店员干预续费 inviteRecordNew.RenewHide = 0 // 店员干预续费
inviteRecordNew.FromUid = invite.FromUid //inviteRecordNew.FromUid = invite.FromUid
inviteRecordNew.StoreId = effectiveStoreInfo.StoreID //inviteRecordNew.StoreId = effectiveStoreInfo.StoreID
} }
err = model.DB.Create(inviteRecordNew).Error err = model.DB.Create(inviteRecordNew).Error
if err != nil { if err != nil {
@ -613,11 +613,10 @@ func PushWXPayNotice(c *gin.Context) {
} }
userInviteNew := &model.UserInvite{ userInviteNew := &model.UserInvite{
//FromUid: invite.FromUid, FromUid: invite.FromUid,
//UserType: invite.UserType, UserType: invite.UserType,
//StoreId: effectiveStoreInfo.StoreID, StoreId: effectiveStoreInfo.StoreID,
//MemberOpenTime: invite.MemberOpenTime, StoreType: invite.StoreType,
//StoreType: invite.StoreType,
MemberOpenTime: time.Now(), MemberOpenTime: time.Now(),
MemberType: 2, MemberType: 2,
MemberStatus: 2, MemberStatus: 2,
@ -635,10 +634,10 @@ func PushWXPayNotice(c *gin.Context) {
userInviteNew.Scan = 1 userInviteNew.Scan = 1
userInviteNew.RenewHide = 0 userInviteNew.RenewHide = 0
userInviteNew.InviteForm = 1 userInviteNew.InviteForm = 1
userInviteNew.FromUid = invite.FromUid //userInviteNew.FromUid = invite.FromUid
userInviteNew.StoreId = effectiveStoreInfo.StoreID //userInviteNew.StoreId = effectiveStoreInfo.StoreID
userInviteNew.UserType = invite.UserType //userInviteNew.UserType = invite.UserType
userInviteNew.StoreType = invite.StoreType //userInviteNew.StoreType = invite.StoreType
} }
err = model.DB.Create(userInviteNew).Error err = model.DB.Create(userInviteNew).Error
if err != nil { if err != nil {
@ -675,8 +674,8 @@ func PushWXPayNotice(c *gin.Context) {
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId, model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel),
int(record.MemberGenre)) int(record.MemberGenre))
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
} }
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
} }
_, err = userQs.SetOpenMemberChannel(openMemberChannel).UpdateNum() _, err = userQs.SetOpenMemberChannel(openMemberChannel).UpdateNum()
@ -685,6 +684,33 @@ func PushWXPayNotice(c *gin.Context) {
} }
} }
} }
} else if err == model.RecordNotFound { // 没有邀请记录,完全是用户自己开通会员,自己续费;按产品要求也需要有记录
inviteRecordNew := &model.UserInviteRecord{
Action: 2,
SpendType: spendType,
MemberLevel: record.MemberLevel,
First: 0,
Scan: 0, // 自动生成
ActionTime: newTime,
MemberGenre: record.MemberGenre,
RenewHide: 1,
}
err = model.DB.Create(inviteRecordNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
// 记录对应的数量
switch spendType {
case 2: // 开通
fmt.Println("用户开通------")
model.AddCooperativeMemberPromotion(user.CooperativeBusinessId, 0, 0,
int(record.MemberLevel), int(record.MemberGenre))
case 3: // 续费
fmt.Println("用户续费---")
model.AddCooperativeMemberRenewal(user.CooperativeBusinessId, 0, 0,
int(record.MemberLevel), int(record.MemberGenre), true)
}
} }
} }
@ -919,7 +945,7 @@ func PushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
if invite.Action != 2 { if invite.Action != 2 {
@ -994,6 +1020,21 @@ func PushWXPayNotice(c *gin.Context) {
logger.Error("create invite record err:", err) logger.Error("create invite record err:", err)
} }
} }
} else if err == model.RecordNotFound { // 没有邀请记录,完全是用户自己开通会员,自己续费;按产品要求也需要有记录
inviteRecordNew := &model.UserInviteRecord{
Action: 2,
SpendType: 4,
MemberLevel: record.MemberLevel,
First: 0,
Scan: 0, // 自动生成
ActionTime: newTime,
MemberGenre: record.MemberGenre,
RenewHide: 1,
}
err = model.DB.Create(inviteRecordNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
} }
} }
@ -1007,7 +1048,7 @@ func PushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
// 统计用户升级的数量,方便前端展示 // 统计用户升级的数量,方便前端展示
// 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费 // 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费
@ -1015,6 +1056,14 @@ func PushWXPayNotice(c *gin.Context) {
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券) if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false) uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().
SetStoreId(effectiveStoreInfo.StoreID).UpdateNum() // 更新用户门店:邀请人的有效门店
if err != nil {
logger.Info("uid:", user.Uid)
logger.Info("store_id:", effectiveStoreInfo.StoreID)
logger.Error("MemberUpgrade update user store_id err:", err)
}
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费开通会员时有店员邀请原价or优惠券续费 } else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费开通会员时有店员邀请原价or优惠券续费
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true) uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)
@ -1530,7 +1579,7 @@ func HmPushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
if invite.Action == 1 { // 首次开通会员 if invite.Action == 1 { // 首次开通会员
@ -1559,8 +1608,8 @@ func HmPushWXPayNotice(c *gin.Context) {
} else { // 续费会员-用户直接续费 } else { // 续费会员-用户直接续费
inviteRecordNew := &model.UserInviteRecord{ inviteRecordNew := &model.UserInviteRecord{
ToUid: invite.ToUid, ToUid: invite.ToUid,
//FromUid: invite.FromUid, FromUid: invite.FromUid,
//StoreId: effectiveStoreInfo.StoreID, StoreId: effectiveStoreInfo.StoreID,
Action: 2, Action: 2,
SpendType: spendType, SpendType: spendType,
MemberLevel: record.MemberLevel, MemberLevel: record.MemberLevel,
@ -1573,8 +1622,8 @@ func HmPushWXPayNotice(c *gin.Context) {
if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费 if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费
inviteRecordNew.Scan = 1 inviteRecordNew.Scan = 1
inviteRecordNew.RenewHide = 0 // 店员干预续费 inviteRecordNew.RenewHide = 0 // 店员干预续费
inviteRecordNew.FromUid = invite.FromUid //inviteRecordNew.FromUid = invite.FromUid
inviteRecordNew.StoreId = effectiveStoreInfo.StoreID //inviteRecordNew.StoreId = effectiveStoreInfo.StoreID
} }
err = model.DB.Create(inviteRecordNew).Error err = model.DB.Create(inviteRecordNew).Error
if err != nil { if err != nil {
@ -1582,10 +1631,10 @@ func HmPushWXPayNotice(c *gin.Context) {
} }
userInviteNew := &model.UserInvite{ userInviteNew := &model.UserInvite{
//FromUid: invite.FromUid, FromUid: invite.FromUid,
//UserType: invite.UserType, UserType: invite.UserType,
//StoreId: effectiveStoreInfo.StoreID, StoreId: effectiveStoreInfo.StoreID,
//StoreType: invite.StoreType, StoreType: invite.StoreType,
MemberOpenTime: time.Now(), MemberOpenTime: time.Now(),
MemberType: 2, MemberType: 2,
MemberStatus: 2, MemberStatus: 2,
@ -1604,10 +1653,10 @@ func HmPushWXPayNotice(c *gin.Context) {
userInviteNew.Scan = 1 userInviteNew.Scan = 1
userInviteNew.RenewHide = 0 userInviteNew.RenewHide = 0
userInviteNew.InviteForm = 1 userInviteNew.InviteForm = 1
userInviteNew.FromUid = invite.FromUid //userInviteNew.FromUid = invite.FromUid
userInviteNew.StoreId = effectiveStoreInfo.StoreID //userInviteNew.StoreId = effectiveStoreInfo.StoreID
userInviteNew.UserType = invite.UserType //userInviteNew.UserType = invite.UserType
userInviteNew.StoreType = invite.StoreType //userInviteNew.StoreType = invite.StoreType
} }
err = model.DB.Create(userInviteNew).Error err = model.DB.Create(userInviteNew).Error
if err != nil { if err != nil {
@ -1647,8 +1696,8 @@ func HmPushWXPayNotice(c *gin.Context) {
fmt.Println("用户开通------") fmt.Println("用户开通------")
model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId, model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre)) uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre))
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
} }
userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店
} }
logger.Info("userQs UpdateNum start") logger.Info("userQs UpdateNum start")
@ -1661,6 +1710,33 @@ func HmPushWXPayNotice(c *gin.Context) {
fmt.Println("userQs UpdateNum end") fmt.Println("userQs UpdateNum end")
} }
} }
} else if err == model.RecordNotFound { // 没有邀请记录,完全是用户自己开通会员,自己续费;按产品要求也需要有记录
inviteRecordNew := &model.UserInviteRecord{
Action: 2,
SpendType: spendType,
MemberLevel: record.MemberLevel,
First: 0,
Scan: 0, // 自动生成
ActionTime: newTime,
MemberGenre: record.MemberGenre,
RenewHide: 1,
}
err = model.DB.Create(inviteRecordNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
// 记录对应的数量
switch spendType {
case 2: // 开通
fmt.Println("用户开通------")
model.AddCooperativeMemberPromotion(user.CooperativeBusinessId, 0, 0,
int(record.MemberLevel), int(record.MemberGenre))
case 3: // 续费
fmt.Println("用户续费---")
model.AddCooperativeMemberRenewal(user.CooperativeBusinessId, 0, 0,
int(record.MemberLevel), int(record.MemberGenre), true)
}
} }
} }
@ -1896,7 +1972,7 @@ func HmPushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
if invite.Action != 2 { if invite.Action != 2 {
@ -1971,6 +2047,21 @@ func HmPushWXPayNotice(c *gin.Context) {
logger.Error("create invite record err:", err) logger.Error("create invite record err:", err)
} }
} }
} else if err == model.RecordNotFound { // 没有邀请记录,完全是用户自己开通会员,自己续费;按产品要求也需要有记录
inviteRecordNew := &model.UserInviteRecord{
Action: 2,
SpendType: 4,
MemberLevel: record.MemberLevel,
First: 0,
Scan: 0, // 自动生成
ActionTime: newTime,
MemberGenre: record.MemberGenre,
RenewHide: 1,
}
err = model.DB.Create(inviteRecordNew).Error
if err != nil {
logger.Error("create invite record err:", err)
}
} }
} }
@ -1984,15 +2075,24 @@ func HmPushWXPayNotice(c *gin.Context) {
effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid)
if err != nil { if err != nil {
logger.Error("GetUserEffectiveStore err:", err) logger.Error("GetUserEffectiveStore err:", err)
effectiveStoreInfo.StoreID = invite.StoreId effectiveStoreInfo.StoreID = 0
} }
// 统计用户升级的数量,方便前端展示 // 统计用户升级的数量,方便前端展示
// 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费 // 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费
// 3-自动续费自己开通会员原价or优惠券续费 目前只有1算店员提成正常1和2都会算3不算提成 // 3-自动续费自己开通会员原价or优惠券续费 目前只有1算店员提成正常1和2都会算3不算提成
fmt.Println("isShopAssistantCode:", isShopAssistantCode)
if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券) if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券)
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false) uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), false)
_, err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).GetUpdater().
SetStoreId(effectiveStoreInfo.StoreID).UpdateNum() // 更新用户门店:邀请人的有效门店
if err != nil {
logger.Info("uid:", user.Uid)
logger.Info("store_id:", effectiveStoreInfo.StoreID)
logger.Error("MemberUpgrade update user store_id err:", err)
}
} else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费开通会员时有店员邀请原价or优惠券续费 } else if !isShopAssistantCode && err != model.RecordNotFound { // 2-自动续费开通会员时有店员邀请原价or优惠券续费
model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId,
uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true) uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true)

View File

@ -189,10 +189,10 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32,
logger.Error("cooperative business err:", err) logger.Error("cooperative business err:", err)
return return
} }
//fmt.Println("cooperativeId:", cooperativeId) fmt.Println("cooperativeId:", cooperativeId)
//fmt.Println("storeId:", storeId) fmt.Println("storeId:", storeId)
//fmt.Println("assistantUid:", assistantUid) fmt.Println("assistantUid:", assistantUid)
//fmt.Println("memberLevel:", memberLevel) fmt.Println("memberLevel:", memberLevel)
go func() { go func() {
promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
@ -210,14 +210,15 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32,
return return
} }
err = promotionStore.AddPromotion(begin, memberLevel, storeId) err = promotionDay.AddPromotion(begin, memberLevel)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
err = promotionDay.AddPromotion(begin, memberLevel) if storeId != 0 {
err = promotionStore.AddPromotion(begin, memberLevel, storeId)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
@ -230,13 +231,17 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32,
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
if assistantUid != 0 {
err = inviteReport.AddPromotion(begin, memberLevel, memberGenre) err = inviteReport.AddPromotion(begin, memberLevel, memberGenre)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
err = begin.Commit().Error err = begin.Commit().Error
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
@ -529,10 +534,11 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me
logger.Error("cooperative business err:", err) logger.Error("cooperative business err:", err)
return return
} }
//fmt.Println("cooperativeId:", cooperativeId) fmt.Println("cooperativeId:", cooperativeId)
//fmt.Println("storeId:", storeId) fmt.Println("storeId:", storeId)
//fmt.Println("assistantUid:", assistantUid) fmt.Println("assistantUid:", assistantUid)
//fmt.Println("memberLevel:", memberLevel) fmt.Println("memberLevel:", memberLevel)
fmt.Println("autoRenewFlag:", autoRenewFlag)
go func() { go func() {
promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
@ -550,14 +556,15 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me
return return
} }
err = promotionStore.AddRenewal(begin, memberLevel, storeId) err = promotionDay.AddRenewal(begin, memberLevel)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
err = promotionDay.AddRenewal(begin, memberLevel) if storeId != 0 {
err = promotionStore.AddRenewal(begin, memberLevel, storeId)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
@ -570,7 +577,9 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
if assistantUid != 0 {
if autoRenewFlag { // 自动续费 if autoRenewFlag { // 自动续费
err = inviteReport.AddRenewalAuto(begin, memberLevel, memberGenre) err = inviteReport.AddRenewalAuto(begin, memberLevel, memberGenre)
} else { // 干预续费 } else { // 干预续费
@ -581,6 +590,8 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
err = begin.Commit().Error err = begin.Commit().Error
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
@ -932,6 +943,11 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem
logger.Error("cooperative business err:", err) logger.Error("cooperative business err:", err)
return return
} }
fmt.Println("cooperativeId:", cooperativeId)
fmt.Println("storeId:", storeId)
fmt.Println("assistantUid:", assistantUid)
fmt.Println("memberLevel:", memberLevel)
fmt.Println("autoFlag:", autoFlag)
go func() { go func() {
promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name}
@ -949,14 +965,15 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem
return return
} }
err = promotionStore.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId) err = promotionDay.AddUpgrade(begin, beforeMemberLevel, memberLevel)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
err = promotionDay.AddUpgrade(begin, beforeMemberLevel, memberLevel) if storeId != 0 {
err = promotionStore.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
@ -969,13 +986,17 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
if assistantUid != 0 {
err = inviteReport.AddUpgrade(begin, beforeMemberLevel, memberLevel, autoFlag) err = inviteReport.AddUpgrade(begin, beforeMemberLevel, memberLevel, autoFlag)
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
logger.Error("promotion add promotion err:", err) logger.Error("promotion add promotion err:", err)
return return
} }
}
err = begin.Commit().Error err = begin.Commit().Error
if err != nil { if err != nil {
begin.Rollback() begin.Rollback()
@ -1008,7 +1029,7 @@ func (m *CooperativeMemberPromotion) AddUpgrade(gdb *gorm.DB, beforeMemberLevel
m.UpgradePlatinumToBlackCount = 1 m.UpgradePlatinumToBlackCount = 1
} }
} }
fmt.Println("邀请会员sql:", sql) fmt.Println("CooperativeMemberPromotion AddUpgrade 邀请会员sql:", sql)
exist, err := QueryRecordExist(fmt.Sprintf( exist, err := QueryRecordExist(fmt.Sprintf(
"SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s' ", "SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s' ",
m.CooperativeBusinessId, dateString)) m.CooperativeBusinessId, dateString))
@ -1109,6 +1130,7 @@ func (m *CooperativeMemberPromotionDay) AddUpgrade(gdb *gorm.DB, beforeMemberLev
m.UpgradePlatinumToBlackCount = 1 m.UpgradePlatinumToBlackCount = 1
} }
} }
fmt.Println("CooperativeMemberPromotionDay AddUpgrade 邀请会员sql:", sql)
exist, err := QueryRecordExist(fmt.Sprintf( exist, err := QueryRecordExist(fmt.Sprintf(
"SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'", "SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'",
m.CooperativeBusinessId, dayString)) m.CooperativeBusinessId, dayString))
@ -1243,6 +1265,7 @@ func (m *InviteMemberReport) AddUpgrade(gdb *gorm.DB, beforeMemberLevel uint32,
} }
} }
fmt.Println("InviteMemberReport AddUpgrade 邀请会员升级sql:", sql)
exist, err := QueryRecordExist(fmt.Sprintf( exist, err := QueryRecordExist(fmt.Sprintf(
"SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d", "SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d",
m.CooperativeBusinessId, dateString, m.Uid)) m.CooperativeBusinessId, dateString, m.Uid))

View File

@ -264,27 +264,49 @@ const StoreDateTimeFormat = "2006.01.02"
// GetUserEffectiveStore 获取店员当前的有效门店(邀请客户时使用) // GetUserEffectiveStore 获取店员当前的有效门店(邀请客户时使用)
func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) { func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) {
if uid == 0 {
return &StoreInfo{}, nil
}
user := new(SysUser) user := new(SysUser)
if err := NewSysUserQuerySet(DB).UidEq(uid).One(user); err != nil { if err := NewSysUserQuerySet(DB).UidEq(uid).One(user); err != nil {
logger.Error("Error:", err, "UID:", uid) logger.Error("Error:", err, "UID:", uid)
return nil, err return nil, err
} }
// 解析门店数据 var userStores []StoreInfo
if err := json.Unmarshal([]byte(user.StoreData), &user.StoreList); err != nil { if user.RoleId == 1 { // 系统管理员
var stores []Store
err := NewStoreQuerySet(DB).CooperativeBusinessIdEq(user.CooperativeBusinessId).All(&stores)
if err != nil {
return nil, err return nil, err
} }
if len(user.StoreList) == 0 { for _, item := range stores {
tempStore := StoreInfo{
StoreID: uint64(item.ID),
StoreName: item.Name,
ExpireTime: "2099.12.30",
}
userStores = append(userStores, tempStore)
}
} else { // 普通用户
// 解析门店数据
if err := json.Unmarshal([]byte(user.StoreData), &userStores); err != nil {
return nil, err
}
if len(userStores) == 0 {
return nil, errors.New("no stores found") return nil, errors.New("no stores found")
} }
}
// 当前时间 // 当前时间
now := time.Now() now := time.Now()
// 过滤掉过期的门店 // 过滤掉过期的门店
validStores := make([]StoreInfo, 0) validStores := make([]StoreInfo, 0)
for _, store := range user.StoreList { for _, store := range userStores {
expireTime, err := time.Parse(StoreDateTimeFormat, store.ExpireTime) expireTime, err := time.Parse(StoreDateTimeFormat, store.ExpireTime)
if err != nil { if err != nil {
logger.Error("Error parsing time:", err, "ExpireTime:", store.ExpireTime) logger.Error("Error parsing time:", err, "ExpireTime:", store.ExpireTime)