1.8 KiB
1.8 KiB
mp 产品详情新增 depositAmount 自动计算(含档位级)
日期: 2026-04-20 服务: hl-product-service-v2 PR: #996
背景
GET /mp/product/{id} 在 paymentType=DEPOSIT, depositRatio=10 时返回 depositAmount=null。因为管理端的 ratio/amount 互斥(配比例会清空固定金额),mp 端此前直接透传 null,小程序需要定金的具体金额来展示"定金 ¥xxx"和点亮预订按钮。
后端新行为
产品级 depositAmount
paymentType=DEPOSIT且depositAmount=null且depositRatio ∈ [1,100]时:depositAmount = startPrice × depositRatio / 100(2 位小数,HALF_UP)paymentType=FULL→depositAmount始终 null- 管理端配了固定
depositAmount时直接使用,不重算
档位级 tierPrices[].depositAmount(新字段)
MpProductDetailRespVO.TierPriceInfo 新增:
{
"tierSeq": 1,
"tierName": "轻奢",
"tierDescription": "自由之旅",
"startPrice": 4105,
"depositAmount": 410.5 // 新增
}
各档按本档 startPrice × ratio / 100 独立计算;管理端配固定金额时各档统一取该金额。
验证(测试环境产品 2045345825172639746)
paymentType: DEPOSIT
depositRatio: 10
depositAmount: 410.5 (= 4105 × 10%)
startPrice: 4105
tierPrices:
- tierSeq=1 startPrice=4105 depositAmount=410.5
- tierSeq=2 startPrice=4865 depositAmount=486.5
前端建议
- 展示产品总体定金:直接用
data.depositAmount - 选中某档位时:用
tierPrices[i].depositAmount - 判断定金模式:
data.paymentType === 'DEPOSIT' && data.depositAmount != null
兼容
- 非定金产品(FULL):depositAmount 仍为 null
- GROUP 类型(小蒙马):无 tierPrices,depositAmount 直接按 startPrice 计算
- 管理端固定金额模式:不受影响