coupon-refund-return.php

20260916-201504 轮 · 看它的历史
  ✔ 隔离库 jnc_ma_e2e_h8 就绪(105 张表,缺列 0)

【组 A couponListForUser 把开关原样投影成 refund_return】
  ✅ 两张券都出现在用户券列表里
  ✅ 投影里确实有 refund_return 这个 key
  ✅ =0 批次的券 → refund_return 0
  ✅ =1 批次的券 → refund_return 1

【组 B 开关=0 → 券保持已用,但台账照样留痕】
  ✅ 前置:券是已用态
  ✅ 前置:退款前无 reverse 行
  ✅ 前置:这单没有网关待退额(⇒ 不会调通道)
  ✅ approve 没抛异常
  ✅ 退款申请已置为成功
  ✅ 🔴 开关=0 → 券【保持】已用
  ✅ 🔴 券上的核销订单号没被清空
  ✅ 🔴 但 reverse 台账行写了 —— "不退回" ≠ "不记录"

【组 C 开关=1 → 券回未用,可再次使用】
  ✅ 前置:券是已用态
  ✅ 前置:这单没有网关待退额
  ✅ approve 没抛异常
  ✅ 退款申请已置为成功
  ✅ 🔴 开关=1 → 券回【未用】
  ✅ 🔴 券上的核销订单号被清空
  ✅ 🔴 核销时间被清零
  ✅ reverse 台账行同样写了

【组 D 守卫】
  · 已过期的券在 =1 下退回后是「已过期」不是「未用」
  ✅ approve 没抛异常
  ✅ 🔴 过期券退回后 cu_status=2(不是 0)
  · 改开关【不回补】已完成的退款 —— 组 B 那张券,开关翻成 1 之后再 approve 也补不回来
  ✅ 开关确实已翻成 1
  ✅ 🔴 券仍然是已用 —— reverse 行是那把锁
  ✅ 🔴 也没有写出第二条 reverse 行(幂等)
  · 未用券不受影响(退款路径根本找不到它的 redeem 行)
  ✅ 组 A 那张未用券仍是未用

【组 E 退款审批详情页:券去向两个分支都渲染得对】
  · 用了券的单
  ✅ 点名了是哪张券
  ✅ 措辞是「按当前设置」而不是承诺
  ✅ 🔴 开关=0 → 说"不退回用户"
      渲染结果: 优惠券: 本单使用了优惠券「E2ECRR-批次-14-rr0」,抵扣 ¥5.00 按当前设置,退款后该券不退回用户
  · 同一张单,把批次开关翻成 1 → 结论必须跟着反过来(证明它读的是真开关)
  ✅ 🔴 开关=1 → 改说"会退回用户"
  ✅ 🔴 且不再说"不退回用户"
  · 守卫:没用券的单必须说"未使用",不能也渲染成用了券
  ✅ 🔴 守卫:未用券的单说「本单未使用优惠券」
  ✅ 🔴 守卫:未用券的单不出现「本单使用了优惠券」
      渲染结果: 优惠券: 本单未使用优惠券

────────────────────────────────
PASS=33  FAIL=0
  ✔ 已销毁 jnc_ma_e2e_h8