fix: SingleModel 下首购 isNew 判断错误导致佣金不发
SingleModel 模式下,用户首次购买会被路由成 orderType=2(续费), 导致 isNew 判断逻辑跳过,始终为 false,激活时 shouldProcessCommission 误判为非首购,佣金不发给邀请人。 修复:去除 isNew 查询对 orderType==1 的依赖,始终通过 IsUserEligibleForNewOrder 判断用户是否有历史完成订单。 Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
parent
6f6943f295
commit
8398865bd3
@ -236,13 +236,11 @@ func (l *PurchaseLogic) Purchase(req *types.PurchaseOrderRequest) (resp *types.P
|
||||
}
|
||||
}
|
||||
// query user is new purchase or renewal
|
||||
isNew := false
|
||||
if orderType == 1 {
|
||||
isNew, err = l.svcCtx.OrderModel.IsUserEligibleForNewOrder(l.ctx, u.Id)
|
||||
if err != nil {
|
||||
l.Errorw("[Purchase] Database query error", logger.Field("error", err.Error()), logger.Field("user_id", u.Id))
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find user order error: %v", err.Error())
|
||||
}
|
||||
// 注意:SingleModel 下 orderType 会被路由成 2(续费),但仍需正确判断是否首购以发佣金
|
||||
isNew, err := l.svcCtx.OrderModel.IsUserEligibleForNewOrder(l.ctx, u.Id)
|
||||
if err != nil {
|
||||
l.Errorw("[Purchase] Database query error", logger.Field("error", err.Error()), logger.Field("user_id", u.Id))
|
||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find user order error: %v", err.Error())
|
||||
}
|
||||
// create order
|
||||
orderInfo := &order.Order{
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user