diff --git a/call/config.go b/call/config.go index 66404e2..fbc7fa5 100644 --- a/call/config.go +++ b/call/config.go @@ -1908,7 +1908,7 @@ func GetConfigActivityPopupByType(jumpType int) []*common.ConfigActivityPopup { func LoadConfigDiscountTicket() (err error) { 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) return err } @@ -1923,8 +1923,9 @@ func GetConfigDiscountTicket() []common.ConfigDiscountTicket { // GetConfigDiscountTicketByAmount 不存在就获取小一档的 func GetConfigDiscountTicketByAmount(amount int64) (ret common.ConfigDiscountTicket) { for _, item := range configDiscountTicket { - if item.RechargeAmount <= amount { + if item.RechargeAmount == amount { ret = item + return } } return diff --git a/call/pay.go b/call/pay.go index 3cc832d..d47b957 100644 --- a/call/pay.go +++ b/call/pay.go @@ -306,8 +306,8 @@ func RechargeCallback(r *common.RechargeOrder, success bool, payAccount, extra s } if r.ActivityID == 0 { ticket := GetConfigDiscountTicketByAmount(discountOriginAmount) + log.Debug("get ticket cfg:%+v", ticket) if ticket.ID > 0 { - log.Info("ticket:%v", ticket) // 赠送优惠券 tickets := GetConfigDiscountTicket() 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 { nextTicket = tickets[nextIdx] } - log.Info("nextTicket:%v", nextTicket) count := ticket.CurProb + ticket.NextProb if count > 0 { - val := rand.Intn(count) - log.Info("val:%v", val) + // 改成100 + val := rand.Intn(100) if val < ticket.CurProb { + log.Info("ticket:%v", ticket) AddUserDiscountTicket(uid, ticket.DiscountAmount, ticket.RechargeAmount, -1, 0, true) 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) 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) } } }