diff --git a/controller/game_card.go b/controller/game_card.go index c48803d..d37ee17 100644 --- a/controller/game_card.go +++ b/controller/game_card.go @@ -560,7 +560,7 @@ func PushWXPayNotice(c *gin.Context) { effectiveStoreInfo, err := model.GetUserEffectiveStore(invite.FromUid) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } if invite.Action == 1 { // 1-未激活 用户首次开通 @@ -589,9 +589,9 @@ func PushWXPayNotice(c *gin.Context) { } else { // 续费会员-用户直接续费 logger.Info("invite.Action == 2") inviteRecordNew := &model.UserInviteRecord{ - ToUid: invite.ToUid, - //FromUid: invite.FromUid, - //StoreId: effectiveStoreInfo.StoreID, + ToUid: invite.ToUid, + FromUid: invite.FromUid, + StoreId: effectiveStoreInfo.StoreID, Action: 2, SpendType: spendType, MemberLevel: record.MemberLevel, @@ -604,8 +604,8 @@ func PushWXPayNotice(c *gin.Context) { if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费 inviteRecordNew.Scan = 1 inviteRecordNew.RenewHide = 0 // 店员干预续费 - inviteRecordNew.FromUid = invite.FromUid - inviteRecordNew.StoreId = effectiveStoreInfo.StoreID + //inviteRecordNew.FromUid = invite.FromUid + //inviteRecordNew.StoreId = effectiveStoreInfo.StoreID } err = model.DB.Create(inviteRecordNew).Error if err != nil { @@ -613,11 +613,10 @@ func PushWXPayNotice(c *gin.Context) { } userInviteNew := &model.UserInvite{ - //FromUid: invite.FromUid, - //UserType: invite.UserType, - //StoreId: effectiveStoreInfo.StoreID, - //MemberOpenTime: invite.MemberOpenTime, - //StoreType: invite.StoreType, + FromUid: invite.FromUid, + UserType: invite.UserType, + StoreId: effectiveStoreInfo.StoreID, + StoreType: invite.StoreType, MemberOpenTime: time.Now(), MemberType: 2, MemberStatus: 2, @@ -635,10 +634,10 @@ func PushWXPayNotice(c *gin.Context) { userInviteNew.Scan = 1 userInviteNew.RenewHide = 0 userInviteNew.InviteForm = 1 - userInviteNew.FromUid = invite.FromUid - userInviteNew.StoreId = effectiveStoreInfo.StoreID - userInviteNew.UserType = invite.UserType - userInviteNew.StoreType = invite.StoreType + //userInviteNew.FromUid = invite.FromUid + //userInviteNew.StoreId = effectiveStoreInfo.StoreID + //userInviteNew.UserType = invite.UserType + //userInviteNew.StoreType = invite.StoreType } err = model.DB.Create(userInviteNew).Error if err != nil { @@ -675,8 +674,8 @@ func PushWXPayNotice(c *gin.Context) { model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId, uint32(effectiveStoreInfo.StoreID), inviteUser.Uid, int(record.MemberLevel), int(record.MemberGenre)) - userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店 } + userQs = userQs.SetStoreId(effectiveStoreInfo.StoreID) // 更新用户门店:邀请人的有效门店 } _, 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) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } if invite.Action != 2 { @@ -994,6 +1020,21 @@ func PushWXPayNotice(c *gin.Context) { 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) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } // 统计用户升级的数量,方便前端展示 // 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费) @@ -1015,6 +1056,14 @@ func PushWXPayNotice(c *gin.Context) { if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券) model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, 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优惠券续费) model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, 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) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } if invite.Action == 1 { // 首次开通会员 @@ -1558,9 +1607,9 @@ func HmPushWXPayNotice(c *gin.Context) { } } else { // 续费会员-用户直接续费 inviteRecordNew := &model.UserInviteRecord{ - ToUid: invite.ToUid, - //FromUid: invite.FromUid, - //StoreId: effectiveStoreInfo.StoreID, + ToUid: invite.ToUid, + FromUid: invite.FromUid, + StoreId: effectiveStoreInfo.StoreID, Action: 2, SpendType: spendType, MemberLevel: record.MemberLevel, @@ -1573,8 +1622,8 @@ func HmPushWXPayNotice(c *gin.Context) { if isShopAssistantCode { // 如果使用了优惠券,则是店员邀请续费;否则是用户自己发起续费 inviteRecordNew.Scan = 1 inviteRecordNew.RenewHide = 0 // 店员干预续费 - inviteRecordNew.FromUid = invite.FromUid - inviteRecordNew.StoreId = effectiveStoreInfo.StoreID + //inviteRecordNew.FromUid = invite.FromUid + //inviteRecordNew.StoreId = effectiveStoreInfo.StoreID } err = model.DB.Create(inviteRecordNew).Error if err != nil { @@ -1582,10 +1631,10 @@ func HmPushWXPayNotice(c *gin.Context) { } userInviteNew := &model.UserInvite{ - //FromUid: invite.FromUid, - //UserType: invite.UserType, - //StoreId: effectiveStoreInfo.StoreID, - //StoreType: invite.StoreType, + FromUid: invite.FromUid, + UserType: invite.UserType, + StoreId: effectiveStoreInfo.StoreID, + StoreType: invite.StoreType, MemberOpenTime: time.Now(), MemberType: 2, MemberStatus: 2, @@ -1604,10 +1653,10 @@ func HmPushWXPayNotice(c *gin.Context) { userInviteNew.Scan = 1 userInviteNew.RenewHide = 0 userInviteNew.InviteForm = 1 - userInviteNew.FromUid = invite.FromUid - userInviteNew.StoreId = effectiveStoreInfo.StoreID - userInviteNew.UserType = invite.UserType - userInviteNew.StoreType = invite.StoreType + //userInviteNew.FromUid = invite.FromUid + //userInviteNew.StoreId = effectiveStoreInfo.StoreID + //userInviteNew.UserType = invite.UserType + //userInviteNew.StoreType = invite.StoreType } err = model.DB.Create(userInviteNew).Error if err != nil { @@ -1647,8 +1696,8 @@ func HmPushWXPayNotice(c *gin.Context) { fmt.Println("用户开通------") model.AddCooperativeMemberPromotion(inviteUser.CooperativeBusinessId, 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") @@ -1661,6 +1710,33 @@ func HmPushWXPayNotice(c *gin.Context) { 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) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } if invite.Action != 2 { @@ -1971,6 +2047,21 @@ func HmPushWXPayNotice(c *gin.Context) { 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) if err != nil { logger.Error("GetUserEffectiveStore err:", err) - effectiveStoreInfo.StoreID = invite.StoreId + effectiveStoreInfo.StoreID = 0 } // 统计用户升级的数量,方便前端展示 // 分3种情况:1-店员干预(使用了店员兑换码兑换的优惠券)、2-自动续费(开通会员时有店员邀请,原价or优惠券续费) // 3-自动续费(自己开通会员,原价or优惠券续费) 目前只有1算店员提成,正常1和2都会算;3不算提成 + fmt.Println("isShopAssistantCode:", isShopAssistantCode) if isShopAssistantCode { // 1-店员干预(使用了店员兑换码兑换的优惠券) model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, 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优惠券续费) model.AddCooperativeMemberUpgrade(user.CooperativeBusinessId, uint32(effectiveStoreInfo.StoreID), invite.FromUid, user.MemberLevel, int(record.MemberLevel), true) diff --git a/model/cooperative_business.go b/model/cooperative_business.go index d7eb8c4..dde9d65 100644 --- a/model/cooperative_business.go +++ b/model/cooperative_business.go @@ -189,10 +189,10 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32, logger.Error("cooperative business err:", err) return } - //fmt.Println("cooperativeId:", cooperativeId) - //fmt.Println("storeId:", storeId) - //fmt.Println("assistantUid:", assistantUid) - //fmt.Println("memberLevel:", memberLevel) + fmt.Println("cooperativeId:", cooperativeId) + fmt.Println("storeId:", storeId) + fmt.Println("assistantUid:", assistantUid) + fmt.Println("memberLevel:", memberLevel) go func() { promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} @@ -210,13 +210,6 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32, return } - err = promotionStore.AddPromotion(begin, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return - } - err = promotionDay.AddPromotion(begin, memberLevel) if err != nil { begin.Rollback() @@ -224,19 +217,31 @@ func AddCooperativeMemberPromotion(cooperativeId, storeId, assistantUid uint32, return } - err = promotionStoreDay.AddPromotion(begin, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if storeId != 0 { + err = promotionStore.AddPromotion(begin, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } + + err = promotionStoreDay.AddPromotion(begin, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } - err = inviteReport.AddPromotion(begin, memberLevel, memberGenre) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if assistantUid != 0 { + err = inviteReport.AddPromotion(begin, memberLevel, memberGenre) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } + err = begin.Commit().Error if err != nil { begin.Rollback() @@ -529,10 +534,11 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me logger.Error("cooperative business err:", err) return } - //fmt.Println("cooperativeId:", cooperativeId) - //fmt.Println("storeId:", storeId) - //fmt.Println("assistantUid:", assistantUid) - //fmt.Println("memberLevel:", memberLevel) + fmt.Println("cooperativeId:", cooperativeId) + fmt.Println("storeId:", storeId) + fmt.Println("assistantUid:", assistantUid) + fmt.Println("memberLevel:", memberLevel) + fmt.Println("autoRenewFlag:", autoRenewFlag) go func() { promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} @@ -550,13 +556,6 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me return } - err = promotionStore.AddRenewal(begin, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return - } - err = promotionDay.AddRenewal(begin, memberLevel) if err != nil { begin.Rollback() @@ -564,23 +563,35 @@ func AddCooperativeMemberRenewal(cooperativeId, storeId, assistantUid uint32, me return } - err = promotionStoreDay.AddRenewal(begin, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if storeId != 0 { + err = promotionStore.AddRenewal(begin, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } + + err = promotionStoreDay.AddRenewal(begin, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } - if autoRenewFlag { // 自动续费 - err = inviteReport.AddRenewalAuto(begin, memberLevel, memberGenre) - } else { // 干预续费 - err = inviteReport.AddRenewalInvite(begin, memberLevel, memberGenre) - } - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if assistantUid != 0 { + if autoRenewFlag { // 自动续费 + err = inviteReport.AddRenewalAuto(begin, memberLevel, memberGenre) + } else { // 干预续费 + err = inviteReport.AddRenewalInvite(begin, memberLevel, memberGenre) + } + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } + err = begin.Commit().Error if err != nil { begin.Rollback() @@ -932,6 +943,11 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem logger.Error("cooperative business err:", err) return } + fmt.Println("cooperativeId:", cooperativeId) + fmt.Println("storeId:", storeId) + fmt.Println("assistantUid:", assistantUid) + fmt.Println("memberLevel:", memberLevel) + fmt.Println("autoFlag:", autoFlag) go func() { promotion := &CooperativeMemberPromotion{CooperativeBusinessId: cooperativeId, CooperativeName: cooperativeBusiness.Name} @@ -949,13 +965,6 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem return } - err = promotionStore.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return - } - err = promotionDay.AddUpgrade(begin, beforeMemberLevel, memberLevel) if err != nil { begin.Rollback() @@ -963,19 +972,31 @@ func AddCooperativeMemberUpgrade(cooperativeId, storeId, assistantUid, beforeMem return } - err = promotionStoreDay.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if storeId != 0 { + err = promotionStore.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } + + err = promotionStoreDay.AddUpgrade(begin, beforeMemberLevel, memberLevel, storeId) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } - err = inviteReport.AddUpgrade(begin, beforeMemberLevel, memberLevel, autoFlag) - if err != nil { - begin.Rollback() - logger.Error("promotion add promotion err:", err) - return + if assistantUid != 0 { + err = inviteReport.AddUpgrade(begin, beforeMemberLevel, memberLevel, autoFlag) + if err != nil { + begin.Rollback() + logger.Error("promotion add promotion err:", err) + return + } } + err = begin.Commit().Error if err != nil { begin.Rollback() @@ -1008,7 +1029,7 @@ func (m *CooperativeMemberPromotion) AddUpgrade(gdb *gorm.DB, beforeMemberLevel m.UpgradePlatinumToBlackCount = 1 } } - fmt.Println("邀请会员sql:", sql) + fmt.Println("CooperativeMemberPromotion AddUpgrade 邀请会员sql:", sql) exist, err := QueryRecordExist(fmt.Sprintf( "SELECT * FROM cooperative_member_promotion WHERE cooperative_business_id=%d AND date='%s' ", m.CooperativeBusinessId, dateString)) @@ -1109,6 +1130,7 @@ func (m *CooperativeMemberPromotionDay) AddUpgrade(gdb *gorm.DB, beforeMemberLev m.UpgradePlatinumToBlackCount = 1 } } + fmt.Println("CooperativeMemberPromotionDay AddUpgrade 邀请会员sql:", sql) exist, err := QueryRecordExist(fmt.Sprintf( "SELECT * FROM cooperative_member_promotion_day WHERE cooperative_business_id=%d AND day_time='%s'", 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( "SELECT * FROM invite_member_report WHERE cooperative_business_id=%d AND date='%s' AND uid=%d", m.CooperativeBusinessId, dateString, m.Uid)) diff --git a/model/user.go b/model/user.go index 14b56da..c474e93 100644 --- a/model/user.go +++ b/model/user.go @@ -264,19 +264,41 @@ const StoreDateTimeFormat = "2006.01.02" // GetUserEffectiveStore 获取店员当前的有效门店(邀请客户时使用) func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) { + if uid == 0 { + return &StoreInfo{}, nil + } + user := new(SysUser) if err := NewSysUserQuerySet(DB).UidEq(uid).One(user); err != nil { logger.Error("Error:", err, "UID:", uid) return nil, err } - // 解析门店数据 - if err := json.Unmarshal([]byte(user.StoreData), &user.StoreList); err != nil { - return nil, err - } + var userStores []StoreInfo + if user.RoleId == 1 { // 系统管理员 + var stores []Store + err := NewStoreQuerySet(DB).CooperativeBusinessIdEq(user.CooperativeBusinessId).All(&stores) + if err != nil { + return nil, err + } - if len(user.StoreList) == 0 { - return nil, errors.New("no stores found") + 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") + } } // 当前时间 @@ -284,7 +306,7 @@ func GetUserEffectiveStore(uid uint32) (*StoreInfo, error) { // 过滤掉过期的门店 validStores := make([]StoreInfo, 0) - for _, store := range user.StoreList { + for _, store := range userStores { expireTime, err := time.Parse(StoreDateTimeFormat, store.ExpireTime) if err != nil { logger.Error("Error parsing time:", err, "ExpireTime:", store.ExpireTime)