From bbfda005cf7e3eb7dd3ab885889e5c22aac1bb03 Mon Sep 17 00:00:00 2001 From: chenlin Date: Fri, 25 Oct 2024 10:41:04 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=9F=A5=E8=AF=A2=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=EF=BC=9Amember=5Fdiscount=5Fflag=EF=BC=8C=E7=94=A8?= =?UTF-8?q?=E6=9D=A5=E8=AE=A9=E5=89=8D=E7=AB=AF=E5=88=A4=E6=96=AD=E8=AF=A5?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=83=BD=E5=90=A6=E4=BA=AB=E5=8F=97=E4=BC=9A?= =?UTF-8?q?=E5=91=98=E4=BC=98=E6=83=A0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/models/user.go | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) 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{