feat(distribution): 分站收号压价解耦买家价(方案 B 新口径)

核心语义反转:receive_cost_delta 为压价点数,收号比例 = 主站参考比例 R + 点数,
点数越大号主收号价越低;买家售价锚定主站参考比例推导,不再随收号价联动。

- 迁移 000072:distribution_sites 新增 receive_cost_delta(旧 receive_ratio_delta 保留只读)
- receive_pricing:新增 Normalize/ApplySiteReceiveCostDelta;分站定价买家侧改用
  R 锚点(referenceSellerCoinBasePrice),快照写入 site_receive_cost_delta 与 pricing_model 标记
- site_receive:新增 resolveSiteReceiveCostDelta 读取链路,旧 ResolveReceiveRatioDelta 保留
- 分成不变:压价差经结算层 profit 自动进入 35/40/25 三方分成池;
  货架自主加价仍 100% 归分站,两条边界均以主站为锚
- 权限对齐旧字段:主站全局管理员与分站操作员均可设置
- 前端三端同步:主站 pricing.ts/usePricingCalculator 买卖解耦试算、
  主站后台弹窗改「收号压价」价格语义文案、分销后台 SiteSettings 同步
- 测试:单测锚定 R=43 时 cost_delta=3 → 收号 217.4 / 卖价 263.2 不变 / markup 池 30.6→54.9
This commit is contained in:
yml2213
2026-09-17 15:54:56 +08:00
parent 8dc21d2757
commit 22fcaa5945
17 changed files with 253 additions and 62 deletions
+4
View File
@@ -28,6 +28,7 @@ export interface DistributionSiteInfo {
announcements_json?: string
footer_info_json?: string
receive_ratio_delta?: number
receive_cost_delta?: number
}
/**
@@ -74,6 +75,7 @@ export const useDistributionSiteStore = defineStore('distributionSite', {
announcements: [] as string[],
footerInfo: null as DistributionFooterInfo | null,
receiveRatioDelta: 0,
receiveCostDelta: 0,
initialized: false,
}
},
@@ -178,6 +180,7 @@ export const useDistributionSiteStore = defineStore('distributionSite', {
}
this.receiveRatioDelta = Math.max(0, Number(info.receive_ratio_delta || 0))
this.receiveCostDelta = Math.max(0, Number(info.receive_cost_delta || 0))
sessionStorage.setItem('hfb_site_code', this.siteCode)
sessionStorage.setItem('hfb_site_name', this.siteName)
@@ -217,6 +220,7 @@ export const useDistributionSiteStore = defineStore('distributionSite', {
this.announcements = []
this.footerInfo = null
this.receiveRatioDelta = 0
this.receiveCostDelta = 0
sessionStorage.removeItem('hfb_site_code')
sessionStorage.removeItem('hfb_site_name')
localStorage.removeItem('hfb_site_code')