1.修改用户积分记录逻辑,调整为消费与获得积分比例为1:1;

This commit is contained in:
chenlin 2024-03-11 11:12:57 +08:00
parent eb920a93cd
commit 341c5a08de
5 changed files with 73 additions and 20 deletions

View File

@ -640,11 +640,11 @@ func PushWXPayNotice(c *gin.Context) {
// } // }
//} //}
if spendType == 2 { if spendType == 2 { // 开通会员
err = model.SendUserVm(user.Uid, record.MemberLevel, 0) //err = model.SendUserVm(user.Uid, record.MemberLevel, 0)
if err != nil { //if err != nil {
logger.Error("send user vm err:", err) // logger.Error("send user vm err:", err)
} //}
} }
openMemberChannel := model.OpenMemberChannelUserInvite openMemberChannel := model.OpenMemberChannelUserInvite
@ -676,6 +676,12 @@ func PushWXPayNotice(c *gin.Context) {
} }
} }
// 赠送积分
err = model.NewSendUserVm(user.Uid, uint32(notifyInfo.TotalFee/100), spendType)
if err != nil {
logger.Error("send user vm err:", err)
}
if user.MemberLevel != 2 { if user.MemberLevel != 2 {
} }
go func() { go func() {
@ -968,6 +974,12 @@ func PushWXPayNotice(c *gin.Context) {
} }
} }
// 赠送积分
err = model.NewSendUserVm(user.Uid, uint32(notifyInfo.TotalFee/100), 4)
if err != nil {
logger.Error("send user vm err:", err)
}
fmt.Println("用户升级---") fmt.Println("用户升级---")
// 统计用户升级的数量,方便前端展示 // 统计用户升级的数量,方便前端展示
// 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费 // 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费
@ -1392,7 +1404,7 @@ func HmPushWXPayNotice(c *gin.Context) {
AfterMemberLevel: record.MemberLevel, AfterMemberLevel: record.MemberLevel,
} }
newTime := time.Now() newTime := time.Now()
var spendType uint32 var spendType uint32 // 开通类型: 1-未开通 2-开通会员 3-续费 4-升级 5-店员推广续费
var user model.User var user model.User
err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user) err = model.NewUserQuerySet(model.DB).UidEq(record.Uid).One(&user)
if err != nil { if err != nil {
@ -1587,17 +1599,17 @@ func HmPushWXPayNotice(c *gin.Context) {
inviteUser := model.GetUserByUid(invite.FromUid) inviteUser := model.GetUserByUid(invite.FromUid)
if inviteUser != nil { if inviteUser != nil {
if inviteUser.UserType != 2 /*不是店员*/ && user.MemberLevel != 2 { // 邀请 新用户推送一次 if inviteUser.UserType != 2 /*不是店员*/ && user.MemberLevel != 2 { // 邀请 新用户推送一次
err = model.SendUserVm(inviteUser.Uid, record.MemberLevel, 1) //err = model.SendUserVm(inviteUser.Uid, record.MemberLevel, 1)
if err != nil { //if err != nil {
logger.Error("send user vm err:", err) // logger.Error("send user vm err:", err)
} //}
} }
if spendType == 2 { if spendType == 2 {
err = model.SendUserVm(user.Uid, record.MemberLevel, 0) //err = model.SendUserVm(user.Uid, record.MemberLevel, 0)
if err != nil { //if err != nil {
logger.Error("send user vm err:", err) // logger.Error("send user vm err:", err)
} //}
} }
openMemberChannel := model.OpenMemberChannelUserInvite openMemberChannel := model.OpenMemberChannelUserInvite
@ -1629,6 +1641,12 @@ func HmPushWXPayNotice(c *gin.Context) {
} }
} }
// 赠送积分
err = model.NewSendUserVm(user.Uid, uint32(payAmountFloat), spendType)
if err != nil {
logger.Error("send user vm err:", err)
}
if user.MemberLevel != 2 { if user.MemberLevel != 2 {
} }
go func() { go func() {
@ -1921,6 +1939,12 @@ func HmPushWXPayNotice(c *gin.Context) {
} }
} }
// 赠送积分
err = model.NewSendUserVm(user.Uid, uint32(payAmountFloat), 4)
if err != nil {
logger.Error("send user vm err:", err)
}
fmt.Println("用户升级---") fmt.Println("用户升级---")
// 统计用户升级的数量,方便前端展示 // 统计用户升级的数量,方便前端展示
// 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费 // 分3种情况1-店员干预使用了店员兑换码兑换的优惠券、2-自动续费开通会员时有店员邀请原价or优惠券续费

View File

