修改优惠券发放逻辑

dev_aagame_provider
zhora 3 weeks ago
parent a56b05ed8d
commit 78f4ffc62e
  1. 5
      call/config.go
  2. 12
      call/pay.go

@ -1908,7 +1908,7 @@ func GetConfigActivityPopupByType(jumpType int) []*common.ConfigActivityPopup {
func LoadConfigDiscountTicket() (err error) { func LoadConfigDiscountTicket() (err error) {
var list []common.ConfigDiscountTicket var list []common.ConfigDiscountTicket
if _, err = db.Mysql().QueryAll("", "", &common.ConfigDiscountTicket{}, &list); err != nil { if _, err = db.Mysql().QueryAll("", "recharge_amount", &common.ConfigDiscountTicket{}, &list); err != nil {
log.Error("err:%v", err) log.Error("err:%v", err)
return err return err
} }
@ -1923,8 +1923,9 @@ func GetConfigDiscountTicket() []common.ConfigDiscountTicket {
// GetConfigDiscountTicketByAmount 不存在就获取小一档的 // GetConfigDiscountTicketByAmount 不存在就获取小一档的
func GetConfigDiscountTicketByAmount(amount int64) (ret common.ConfigDiscountTicket) { func GetConfigDiscountTicketByAmount(amount int64) (ret common.ConfigDiscountTicket) {
for _, item := range configDiscountTicket { for _, item := range configDiscountTicket {
if item.RechargeAmount <= amount { if item.RechargeAmount == amount {
ret = item ret = item
return
} }
} }
return return

@ -306,8 +306,8 @@ func RechargeCallback(r *common.RechargeOrder, success bool, payAccount, extra s
} }
if r.ActivityID == 0 { if r.ActivityID == 0 {
ticket := GetConfigDiscountTicketByAmount(discountOriginAmount) ticket := GetConfigDiscountTicketByAmount(discountOriginAmount)
log.Debug("get ticket cfg:%+v", ticket)
if ticket.ID > 0 { if ticket.ID > 0 {
log.Info("ticket:%v", ticket)
// 赠送优惠券 // 赠送优惠券
tickets := GetConfigDiscountTicket() tickets := GetConfigDiscountTicket()
sort.Slice(tickets, func(i, j int) bool { sort.Slice(tickets, func(i, j int) bool {
@ -324,18 +324,20 @@ func RechargeCallback(r *common.RechargeOrder, success bool, payAccount, extra s
if len(tickets) > nextIdx && nextIdx != -1 { if len(tickets) > nextIdx && nextIdx != -1 {
nextTicket = tickets[nextIdx] nextTicket = tickets[nextIdx]
} }
log.Info("nextTicket:%v", nextTicket)
count := ticket.CurProb + ticket.NextProb count := ticket.CurProb + ticket.NextProb
if count > 0 { if count > 0 {
val := rand.Intn(count) // 改成100
log.Info("val:%v", val) val := rand.Intn(100)
if val < ticket.CurProb { if val < ticket.CurProb {
log.Info("ticket:%v", ticket)
AddUserDiscountTicket(uid, ticket.DiscountAmount, ticket.RechargeAmount, -1, 0, true) AddUserDiscountTicket(uid, ticket.DiscountAmount, ticket.RechargeAmount, -1, 0, true)
SendMailWithContent(uid, SystemTitle, fmt.Sprintf(EmailDiscount, ticket.DiscountAmount/common.DecimalDigits, ticket.RechargeAmount/common.DecimalDigits)) SendMailWithContent(uid, SystemTitle, fmt.Sprintf(EmailDiscount, ticket.DiscountAmount/common.DecimalDigits, ticket.RechargeAmount/common.DecimalDigits))
} else if nextTicket.ID > 0 { } else if val < ticket.CurProb+ticket.NextProb {
log.Info("nextTicket:%v", nextTicket)
AddUserDiscountTicket(uid, nextTicket.DiscountAmount, nextTicket.RechargeAmount, -1, 1, true) AddUserDiscountTicket(uid, nextTicket.DiscountAmount, nextTicket.RechargeAmount, -1, 1, true)
SendMailWithContent(uid, SystemTitle, fmt.Sprintf(EmailDiscount, nextTicket.DiscountAmount/common.DecimalDigits, nextTicket.RechargeAmount/common.DecimalDigits)) SendMailWithContent(uid, SystemTitle, fmt.Sprintf(EmailDiscount, nextTicket.DiscountAmount/common.DecimalDigits, nextTicket.RechargeAmount/common.DecimalDigits))
} }
log.Info("discountTicket, uid:%d count:%d(%d+%d) val:%v", uid, count, ticket.CurProb, ticket.NextProb, val)
} }
} }
} }

Loading…
Cancel
Save