1、查询用户信息接口增加字段:member_discount_flag,用来让前端判断该用户能否享受会员优惠;

This commit is contained in:
chenlin 2024-10-25 10:41:04 +08:00
parent 80b776ec47
commit bbfda005cf

View File

@ -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{