@ -1001,7 +1001,7 @@ func UserAttendance(c *gin.Context) {
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
return return
} }
err = record.Add(model.VmEventAttendance, "连续签到获取积分") err = record.Add(model.VmEventAttendance, "签到获取积分")
if err != nil { if err != nil {
logger.Error("add user attendance record err:", err) logger.Error("add user attendance record err:", err)
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
@ -1021,7 +1021,7 @@ func UserAttendance(c *gin.Context) {
} }
if attendanceRecord.AttendanceDate == "" || if attendanceRecord.AttendanceDate == "" ||
attendanceRecord.AttendanceDate != utils.TodayZeroAddDaysDateFormat(-1) { attendanceRecord.AttendanceDate != utils.TodayZeroAddDaysDateFormat(-1) {
err = record.Add(model.VmEventAttendance, "连续签到获取积分") err = record.Add(model.VmEventAttendance, "签到获取积分")
if err != nil { if err != nil {
logger.Error("add user attendance record err:", err) logger.Error("add user attendance record err:", err)
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)
@ -1047,7 +1047,7 @@ func UserAttendance(c *gin.Context) {
} }
record.Vm = configInfo.Vm(userAttendance.ConsecutiveDays) record.Vm = configInfo.Vm(userAttendance.ConsecutiveDays)
err = record.Add(model.VmEventAttendance, "连续签到获取积分") err = record.Add(model.VmEventAttendance, "签到获取积分")
if err != nil { if err != nil {
logger.Error("add user attendance record err:", err) logger.Error("add user attendance record err:", err)
RespJson(c, status.InternalServerError, nil) RespJson(c, status.InternalServerError, nil)

View File

@ -45,7 +45,7 @@ const (
WxPayMember = "member_pay" // 会员 WxPayMember = "member_pay" // 会员
WxPayRentCard = "rent_card_pay" // 租卡 WxPayRentCard = "rent_card_pay" // 租卡
WxPayDeposit = "deposit_pay" // 押金 WxPayDeposit = "deposit_pay" // 押金
WxPayBuyGoods = "buy_goods" // 购买商品 WxPayBuyGoods = "buy_goods" // 购买商品(线上小程序)
WxPayUpgradeMember = "upgrade_member" // 升级会员 WxPayUpgradeMember = "upgrade_member" // 升级会员
WxPayMemberExpireDelay = "member_expire_delay" // 会员过期滞纳金 WxPayMemberExpireDelay = "member_expire_delay" // 会员过期滞纳金
WxPayShareCardRetrieve = "share_card_retrieve" // 收回卡 WxPayShareCardRetrieve = "share_card_retrieve" // 收回卡
@ -250,7 +250,7 @@ type (
IsSubscribe string `xml:"is_subscribe,CDATA" json:"is_subscribe"` IsSubscribe string `xml:"is_subscribe,CDATA" json:"is_subscribe"`
TradeType string `xml:"trade_type,CDATA" json:"trade_type"` TradeType string `xml:"trade_type,CDATA" json:"trade_type"`
BankType string `xml:"bank_type,CDATA" json:"bank_type"` BankType string `xml:"bank_type,CDATA" json:"bank_type"`
TotalFee uint `xml:"total_fee,CDATA" json:"total_fee"` TotalFee uint `xml:"total_fee,CDATA" json:"total_fee"` // 订单总金额,单位为分
SettlementTotalFee uint `xml:"settlement_total_fee" json:"settlement_total_fee"` SettlementTotalFee uint `xml:"settlement_total_fee" json:"settlement_total_fee"`
FeeType string `xml:"fee_type,CDATA" json:"fee_type"` FeeType string `xml:"fee_type,CDATA" json:"fee_type"`
CashFee uint `xml:"cash_fee,CDATA" json:"cash_fee"` CashFee uint `xml:"cash_fee,CDATA" json:"cash_fee"`

View File

@ -328,6 +328,33 @@ func SendUserVm(uid, memberLevel, inviteLevel uint32) error {
return nil return nil
} }
// NewSendUserVm 会员积分:开通会员、续费/升级会员积分规则为1:1邀请不再有积分
func NewSendUserVm(uid, nAmount, nType uint32) error {
describe := ""
event := ""
if nType == 2 { // 开通会员
describe = "开通会员"
event = VmEventOpenMember
} else if nType == 3 { // 续费会员
describe = "续费/升级会员"
event = VmEventRenewMember
} else if nType == 4 { // 升级会员
describe = "续费/升级会员"
event = VmEventUpgradeMember
} else {
logger.Errorf("err:", "记录会员积分失败nType类型错误为%d", nType)
return errors.New("记录会员积分失败")
}
err := UserVmUpdate(uid, int(nAmount), event, describe)
if err != nil {
logger.Error("err:", err)
return err
}
return nil
}
func GetUserRenewalCouponIds() ([]uint32, error) { func GetUserRenewalCouponIds() ([]uint32, error) {
ids := make([]uint32, 0) ids := make([]uint32, 0)
var coupons []Coupon var coupons []Coupon

View File

@ -10,9 +10,11 @@ const (
//VmEventExchangeGoods = "exchange_goods" //VmEventExchangeGoods = "exchange_goods"
VmEventBuyGoods = "buy_goods" // 购买商品积分抵扣 VmEventBuyGoods = "buy_goods" // 购买商品积分抵扣
VmEventOpenMember = "open_member" // 开通会员奖励 VmEventOpenMember = "open_member" // 开通会员奖励
VmEventRenewMember = "renew_member" // 续费会员奖励
VmEventUpgradeMember = "upgrade_member" // 升级会员奖励
VmEventInvite1Member = "invite_1_member" // 邀请会员奖励 VmEventInvite1Member = "invite_1_member" // 邀请会员奖励
VmEventInvite2Member = "invite_2_member" // 邀请会员奖励 VmEventInvite2Member = "invite_2_member" // 邀请会员奖励
VmEventAttendance = "attendance" // 连续签到获取积分 VmEventAttendance = "attendance" // 签到获取积分
VmEventErpOrderSale = "erp_order_sale" // 零售销售获得积分 VmEventErpOrderSale = "erp_order_sale" // 零售销售获得积分
VmEventErpOrderReject = "erp_order_reject" // 零售退货扣除积分 VmEventErpOrderReject = "erp_order_reject" // 零售退货扣除积分
) )