kate522
c955fd35f2
fix(after-sale): 售后工单已完结即不可再申请,不看订单是否另标已退款
原来的重复申请闸门只看「进行中」的工单(find_active = pending/processing),
于是工单已 completed、但订单没被另标「已退款」时,订单还能再发起一次售后。
已退款订单之所以不能再申请,是因为 status_group 变了导致 enabled 为 false,
属于间接效果;工单层面的规则一直是漏的。
- create() 改为以 latest_for_order() 为准:completed 直接挡掉;待审核/处理中
仍走同人同因幂等(返回原工单),rejected / cancelled 放行再次发起
- after_sale_state() 的 can_apply 同步收紧,与 can_reapply 同一口径:
有工单时只有 rejected / cancelled 才放行,completed 不再漏过去
- 界面上售后详细弹窗的「再次申请」本就只对 rejected / cancelled 渲染,
这条改动把服务端与 API 口径补齐,堵住绕过前端直接打 REST 的口子
harness 补两个场景:completed 挡住而 rejected / cancelled 放行;待审核工单
同因幂等返回原单、换因挡住。
验证:tests/widget-system/ 462 项、tests/admin/ 76 项通过;after-sale-log-harness
7/7(新增两场景);dev harness 渲染两个后台页面与 unchecked 处理场景均正常。
未做浏览器视觉验收。
2026-10-09 18:25:02 +08:00
..
2026-09-21 20:53:12 +08:00
2026-10-06 09:41:11 +08:00
2026-10-06 09:26:55 +08:00
2026-09-21 20:53:12 +08:00
2026-10-06 19:41:25 +08:00
2026-09-26 21:43:24 +08:00
2026-10-09 18:25:02 +08:00
2026-10-09 18:25:02 +08:00
2026-10-06 22:21:47 +08:00
2026-10-05 16:42:25 +08:00
2026-09-19 12:54:22 +08:00
2026-09-19 11:34:12 +08:00
2026-09-06 12:59:44 +08:00
2026-10-07 09:20:59 +08:00
2026-10-06 01:09:04 +08:00
2026-09-03 13:59:07 +08:00
2026-09-24 11:04:49 +08:00
2026-09-18 18:38:07 +08:00
2026-08-29 15:50:04 +08:00
2026-09-24 21:13:24 +08:00
2026-08-30 20:38:25 +08:00
2026-09-27 00:37:00 +08:00
2026-09-04 19:52:56 +08:00
2026-09-03 12:44:31 +08:00
2026-10-06 14:35:14 +08:00
2026-09-13 20:02:56 +08:00
2026-10-08 21:14:56 +08:00
2026-09-04 22:53:33 +08:00
2026-09-24 11:04:49 +08:00
2026-10-06 01:09:04 +08:00
2026-10-06 13:23:05 +08:00
2026-09-19 17:06:19 +08:00
2026-10-06 15:54:47 +08:00
2026-09-21 21:31:16 +08:00
2026-09-05 22:28:19 +08:00
2026-10-03 22:22:15 +08:00
2026-08-25 18:22:30 +08:00
2026-08-25 18:11:26 +08:00
2026-08-25 18:34:17 +08:00
2026-09-03 12:44:31 +08:00
2026-09-02 13:03:24 +08:00
2026-10-09 18:25:02 +08:00
2026-09-18 17:34:00 +08:00
2026-09-16 17:24:22 +08:00
2026-10-06 14:13:51 +08:00
2026-10-05 16:42:25 +08:00
2026-09-18 19:01:19 +08:00
2026-10-06 20:17:58 +08:00
2026-10-06 19:35:56 +08:00
2026-10-07 09:20:59 +08:00
2026-10-04 19:19:29 +08:00
2026-09-28 21:27:44 +08:00
2026-09-28 21:58:43 +08:00
2026-09-22 19:53:03 +08:00
2026-09-21 20:53:12 +08:00
2026-09-04 22:53:33 +08:00
2026-10-06 19:52:03 +08:00
2026-09-21 20:53:12 +08:00
2026-10-05 03:24:42 +08:00
2026-10-06 09:26:55 +08:00
2026-10-06 11:09:05 +08:00
2026-10-06 11:09:05 +08:00
2026-10-06 13:23:05 +08:00
2026-10-06 11:09:05 +08:00
2026-10-06 01:09:04 +08:00
2026-09-17 19:04:47 +08:00
2026-08-23 22:09:12 +08:00
2026-09-03 21:33:30 +08:00
2026-09-03 21:33:30 +08:00
2026-10-06 01:09:04 +08:00
2026-09-14 12:53:20 +08:00
2026-10-05 20:55:20 +08:00
2026-10-06 01:09:04 +08:00
2026-09-23 14:30:54 +08:00
2026-10-03 22:22:15 +08:00