3.9 KiB
3.9 KiB
mp-service Feign 切换到 hl-product-service-v2
日期: 2026-04-19 PR: #883 + #884 + #872 → dev → 测试环境 影响端: 小程序 (hl-ui-mp) 部署服务: hl-product-service-v2 + hl-mp-service
总体变化(对前端基本透明)
旧的 hl-product-service v1 已下线,所有小程序 /mp/product/* 和 /mp/custom/* 接口的后端实现切换到 hl-product-service-v2。接口路径、请求参数、响应字段完全保持兼容(通过 v2 端 22 个 internal endpoint 1:1 适配实现)。
受影响接口(22 个)
产品基础查询
GET /mp/product/listGET /mp/product/{productId}POST /mp/product/{productId}/quoteGET /mp/product/linesGET /mp/product/line/{lineId}/productsGET /mp/product/recommendGET /mp/product/{productId}/price-calendarGET /mp/product/earliest-booking-dateGET /mp/product/{productId}/simple-quoteGET /mp/product/{productId}/group-quoteGET /mp/product/{productId}/batches/calendarGET /mp/product/batch/{batchId}/combosGET /mp/product/batch-brief?ids=...GET /mp/product/designer-published-ids?createBy=...GET /mp/product/designer-stats(两个路径)
行程子资源
GET /mp/product/day-hotels?productId=...&dayNumber=...GET /mp/product/day-dining?productId=...&dayNumber=...
定制产品
GET /mp/custom/product/{productId}GET /mp/custom/products(按当前用户 + 手机号聚合)GET /mp/custom/products/all(全部已完成定制产品分页浏览,PR #870 新增)
4 个降级接口(v2 数据模型缺失,前端注意可能拿到空数据)
| 接口 | 原因 | 当前行为 | 后续 |
|---|---|---|---|
GET /mp/product/batch/{batchId}/combos |
v2 无 combos 概念 | 返回空列表 + 后端 log.warn | 待评估是否补 |
GET /mp/product/day-dining |
v2 无 product_day_dining 表 | 返回空列表 + 后端 log.warn | 后续 PR 建表+迁移 |
GET /mp/custom/products(按手机号路径) |
v2 ProductDO 无 contactPhone 字段 | 按手机号分支返空(按定制需求关联分支仍工作) | 后续 PR ALTER 字段 |
GET /mp/product/recommend |
无推荐算法 | 按 sort_order + create_time DESC 返已上架产品 | 后续接入推荐模型 |
前端排查建议:上述 4 个接口出现"空数据"属于已知降级行为,不算 bug。优先看其他正常接口。
字段一致性保证
- 所有 Long ID 用
String序列化(防 JS 精度丢失)— 与原 v1 行为一致 - 所有 BigDecimal 金额用
String序列化(DECIMAL(12,2))— 与原 v1 行为一致 - 日期格式
yyyy-MM-dd HH:mm:ss— 不变 - 分页结构
{records, total, page, pageSize}— 不变
不影响
- 接口路径、请求参数、响应字段结构、HTTP code、业务码完全不变
- mp 端 VO(
MpProductDetailVO/MpCustomProductDetailVO/MpCustomProductListVO等)不变 - 已有 token / 鉴权流程不变
需要前端做的事
无需任何代码改动。如发现具体接口异常请反馈对应 productId/参数。
后端实现要点(供前端排障参考)
MpProductFeignClient.@FeignClient(name=...):hl-product-service→hl-product-service-v2- 22 个 endpoint 路径与 v2 实现严格 1:1 对齐
- 5 个新 v2 controller:
InternalMpProductController/InternalMpProductReportController/InternalMpProductDayController/InternalMpCustomProductController/InternalMpDesignerController - v2 端 44 单测全过
已知未修项
- v2 缺 contactPhone 字段(custom-by-phone 降级)
- v2 缺 product_day_dining 表(day-dining 降级)
- v2 缺 batch_combo 表(batch-combos 降级)
- 推荐算法待接入
🤖 Generated with Claude Code