hl-api-changelog/changelogs/2026-04/2026-04-19_mp-feign-migrate-to-product-service-v2.md

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/list
  • GET /mp/product/{productId}
  • POST /mp/product/{productId}/quote
  • GET /mp/product/lines
  • GET /mp/product/line/{lineId}/products
  • GET /mp/product/recommend
  • GET /mp/product/{productId}/price-calendar
  • GET /mp/product/earliest-booking-date
  • GET /mp/product/{productId}/simple-quote
  • GET /mp/product/{productId}/group-quote
  • GET /mp/product/{productId}/batches/calendar
  • GET /mp/product/batch/{batchId}/combos
  • GET /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 端 VOMpProductDetailVO / MpCustomProductDetailVO / MpCustomProductListVO 等)不变
  • 已有 token / 鉴权流程不变

需要前端做的事

无需任何代码改动。如发现具体接口异常请反馈对应 productId/参数。

后端实现要点(供前端排障参考)

  • MpProductFeignClient.@FeignClient(name=...): hl-product-servicehl-product-service-v2
  • 22 个 endpoint 路径与 v2 实现严格 1:1 对齐
  • 5 个新 v2 controllerInternalMpProductController / InternalMpProductReportController / InternalMpProductDayController / InternalMpCustomProductController / InternalMpDesignerController
  • v2 端 44 单测全过

已知未修项

  1. v2 缺 contactPhone 字段custom-by-phone 降级)
  2. v2 缺 product_day_dining 表day-dining 降级)
  3. v2 缺 batch_combo 表batch-combos 降级)
  4. 推荐算法待接入

🤖 Generated with Claude Code