mp 详情新增 depositAmount 自动计算 + TierPriceInfo.depositAmount(PR #996)
这个提交包含在:
父节点
3bc47d254a
当前提交
6b2979e01c
@ -0,0 +1,50 @@
|
||||
# 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` 新增:
|
||||
```json
|
||||
{
|
||||
"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 计算
|
||||
- 管理端固定金额模式:不受影响
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户