From 1750dc7dac75eec4485743d5fad6e4f5dc05450e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 14 Apr 2026 00:43:27 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BA=A7=E5=93=81v2=202026-04-14?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E6=B1=87=E6=80=BB(=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3+bug=E4=BF=AE=E5=A4=8D+=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E6=90=AC=E8=BF=81)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2026-04-14_product-v2_daily_summary.md | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 changelogs/2026-04/2026-04-14_product-v2_daily_summary.md diff --git a/changelogs/2026-04/2026-04-14_product-v2_daily_summary.md b/changelogs/2026-04/2026-04-14_product-v2_daily_summary.md new file mode 100644 index 0000000..8197722 --- /dev/null +++ b/changelogs/2026-04/2026-04-14_product-v2_daily_summary.md @@ -0,0 +1,95 @@ +# 产品v2 - 今日变更汇总 (2026-04-14) + +**日期**: 2026-04-14 +**服务**: product-service-v2 +**类型**: 新增接口 + bug修复 + 模块搬迁 + +--- + +## 一、新增接口 + +### 1. 计算行程总里程 +- `GET /admin/product/item/{productId}/calculate-mileage` +- 根据行程途经点调用高德驾车路线API自动计算里程(km) +- 返回: `{"code":200, "data": 690.2}` +- 前端建议: Step3页面提供"自动计算"按钮调此接口填充总里程 + +### 2. 温馨提示管理 `/admin/product/warm-tips/**` +| 方法 | 路径 | 说明 | +|------|------|------| +| GET | /list | 全部列表(含禁用) | +| GET | /enabled | 启用的列表(下拉用) | +| GET | /{tipsId} | 详情 | +| POST | / | 创建 | +| PUT | /{tipsId} | 修改 | +| DELETE | /{tipsId} | 删除(软删) | +| PUT | /{tipsId}/toggle?enabled=true/false | 启用/禁用 | + +### 3. 预订条款管理 `/admin/product/booking-terms/**` +接口结构同温馨提示,字段: termsId/termsName/content/enabled/remark + +### 4. 报价公式管理 `/admin/product/formula/**` +| 方法 | 路径 | 说明 | +|------|------|------| +| GET | /group/list?productType= | 公式组列表 | +| GET | /group/{groupId} | 公式组详情 | +| POST | /group | 创建公式组 | +| PUT | /group/{groupId} | 更新公式组 | +| PUT | /group/{groupId}/activate | 激活公式组 | +| DELETE | /group/{groupId} | 删除公式组 | +| GET | /group/{groupId}/steps | 步骤列表 | +| GET | /step/{formulaId} | 步骤详情 | +| POST | /step | 创建步骤 | +| PUT | /step/{formulaId} | 更新步骤 | +| PUT | /step/{formulaId}/toggle | 启用/禁用步骤 | +| DELETE | /step/{formulaId} | 删除步骤 | +| GET | /step/{formulaId}/versions | 版本历史 | +| PUT | /step/{formulaId}/rollback/{versionNum} | 回滚 | +| POST | /test | 测试公式执行 | +| GET | /var/list?category= | 变量列表 | +| POST | /var | 创建变量 | +| PUT | /var/{varId} | 更新变量 | +| DELETE | /var/{varId} | 删除变量 | + +**注意**: 公式相关RespVO中ID字段类型为Long(不是String) + +--- + +## 二、Bug修复 + +### 1. 产品详情routeInfo返回null (已修) +- 原因: SQL返回扁平字段(totalMileage/routeDescription/routeMapUrl),VO是嵌套对象,BeanUtil无法映射 +- 修复: 手动组装routeInfo/supplement/crowdBenefit嵌套对象 + +### 2. 行程子数据返回多余审计字段 (已修) +- 原因: nodes/hotels/routePoints直接返回DO对象,包含createTime/updatedBy等 +- 修复: 返回前去掉BaseDO字段,JSON字段(images/extraData/photoUrls)正确反序列化 + +### 3. Step1创建时多个字段丢失 (已修) +- 原因: doCreate方法只set了name/productType/lineId/tripDays,漏了subtitle/category/introduction/seasons/carouselImages等 +- 修复: 补全全部字段 + +### 4. 行程保存事务不生效 (已修) +- 原因: saveItinerary()自调用doSaveItinerary()绕过AOP代理 +- 修复: @Lazy setter注入自身代理 + +--- + +## 三、前端注意事项 + +### Step1 基础信息 +- `seasons`和`carouselImages`现在能正常保存和返回了 +- `balanceDueDays`(尾款截止天数)字段**不需要展示**,尾款在行程中由领队收取,前端隐藏"尾款须在出发前N天付清"输入框 + +### Step2 行程编排 +- routePoints返回字段精简为: `id/resourceId/name/longitude/latitude/sortOrder` (无审计字段) +- nodes的`images`和`extraData`已从JSON字符串反序列化为对象 +- days的`photoUrls`和`customFields`同样已反序列化 + +### Step3 路线与备品 +- `GET /{productId}/calculate-mileage` 可用于自动计算里程 + +### Step5 补充信息 +- 详情返回中`supplement`和`crowdBenefit`现在是嵌套对象(之前是null) +- `supplement`包含: quickUnderstand/childExperience/growthGains/insuranceNotice/equipmentAdvice/refundPolicyIds/feeIgnoredTypes/vehicleModelIds +- `crowdBenefit`包含: tips