coupon-refund-return.php
✔ 隔离库 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