From 5b4149502e1379fb02a0c6b8954f344b6705e4d5 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 13 Apr 2026 23:10:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A7=E5=93=81v2=204=E6=9C=8813?= =?UTF-8?q?=E6=97=A5=E5=AE=8C=E6=95=B4=E6=9B=B4=E6=96=B0=E6=B1=87=E6=80=BB?= =?UTF-8?q?=20-=20=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3+bug=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D+=E6=A8=A1=E5=9D=97=E6=90=AC=E8=BF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-04-13_product-v2_full_update.md | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 changelogs/2026-04/2026-04-13_product-v2_full_update.md diff --git a/changelogs/2026-04/2026-04-13_product-v2_full_update.md b/changelogs/2026-04/2026-04-13_product-v2_full_update.md new file mode 100644 index 0000000..f8955b1 --- /dev/null +++ b/changelogs/2026-04/2026-04-13_product-v2_full_update.md @@ -0,0 +1,138 @@ +# 产品v2 - 4月13日完整更新汇总 + +**日期**: 2026-04-13 +**服务**: product-service-v2 +**类型**: 新增接口 + bug修复 + 模块搬迁 +**PR**: #431, #433, #442, #446-#452 + +--- + +## 一、新增接口 + +### 1. 计算行程总里程 +`GET /admin/product/item/{productId}/calculate-mileage` + +根据行程途经点坐标调用高德驾车路线规划API自动计算总驾驶里程。 + +**返回**: `BigDecimal` 总里程(km),1位小数 + +--- + +### 2. 计算建议售价 +`GET /admin/product/item/{productId}/suggest-price` + +根据备品成本+额外成本计算建议售价。有激活的公式组时走FormulaEngine计算。 + +**返回示例**: +```json +{ + "adultSuggestPrice": 220.0, + "childSuggestPrice": 70.0, + "formulaApplied": false, + "adultCost": { + "suppliesCost": 70.0, + "extraCost": 150.0, + "totalCost": 220.0, + "suppliesItems": [ + {"name": "防晒霜SPF50+", "unitPrice": 30.0, "quantity": 1, "subtotal": 30.0} + ], + "extraItems": [ + {"name": "骑马延时", "unitPrice": 150.0, "quantity": 1, "subtotal": 150.0} + ] + }, + "childCost": { ... } +} +``` + +--- + +### 3. 报价公式管理(从v1搬迁) +`/admin/product/formula/**` + +| 接口 | 方法 | 说明 | +|------|------|------| +| `/formula/group/list` | GET | 公式组列表 | +| `/formula/group/{groupId}` | GET | 公式组详情 | +| `/formula/group` | POST | 创建公式组 | +| `/formula/group/{groupId}` | PUT | 更新公式组 | +| `/formula/group/{groupId}/activate` | PUT | 激活公式组 | +| `/formula/group/{groupId}` | DELETE | 删除公式组 | +| `/formula/group/{groupId}/steps` | GET | 步骤列表 | +| `/formula/step/{formulaId}` | GET | 步骤详情 | +| `/formula/step` | POST | 创建步骤 | +| `/formula/step/{formulaId}` | PUT | 更新步骤 | +| `/formula/step/{formulaId}/toggle` | PUT | 启用/禁用 | +| `/formula/step/{formulaId}` | DELETE | 删除步骤 | +| `/formula/step/{formulaId}/versions` | GET | 版本历史 | +| `/formula/step/{formulaId}/rollback/{versionNum}` | PUT | 回滚版本 | +| `/formula/test` | POST | 测试执行 | +| `/formula/var/list` | GET | 变量列表 | +| `/formula/var` | POST | 创建变量 | +| `/formula/var/{varId}` | PUT | 更新变量 | +| `/formula/var/{varId}` | DELETE | 删除变量 | + +--- + +### 4. 温馨提示管理(从v1搬迁) +`/admin/product/warm-tips/**` + +| 接口 | 方法 | 说明 | +|------|------|------| +| `/warm-tips/list` | GET | 全部列表 | +| `/warm-tips/enabled` | GET | 启用列表(下拉用) | +| `/warm-tips/{tipsId}` | GET | 详情 | +| `/warm-tips` | POST | 创建 | +| `/warm-tips/{tipsId}` | PUT | 修改 | +| `/warm-tips/{tipsId}` | DELETE | 删除 | +| `/warm-tips/{tipsId}/toggle?enabled=true/false` | PUT | 启用/禁用 | + +--- + +### 5. 预订条款管理(从v1搬迁) +`/admin/product/booking-terms/**` + +接口结构同温馨提示,字段名 `tipsId` → `termsId`,`tipsName` → `termsName` + +--- + +## 二、Bug修复 + +### 1. 产品详情 routeInfo 返回 null(已修) +Step3保存的总里程/线路描述能存入DB但详情接口返回null。原因:SQL返回扁平字段,VO期望嵌套对象。 + +### 2. 详情返回JSON字段格式(已修) +- `photoUrls`: 之前返回 `"[\"url\"]"`(字符串),现在返回 `["url"]`(数组) +- `customFields`: 同上,字符串→对象 +- `images`(节点): 同上 +- `extraData`(节点): 同上 + +### 3. 详情返回审计字段(已修) +行程天/节点/住宿/路线点不再返回 `createTime`/`updateTime`/`createdBy`/`updatedBy`/`deletedAt` + +### 4. 行程保存事务失效(已修) +调用行程保存接口报500。原因:自调用@Transactional不生效。 + +--- + +## 三、全接口验证结果 + +| 接口 | 状态 | +|------|------| +| 产品线列表/下拉 | ✅ 200 | +| 产品分页列表 | ✅ 200 (7条) | +| 产品详情(4个产品) | ✅ 200, photoUrls=list, coverImg=Y, 审计字段=clean | +| Step1 基础信息保存 | ✅ 200 | +| Step2 行程保存 | ✅ 200 | +| Step3 路线与备品保存 | ✅ 200 | +| Step4 价格日历批量设置 | ✅ 200 | +| Step4 班期创建/修改/删除 | ✅ 200 | +| Step5 补充信息保存 | ✅ 200 | +| 里程计算 | ✅ 200 | +| 建议售价 | ✅ 200 | +| 报价计算 | ✅ 200 | +| 上架预检(4个) | ✅ 全部PASS | +| 费用推导预览 | ✅ 200 | +| 操作记录 | ✅ 200 | +| 温馨提示CRUD | ✅ 200 | +| 预订条款CRUD | ✅ 200 | +| 报价公式组/步骤/变量 | ✅ 200 |