diff --git a/app/admin/apis/erpordermanage/erp_order.go b/app/admin/apis/erpordermanage/erp_order.go index 824c43c..d270390 100644 --- a/app/admin/apis/erpordermanage/erp_order.go +++ b/app/admin/apis/erpordermanage/erp_order.go @@ -289,7 +289,7 @@ func ErpOrderAudit(c *gin.Context) { 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, "") diff --git a/app/admin/models/erp_order.go b/app/admin/models/erp_order.go index 8c6b94e..2623d08 100644 --- a/app/admin/models/erp_order.go +++ b/app/admin/models/erp_order.go @@ -2603,7 +2603,7 @@ func ErpOrderPay(req *ErpOrderPayReq, c *gin.Context) (*ErpOrderPayResp, error) if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券 // 发放尊享会员优惠券 - //UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) + UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) } return resp, nil @@ -2713,7 +2713,7 @@ func QueryErpOrderPayStatus(billSn string) (*ErpOrderPayResp, error) { if payStatus == PayOk { // 已完成支付的订单判断是否发优惠券 // 发放尊享会员优惠券 - //UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) + UpdateSwitchUserCoupon(orderInfo.ID, orderInfo.Uid, orderInfo.RetailType) } resp.Status = payStatus diff --git a/app/admin/models/redeem_code.go b/app/admin/models/redeem_code.go index 72a194a..46d8d7f 100644 --- a/app/admin/models/redeem_code.go +++ b/app/admin/models/redeem_code.go @@ -16,10 +16,11 @@ const ( RedeemCodeStatusUsed = "used" // 已使用 ) const ( - CodeTypeMemberCard30 = "member-card-30" - CodeTypeMemberGoldMember = "member-card-gold-member" - CodeTypeMemberPlatinumMember = "member-card-platinum-member" - CodeTypeMemberBlackGoldMember = "member-card-black-gold-member" + CodeTypeMemberCard30 = "member-card-30" // 30天租卡会员 + CodeTypeMemberGoldMember = "member-card-gold-member" // 黄金会员 + CodeTypeMemberPlatinumMember = "member-card-platinum-member" // 白金会员 + CodeTypeMemberBlackGoldMember = "member-card-black-gold-member" // 黑金会员 + CodeTypeMemberPrivilegeMember = "member-card-privilege-member" // 尊享会员 ) const ( @@ -95,8 +96,9 @@ func RedeemSecretCode(redeem string) string { type RedeemCodeListReq struct { PageIndex int `json:"pageIndex"` PageSize int `json:"pageSize"` - Status string `json:"status" ` // user-hold used - SerialCode string `json:"serial_code" ` // 兑换编码 + Status string `json:"status"` // user-hold used + SerialCode string `json:"serial_code"` // 兑换编码 + CodeType string `json:"code_type"` // 兑换码类型 } type RedeemCodeListResp struct { List []RedeemCode `json:"list"` @@ -117,6 +119,9 @@ func (m *RedeemCodeListReq) RedeemCodeStockList() (*RedeemCodeListResp, error) { if m.SerialCode != "" { qs = qs.Where("serial_code=?", m.SerialCode) } + if m.CodeType != "" { + qs = qs.Where("code_type=?", m.CodeType) + } var count int64 err := qs.Count(&count).Error @@ -147,8 +152,9 @@ func (m *RedeemCodeListReq) RedeemCodeStockList() (*RedeemCodeListResp, error) { type UserRedeemCodeListReq struct { PageIndex int `json:"pageIndex"` PageSize int `json:"pageSize"` - Status string `json:"status" ` // user-hold used - SerialCode string `json:"serial_code" ` // 兑换编码 + Status string `json:"status"` // user-hold used + SerialCode string `json:"serial_code"` // 兑换编码 + CodeType string `json:"code_type"` // 兑换码类型 Uid int `json:"uid"` ConvertStart string `json:"convert_start"` ConvertEnd string `json:"convert_end"` @@ -183,6 +189,9 @@ func (m *UserRedeemCodeListReq) UserSendRedeemCodeList() (*UserRedeemCodeListRes if m.Uid != 0 { qs = qs.Where("uid=?", m.Uid) } + if m.CodeType != "" { + qs = qs.Where("code_type=?", m.CodeType) + } if m.ConvertStart != "" { parse, err := time.Parse(DateTimeFormat, m.ConvertStart) @@ -234,26 +243,58 @@ func CodeSendToUser(uid, storeId uint32, codeType string) error { return err } memberRedeemCode := int64(0) - err = orm.Eloquent.Table("user_redeem_code").Where("uid=?", uid). - Where("code_type in (?)", []string{CodeTypeMemberGoldMember, CodeTypeMemberPlatinumMember, - CodeTypeMemberBlackGoldMember}).Count(&memberRedeemCode).Error + + if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员 + 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 { logger.Errorf("err:", logger.Field("err", err)) return err } - if memberRedeemCode > 0 && codeType != CodeTypeMemberCard30 { - logger.Errorf("err:", logger.Field("err", err)) - return errors.New("member_redeem_code_only") + + if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员 + 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 { - 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") + + if redeemCode.CodeType == CodeTypeMemberPrivilegeMember { // 尊享会员 + // 获取尊享会员信息 + var privilegeUserInfo PrivilegeMember + if err := orm.Eloquent.Table("privilege_member").Where("uid = ?", uid).Find(&privilegeUserInfo).Error; err != nil { + logger.Errorf("获取尊享会员信息出错:", logger.Field("err", err)) + return err + } + + 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) _, err = IsUserInfoByUid(uid) if err != nil {