萝卜
|
5ee3052280
|
feat(platform-orders): show bmpa success/failed summary and add bmpa_success_orders stat
|
2026-03-18 03:41:51 +08:00 |
|
萝卜
|
f585256536
|
feat(batch): add success governance links and filters for batch run review
|
2026-03-18 03:25:52 +08:00 |
|
萝卜
|
3ff16b3d28
|
Align dashboard BMPA quick link with bmpa_processable_only filter
|
2026-03-18 02:19:25 +08:00 |
|
萝卜
|
822ef71072
|
Fix refund_status filter to use refund total > 0; add test
|
2026-03-18 00:51:30 +08:00 |
|
萝卜
|
6a3b2f495e
|
governance: 仅标记为已生效对齐对账/退款安全阀并补齐护栏测试
|
2026-03-18 00:27:18 +08:00 |
|
萝卜
|
489032f04f
|
admin: 追加支付回执后重定向到追加回执面板锚点
|
2026-03-17 21:52:52 +08:00 |
|
萝卜
|
c8ef994ec8
|
admin: 追加退款回执后重定向到追加退款面板锚点
|
2026-03-17 21:49:21 +08:00 |
|
萝卜
|
2ea92cd6f1
|
admin: 回执追加后重定向回详情并保留 back + 锚点
|
2026-03-17 21:46:08 +08:00 |
|
萝卜
|
b754ecfa5f
|
feat(export): add reconcile/refund inconsistent flags to platform order CSV
|
2026-03-17 20:41:58 +08:00 |
|
萝卜
|
1725eae6b2
|
refactor(admin): 去重阻断warning返回改用AdminFlash::apply收敛with逻辑
|
2026-03-17 19:13:19 +08:00 |
|
萝卜
|
23476b0ac3
|
refactor(admin): AdminFlash增加apply并在批量动作成功提示复用
|
2026-03-17 19:11:07 +08:00 |
|
萝卜
|
3f471aa8db
|
refactor(admin): success flash payload提炼AdminFlash::success并复用
|
2026-03-17 18:56:14 +08:00 |
|
萝卜
|
ea70f24535
|
refactor(batch): 去重阻断warning组装提炼BatchDispatchWarning并加单测
|
2026-03-17 18:52:08 +08:00 |
|
萝卜
|
aefecd0cbe
|
refactor(run_id): 提炼RunId::short用于warning短展示并加单测
|
2026-03-17 18:43:25 +08:00 |
|
萝卜
|
ca3c10486a
|
refactor(batch): 重复投递阻断warning文案带出run_id短展示
|
2026-03-17 18:35:15 +08:00 |
|
萝卜
|
e937946011
|
feat(admin): 重复批量投递warning提供复制run_id按钮(复用copyToClipboard)
|
2026-03-17 18:32:50 +08:00 |
|
萝卜
|
7dd2e2e40a
|
feat(admin): warning flash支持可选链接并提示重复批量投递可直达上次复盘
|
2026-03-17 18:24:15 +08:00 |
|
萝卜
|
353ae1bcc2
|
feat(batch-mark-activated): 完成后success提示增加查看批量结果入口
|
2026-03-17 18:18:18 +08:00 |
|
萝卜
|
daa3857b57
|
feat(bmpa): 提交后success提示增加进入批次复盘链接
|
2026-03-17 18:13:03 +08:00 |
|
萝卜
|
5249af00b4
|
feat(admin): success flash支持可选链接并用于BAS批次复盘入口
|
2026-03-17 18:08:29 +08:00 |
|
萝卜
|
e1d5cee52e
|
feat(bas): dispatch阶段生成run_id并透传到job便于复盘
|
2026-03-17 18:04:14 +08:00 |
|
萝卜
|
592b1610f9
|
refactor: 批量任务投递去重锁提炼BatchDispatchLock
|
2026-03-17 15:30:55 +08:00 |
|
萝卜
|
c2e41917ed
|
BAS批量同步订阅:增加60秒去重锁(对齐BMPA)
|
2026-03-17 15:27:18 +08:00 |
|
萝卜
|
224176cea6
|
feat(bmpa): dedupe dispatch within 1 minute to avoid double submit
|
2026-03-17 15:14:09 +08:00 |
|
萝卜
|
95a52d3f49
|
feat(bmpa): queue batch mark paid and activate via job
|
2026-03-17 14:55:48 +08:00 |
|
萝卜
|
40ae678e03
|
feat(bmpa): write last_result summary for batch tracing
|
2026-03-17 14:29:26 +08:00 |
|
萝卜
|
a806ed9b1c
|
feat(platform-orders): add bmpa run_id filter for batch tracing
|
2026-03-17 14:11:35 +08:00 |
|
萝卜
|
0718090f49
|
feat(bmpa): write run_id and richer meta for batch mark paid and activate
|
2026-03-17 14:03:06 +08:00 |
|
萝卜
|
ab02e5ca6b
|
feat(platform-orders): filter batch activation by run_id
|
2026-03-17 13:10:46 +08:00 |
|
萝卜
|
e9ec968379
|
feat(platform-orders): queue batch activate subscriptions job
|
2026-03-17 12:40:21 +08:00 |
|
萝卜
|
d6d95a5cb0
|
refactor(billing): unify BMPA audit to use snapshot fields
|
2026-03-17 12:07:15 +08:00 |
|
萝卜
|
416ad3de68
|
feat(billing): audit add payment/refund receipts
|
2026-03-17 11:52:07 +08:00 |
|
萝卜
|
e24a3b031c
|
fix(platform-orders): refresh order after activation to keep subscription_activation meta
|
2026-03-17 10:32:16 +08:00 |
|
萝卜
|
df99fb00ed
|
refactor(platform-orders): created_at 快捷日期范围由 controller 注入
|
2026-03-17 06:43:58 +08:00 |
|
萝卜
|
2ac9c51ce4
|
chore(billing-ui): align renewal defaults and tighten sync error keyword links
|
2026-03-17 05:16:40 +08:00 |
|
萝卜
|
6cd8c34245
|
Governance: block batch BMPA when renewal missing subscription filter present
|
2026-03-17 01:40:51 +08:00 |
|
萝卜
|
89f79f5e90
|
Governance: block batch mark activated when renewal missing subscription filter present
|
2026-03-17 01:34:51 +08:00 |
|
萝卜
|
622c9be21e
|
Chore: remove duplicate refund_status guard in batchMarkActivated safety valves
|
2026-03-17 01:27:51 +08:00 |
|
萝卜
|
3cba715f01
|
Governance: block batch activate subscriptions when renewal missing subscription filter present
|
2026-03-17 01:24:47 +08:00 |
|
萝卜
|
0e8a9797b9
|
Governance: block clear sync errors when synced_only present
|
2026-03-17 00:13:19 +08:00 |
|
萝卜
|
98fa529d01
|
Governance: block clear BMPA errors when sync_status/synced_only present
|
2026-03-17 00:03:32 +08:00 |
|
萝卜
|
18ea639583
|
chore(governance): block batch mark activated when refund_status=has
|
2026-03-16 23:35:39 +08:00 |
|
萝卜
|
485a8a639d
|
chore(governance): block batch BMPA when refund_status=has
|
2026-03-16 23:33:10 +08:00 |
|
萝卜
|
9dc281f48e
|
chore(governance): block batch mark activated when receipt none/refund has
|
2026-03-16 23:26:29 +08:00 |
|
萝卜
|
75d64195d6
|
chore(governance): block batch mark activated when reconcile/refund inconsistent
|
2026-03-16 23:16:25 +08:00 |
|
萝卜
|
a26be5de9e
|
chore(governance): block batch activate when refund_status=has
|
2026-03-16 23:03:38 +08:00 |
|
萝卜
|
8063b8ae9d
|
chore(governance): block batch activate when syncable_only conflicts with synced_only
|
2026-03-16 23:00:27 +08:00 |
|
萝卜
|
d68d0523b1
|
chore(governance): block batch BMPA when sync-governance filters present
|
2026-03-16 22:54:19 +08:00 |
|
萝卜
|
314563a8d5
|
chore(governance): block batch mark activated when filters conflict
|
2026-03-16 21:46:08 +08:00 |
|
萝卜
|
968cba3c08
|
chore(governance): guard clear bmpa errors when filters not bmpa scope
|
2026-03-16 21:30:51 +08:00 |
|