From 00d40ae328d08058fdef11e6547cbf2cad66af44 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 16 Apr 2026 16:33:49 +0800 Subject: [PATCH] fix+feat: quote logic fix + tier description + routeSummary + guaranteeTemplateId --- ...4-16_product-v2_quote-fix-and-tier-desc.md | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 changelogs/2026-04/2026-04-16_product-v2_quote-fix-and-tier-desc.md diff --git a/changelogs/2026-04/2026-04-16_product-v2_quote-fix-and-tier-desc.md b/changelogs/2026-04/2026-04-16_product-v2_quote-fix-and-tier-desc.md new file mode 100644 index 0000000..969bbbf --- /dev/null +++ b/changelogs/2026-04/2026-04-16_product-v2_quote-fix-and-tier-desc.md @@ -0,0 +1,81 @@ +# 报价逻辑修复 + 档位描述字段 + +- **日期**: 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` 字段,详情也正确返回。