diff --git a/app/admin/models/user.go b/app/admin/models/user.go index 971ee95..8a6d5ed 100644 --- a/app/admin/models/user.go +++ b/app/admin/models/user.go @@ -116,6 +116,7 @@ type UserInfo struct { Store *Store `json:"store" gorm:"-"` // OrderCards []OrderCard `json:"order_cards" gorm:"foreignKey:uid;references:uid"` // ForfeitPenalty int `json:"forfeit_penalty" gorm:"-"` // 滞纳金 + MemberDiscountFlag int `json:"member_discount_flag" gorm:"-"` // 会员优惠标志:0-不享受会员优惠,1-可享受会员优惠 //RenewalTime *time.Time `json:"renewal_time"` // //RenewalMemberLevel uint32 `json:"renewal_member_level"` // //MemberLevelString string `json:"member_level_string" gorm:"-"` // 会员类型 @@ -532,6 +533,13 @@ func GetNewUserList(req *NewUserListReq, c *gin.Context) (*NewUserListResp, erro validateZeroTime(&users[i].FirstRetailOrder) } + if req.Uid != 0 && len(users) == 1 { // 只有单个查询用户uid时,才判断是否能够享受会员优惠 add:2024-10-25 + memberDiscountFlag := canEnjoyMemberDiscount(req.Uid) + if memberDiscountFlag { + users[0].MemberDiscountFlag = 1 + } + } + if req.IsExport == 1 { exportFile, err := newUserListExport(users, c) if err != nil { @@ -546,6 +554,40 @@ func GetNewUserList(req *NewUserListReq, c *gin.Context) (*NewUserListResp, erro return resp, nil } +func canEnjoyMemberDiscount(uid int) bool { + // 查询user表 + userInfo := new(UserInfo) + err := orm.Eloquent.Table("user").Where("uid = ?", uid).Find(userInfo).Error + if err != nil { + logger.Error("查询 user 表时出错:", logger.Field("err", err)) + return false + } + + // 检查user表的member_level是否在黄金会员、短期会员、白金会员、黑金会员之间 + if userInfo.MemberLevel == MemberLevelGold || + userInfo.MemberLevel == MemberLevelPeriod || + userInfo.MemberLevel == MemberLevelPlatinum || + userInfo.MemberLevel == MemberLevelBlackGold { + return true + } + + // 查询privilege_member表 + privilegeInfo := new(PrivilegeMember) + err = orm.Eloquent.Table("privilege_member").Where("uid = ?", uid).Find(privilegeInfo).Error + if err != nil { + logger.Error("查询 privilege_member 表时出错:", logger.Field("err", err)) + return false + } + + // 检查privilege_member表的member_level是否为6 + if privilegeInfo.MemberLevel == MemberLevelPrivilege { + return true + } + + // 如果不满足条件,则返回false + return false +} + // GetUserListByForfeitPenalty 滞纳金排序 func GetUserListByForfeitPenalty(req *NewUserListReq) (*NewUserListResp, error) { resp := &NewUserListResp{