1、取消屏蔽发放尊享会员优惠券逻辑;

2、会员兑换码记录列表接口增加"兑换码类型"入参;
3、增加尊享会员兑换码兑换流程;
This commit is contained in:
chenlin 2025-06-03 15:31:31 +08:00
parent 01ace1c5fa
commit eb5542339d
3 changed files with 66 additions and 25 deletions

View File

@ -289,7 +289,7 @@ func ErpOrderAudit(c *gin.Context) {
if req.State == 1 && (nPayStatus == model.HavePaid || erpOrder.RetailType == model.RetailTypeRejected) { // 已完成支付的零售订单判断是否发优惠券 if req.State == 1 && (nPayStatus == model.HavePaid || erpOrder.RetailType == model.RetailTypeRejected) { // 已完成支付的零售订单判断是否发优惠券
// 发放尊享会员优惠券 // 发放尊享会员优惠券
//model.UpdateSwitchUserCoupon(erpOrder.ID, erpOrder.Uid, erpOrder.RetailType) model.UpdateSwitchUserCoupon(erpOrder.ID, erpOrder.Uid, erpOrder.RetailType)
} }
app.OK(c, nil, "") app.OK(c, nil, "")

View File

@ -2603,7 +2603,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error)
if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券 if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券
// 发放尊享会员优惠券 // 发放尊享会员优惠券
//UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType)
} }
return resp, nil return resp, nil
@ -2713,7 +2713,7 @@ func QueryErpOrderPayStatus(billSn string) (*ErpOrderPayResp, error) {
if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券 if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券
// 发放尊享会员优惠券 // 发放尊享会员优惠券
//UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType)
} }
resp.Status = payStatus resp.Status = payStatus

View File

