fix(invitation): 邀请返利改用实际结算利润并修正提号基准

This commit is contained in:
yml2213
2026-10-29 11:49:08 +08:00
parent e57c9df6f4
commit 86fbc05e9b
7 changed files with 277 additions and 13 deletions
+17 -2
View File
@@ -308,8 +308,9 @@ func (r *Repository) Complete(ctx context.Context, pickupID uint64, req Complete
}
// 邀请返利:线下提号不走正常订单结账流程,必须在这里补发号主(卖家)侧返利,
// 否则号主邀请人永远拿不到提号产生的分成。基数按提号利润对半(与租赁订单卖家侧口径一致)。
if grossBasisCent := pickup.ProfitAmountCent; grossBasisCent > 0 {
// 否则号主邀请人永远拿不到提号产生的分成。
// 基准取「网站加价」与「线下利润」的较小值,避免按虚高的单一利润口径多算。
if grossBasisCent := pickupRebateGrossBasis(pickup.WebsiteProfitCent, pickup.ProfitAmountCent); grossBasisCent > 0 {
sellerSiteID := uint64(0)
if listing.DistributionSiteID != nil {
sellerSiteID = *listing.DistributionSiteID
@@ -1923,6 +1924,20 @@ func maxPickupCent(a, b int64) int64 {
return b
}
// pickupRebateGrossBasis 取网站加价与线下利润的较小值,负数按 0 处理。
func pickupRebateGrossBasis(websiteProfitCent, offlineProfitCent int64) int64 {
if websiteProfitCent < 0 {
websiteProfitCent = 0
}
if offlineProfitCent < 0 {
offlineProfitCent = 0
}
if websiteProfitCent < offlineProfitCent {
return websiteProfitCent
}
return offlineProfitCent
}
func normalizePaging(page, pageSize int) (int, int) {
if page < 1 {
page = 1