82 行
2.2 KiB
Markdown
82 行
2.2 KiB
Markdown
# 报价逻辑修复 + 档位描述字段
|
||
|
||
- **日期**: 2026-04-16
|
||
- **服务**: hl-product-service-v2
|
||
- **PR**: #638, #661
|
||
- **类型**: fix + feat
|
||
|
||
## 1. 报价逻辑修复(⚠️ 重要)
|
||
|
||
### 问题
|
||
|
||
报价接口把价格日历的每日价格逐天累加,导致总价 = 单价 × 人数 × 行程天数(错误)。
|
||
|
||
### 修复
|
||
|
||
取**出发日期当天的一口价** × 人数(和旧版一致)。
|
||
|
||
### 响应变更
|
||
|
||
`POST /admin/product/item/{id}/quote` 和 `POST /mp/product/{id}/quote`
|
||
|
||
**新增字段**:
|
||
|
||
| 字段 | 类型 | 说明 |
|
||
|------|------|------|
|
||
| `adultUnitPrice` | BigDecimal | 成人单价(出发日一口价) |
|
||
| `childUnitPrice` | BigDecimal | 儿童单价(出发日一口价) |
|
||
|
||
**删除字段**:
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| `dailyDetails` | 不再返回每日明细(一口价不需要) |
|
||
|
||
**响应示例**:
|
||
```json
|
||
{
|
||
"adultUnitPrice": 4999.0,
|
||
"childUnitPrice": 3499.0,
|
||
"totalAdultPrice": 9998.0,
|
||
"totalChildPrice": 3499.0,
|
||
"grandTotal": 13497.0
|
||
}
|
||
```
|
||
|
||
计算公式:`totalAdultPrice = adultUnitPrice × adultCount`
|
||
|
||
## 2. 档位描述字段
|
||
|
||
产品的 `tiers` JSON结构新增 `tierDescription` 字段。
|
||
|
||
**旧结构**:
|
||
```json
|
||
[{"tierSeq": 1, "tierName": "轻奢"}, {"tierSeq": 2, "tierName": "高端"}]
|
||
```
|
||
|
||
**新结构**:
|
||
```json
|
||
[
|
||
{"tierSeq": 1, "tierName": "轻奢", "tierDescription": "精选三星酒店,舒适出行"},
|
||
{"tierSeq": 2, "tierName": "高端", "tierDescription": "五星酒店+专车接送,尊享体验"}
|
||
]
|
||
```
|
||
|
||
后端纯JSON存取,无需改代码。前端在Step1基础信息的规格列表中,每个档位加一个描述输入框即可。
|
||
|
||
## 3. routeSummary 线路概览摘要
|
||
|
||
新增字段 `routeSummary`,保存行程(Step2)时自动生成。
|
||
|
||
格式:`{首天集合地}起止·全程约{总里程}公里·日均不超{日均最大里程取整百}公里`
|
||
|
||
示例:`海拉尔起止·全程约1200公里·日均不超400公里`
|
||
|
||
- 管理端详情:`routeInfo.routeSummary`
|
||
- 小程序详情:`routeSummary`
|
||
- `routeDescription`(线路描述)不再自动覆盖,完全由用户手动填写
|
||
|
||
## 4. guaranteeTemplateId 修复
|
||
|
||
Step5补充信息保存接口现在正确支持 `guaranteeTemplateId` 字段,详情也正确返回。
|