@ -16,10 +16,11 @@ const (
RedeemCodeStatusUsed = "used" // 已使用 RedeemCodeStatusUsed = "used" // 已使用
) )
const ( const (
CodeTypeMemberCard30 = "member-card-30" CodeTypeMemberCard30 = "member-card-30" // 30天租卡会员
CodeTypeMemberGoldMember = "member-card-gold-member" CodeTypeMemberGoldMember = "member-card-gold-member" // 黄金会员
CodeTypeMemberPlatinumMember = "member-card-platinum-member" CodeTypeMemberPlatinumMember = "member-card-platinum-member" // 白金会员
CodeTypeMemberBlackGoldMember = "member-card-black-gold-member" CodeTypeMemberBlackGoldMember = "member-card-black-gold-member" // 黑金会员
CodeTypeMemberPrivilegeMember = "member-card-privilege-member" // 尊享会员
) )
const ( const (
@ -95,8 +96,9 @@ func RedeemSecretCode(redeem string) string {
type RedeemCodeListReq struct { type RedeemCodeListReq struct {
PageIndex int `json:"pageIndex"` PageIndex int `json:"pageIndex"`
PageSize int `json:"pageSize"` PageSize int `json:"pageSize"`
Status string `json:"status" ` // user-hold used Status string `json:"status"` // user-hold used
SerialCode string `json:"serial_code" ` // 兑换编码 SerialCode string `json:"serial_code"` // 兑换编码
CodeType string `json:"code_type"` // 兑换码类型
} }
type RedeemCodeListResp struct { type RedeemCodeListResp struct {
List []RedeemCode `json:"list"` List []RedeemCode `json:"list"`
@ -117,6 +119,9 @@ func (m *RedeemCodeListReq) RedeemCodeStockList() (*RedeemCodeListResp, error) {
if m.SerialCode != "" { if m.SerialCode != "" {
qs = qs.Where("serial_code=?", m.SerialCode) qs = qs.Where("serial_code=?", m.SerialCode)
} }
if m.CodeType != "" {
qs = qs.Where("code_type=?", m.CodeType)
}
var count int64 var count int64
err := qs.Count(&count).Error err := qs.Count(&count).Error
@ -147,8 +152,9 @@ func (m *RedeemCodeListReq) RedeemCodeStockList() (*RedeemCodeListResp, error) {
type UserRedeemCodeListReq struct { type UserRedeemCodeListReq struct {
PageIndex int `json:"pageIndex"` PageIndex int `json:"pageIndex"`
PageSize int `json:"pageSize"` PageSize int `json:"pageSize"`
Status string `json:"status" ` // user-hold used Status string `json:"status"` // user-hold used
SerialCode string `json:"serial_code" ` // 兑换编码 SerialCode string `json:"serial_code"` // 兑换编码
CodeType string `json:"code_type"` // 兑换码类型
Uid int `json:"uid"` Uid int `json:"uid"`
ConvertStart string `json:"convert_start"` ConvertStart string `json:"convert_start"`
ConvertEnd string `json:"convert_end"` ConvertEnd string `json:"convert_end"`
@ -183,6 +189,9 @@ func (m *UserRedeemCodeListReq) UserSendRedeemCodeList() (*UserRedeemCodeListRes
if m.Uid != 0 { if m.Uid != 0 {
qs = qs.Where("uid=?", m.Uid) qs = qs.Where("uid=?", m.Uid)
} }
if m.CodeType != "" {
qs = qs.Where("code_type=?", m.CodeType)
}
if m.ConvertStart != "" { if m.ConvertStart != "" {
parse, err := time.Parse(DateTimeFormat, m.ConvertStart) parse, err := time.Parse(DateTimeFormat, m.ConvertStart)
@ -234,26 +243,58 @@ func CodeSendToUser(uid, storeId uint32, codeType string) error {
return err return err
} }
memberRedeemCode := int64(0) memberRedeemCode := int64(0)
err = orm.Eloquent.Table("user_redeem_code").Where("uid=?", uid).
Where("code_type in (?)", []string{CodeTypeMemberGoldMember, CodeTypeMemberPlatinumMember, if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员
CodeTypeMemberBlackGoldMember}).Count(&memberRedeemCode).Error err = orm.Eloquent.Table("user_redeem_code").Where("uid=?", uid).
Where("code_type = ?", CodeTypeMemberPrivilegeMember).Count(&memberRedeemCode).Error
} else { // 租卡会员
err = orm.Eloquent.Table("user_redeem_code").Where("uid=?", uid).
Where("code_type in (?)", []string{CodeTypeMemberGoldMember, CodeTypeMemberPlatinumMember,
CodeTypeMemberBlackGoldMember}).Count(&memberRedeemCode).Error
}
if err != nil { if err != nil {
logger.Errorf("err:", logger.Field("err", err)) logger.Errorf("err:", logger.Field("err", err))
return err return err
} }
if memberRedeemCode > 0 && codeType != CodeTypeMemberCard30 {
logger.Errorf("err:", logger.Field("err", err)) if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员
return errors.New("member_redeem_code_only") if memberRedeemCode > 0 {
logger.Errorf("err:", logger.Field("err", err))
return errors.New("member_redeem_code_only")
}
} else { // 租卡会员
if memberRedeemCode > 0 && codeType != CodeTypeMemberCard30 {
logger.Errorf("err:", logger.Field("err", err))
return errors.New("member_redeem_code_only")
}
} }
userInfo, err := GetUserInfoByUid(uid)
if err != nil { if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员
logger.Errorf("err:", logger.Field("err", err)) // 获取尊享会员信息
return err var privilegeUserInfo PrivilegeMember
} if err := orm.Eloquent.Table("privilege_member").Where("uid = ?", uid).Find(&privilegeUserInfo).Error; err != nil {
if userInfo.MemberLevel != 1 && userInfo.MemberLevel != 3 && codeType != CodeTypeMemberCard30 { logger.Errorf("获取尊享会员信息出错:", logger.Field("err", err))
logger.Errorf("user is member:") return err
return errors.New("user_is_member") }
if privilegeUserInfo.MemberLevel == 6 { // 已经是尊享会员
logger.Errorf("user is member:")
return errors.New("user_is_member")
}
} else { // 租卡会员
userInfo, err := GetUserInfoByUid(uid)
if err != nil {
logger.Errorf("err:", logger.Field("err", err))
return err
}
if userInfo.MemberLevel != 1 && userInfo.MemberLevel != 3 && codeType != CodeTypeMemberCard30 {
logger.Errorf("user is member:")
return errors.New("user_is_member")
}
} }
fmt.Println("CodeSendToUser uid:", uid) fmt.Println("CodeSendToUser uid:", uid)
_, err = IsUserInfoByUid(uid) _, err = IsUserInfoByUid(uid)
if err != nil { if err != nil {