hl-api-changelog/changelogs/2026-04/2026-04-23_mp-refund-preview-ratio-fix.md
yaosutu 17648b8961 changelog(mp): 04-23 下午批次 7 篇 — 合同强类型 VO / 退款 ratio / balance 统一 / 头像 / groupBatchId / 小童保留 / 行前清单拆分
- #1314 mp-contract: Map → MpContractVO / MpContractDetailVO 强类型化
- #1313 mp-refund preview refundRatio 恒 0 bug 修复
- #1306 mp-order balanceAmount 计算口径统一(FULL 也返回, 公式含 paid)
- #1309 mp-order guide/photographer avatarUrl 快照补齐(新订单生效)
- #1300 mp-order detail 新增 groupBatchId(GROUP 才有值)
- #1298 mp-group order youngChildCount 保留不再强制清零
- #1289 mp-pre-trip checklist 6→7 项 + DEPARTURE_INFO + WARNING 状态
2026-04-23 16:43:36 +08:00

1.8 KiB

MP 退款预览 refundRatio 之前永远为 0 — 已修复

  • 变更日期: 2026-04-23
  • PR: #1313
  • 影响面: 小程序端 · 订单退款预览弹窗
  • 兼容性: 纯 bug 修复,接口/字段/调用方式零变化,前端无需改动

变化一句话

调用 MP 退款预览接口时,返回的 refundRatio(退款比例,如 50 = 50%)之前永远返回 0;现在会按订单实际绑定的退款政策和出发日期返回正确的比例值。


相关接口

POST /mp/refund/preview(实际路径以 Swagger 为准)

入参结构不变,继续按之前传 orderId 即可。

返回 RefundPreviewVO 里的字段:

字段 之前 现在
refundRatio 0 按退款政策 + 距离出发天数查表得出的真实比例0~100
refundAmount 基于 ratio=0 计算 → 恒 0 按真实比例计算
其它字段 正常 不变

根因(一句话,前端可忽略)

MP 侧 Feign 只传了 orderId,后端 Service 期望同时传 policyId/paidAmount/departureDate 才能匹配策略;旧版直接拿 null 去查,匹配不到策略导致 ratio=0。本次后端按 orderId 反查订单主表自动补齐这些参数。


不影响范围

  • 管理端退款预览(/admin/refund/preview)已经传齐参数,零影响
  • 实际退款提交流程preview 之后的 apply / approve零影响
  • 退款政策、订单金额、已付金额等字段零影响

建议前端验收一个点

之前因为 ratio 恒 0 导致"退款弹窗金额显示 0、用户不敢点"的场景,现在应回到正常金额。发布后请重点点一次"申请退款"弹窗确认数字正确。


相关

  • PRwx/HL#1313
  • 部署:hl-order-service-v28094