fix: renewal logic 尝鲜价未生效 — 改为走 newUser 资格判断
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 7m17s
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 7m17s
renewalLogic 在计算折扣时硬编码 isNewUser=false, 导致新用户在 24h 窗口内通过 renewal 接口购买时无法享受尝鲜价。 改为调用 resolveNewUserDiscountEligibility,与 purchaseLogic 保持一致。 Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
parent
0b1e6ce3c3
commit
5733ebe40d
@ -81,11 +81,17 @@ func (l *RenewalLogic) Renewal(req *types.RenewalOrderRequest) (resp *types.Rene
|
||||
if !*sub.Sell {
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.ERROR), "subscribe not sell")
|
||||
}
|
||||
newUserDiscount, err := resolveNewUserDiscountEligibility(l.ctx, l.svcCtx.DB, u.Id, sub.Id, req.Quantity, sub.Discount)
|
||||
if err != nil {
|
||||
l.Errorw("[Renewal] Database query error resolving new user eligibility",
|
||||
logger.Field("error", err.Error()),
|
||||
logger.Field("user_id", u.Id),
|
||||
)
|
||||
return nil, err
|
||||
}
|
||||
var discount float64 = 1
|
||||
if sub.Discount != "" {
|
||||
var dis []types.SubscribeDiscount
|
||||
_ = json.Unmarshal([]byte(sub.Discount), &dis)
|
||||
discount = getDiscount(dis, req.Quantity, false)
|
||||
if len(newUserDiscount.Discounts) > 0 {
|
||||
discount = getDiscount(newUserDiscount.Discounts, req.Quantity, newUserDiscount.EligibleForDiscount)
|
||||
}
|
||||
price := sub.UnitPrice * req.Quantity
|
||||
amount := int64(math.Round(float64(price) * discount))
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user