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,14 +236,12 @@ func (l *PurchaseLogic) Purchase(req *types.PurchaseOrderRequest) (resp *types.P
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// query user is new purchase or renewal
|
// query user is new purchase or renewal
|
||||||
isNew := false
|
// 注意:SingleModel 下 orderType 会被路由成 2(续费),但仍需正确判断是否首购以发佣金
|
||||||
if orderType == 1 {
|
isNew, err := l.svcCtx.OrderModel.IsUserEligibleForNewOrder(l.ctx, u.Id)
|
||||||
isNew, err = l.svcCtx.OrderModel.IsUserEligibleForNewOrder(l.ctx, u.Id)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Errorw("[Purchase] Database query error", logger.Field("error", err.Error()), logger.Field("user_id", u.Id))
|
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())
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.DatabaseQueryError), "find user order error: %v", err.Error())
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// create order
|
// create order
|
||||||
orderInfo := &order.Order{
|
orderInfo := &order.Order{
|
||||||
UserId: u.Id,
|
UserId: u.Id,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user