萝卜
|
dbb88f59f6
|
chore(governance): batch mark activated requires unsynced scope
|
2026-03-16 19:04:40 +08:00 |
|
萝卜
|
98004a0a1c
|
feat(admin-dashboard): recent platform orders show merchant and plan meta
|
2026-03-16 16:19:36 +08:00 |
|
萝卜
|
a9f1185f84
|
feat(admin-dashboard): clarify plan share top5 meta with total and coverage
|
2026-03-16 13:49:56 +08:00 |
|
萝卜
|
a9d2d5e749
|
refactor(admin-platform-order): centralize tool guard reasons
|
2026-03-16 13:28:14 +08:00 |
|
萝卜
|
94e55d9ac2
|
fix(admin-dashboard): scope plan share to last 7 days
|
2026-03-16 10:58:54 +08:00 |
|
萝卜
|
7f331faf04
|
chore(admin-ui): add admin pagination template and styles
|
2026-03-16 01:55:22 +08:00 |
|
萝卜
|
0a58204799
|
platform orders: add created_at range filter (created_from/to)
|
2026-03-16 00:30:09 +08:00 |
|
萝卜
|
56ad502aac
|
dashboard: add quick links for reconcile mismatch and refund inconsistent
|
2026-03-15 23:50:07 +08:00 |
|
萝卜
|
27753acb71
|
dashboard: add quick links for BMPA failed and paid-no-receipt orders
|
2026-03-15 23:43:39 +08:00 |
|
萝卜
|
e92636dd5b
|
feat: dashboard merchant revenue rank top5 7d
|
2026-03-15 23:08:29 +08:00 |
|
萝卜
|
b1e20c5138
|
feat: dashboard add platform order trend 7d
|
2026-03-15 22:56:22 +08:00 |
|
萝卜
|
3484402ea8
|
fix: system_configs autoload 在 DB 不可用时不阻断启动
|
2026-03-15 20:08:46 +08:00 |
|
萝卜
|
452ac450c8
|
feat(admin): 仪表盘可同步入口显示计数(口径对齐平台订单)
|
2026-03-15 19:53:24 +08:00 |
|
萝卜
|
0a5b86ac55
|
fix(admin): 仪表盘待生效计数排除同步失败(口径更清晰)
|
2026-03-15 19:46:56 +08:00 |
|
萝卜
|
dc7b7b395c
|
feat(admin): 仪表盘补齐订阅到期治理入口(7天内到期/已过期)
|
2026-03-15 19:34:32 +08:00 |
|
萝卜
|
b7471026ef
|
feat(admin): 仪表盘收费工作台补齐续费缺订阅快捷入口
|
2026-03-15 19:29:26 +08:00 |
|
萝卜
|
2f0c3ca11b
|
feat(admin): 仪表盘 KPI 聚焦收费主链(套餐/订阅/平台订单)
|
2026-03-15 19:23:31 +08:00 |
|
萝卜
|
a47d91df96
|
feat(admin): 仪表盘占比卡接入套餐订单占比(Top5)
|
2026-03-15 18:57:48 +08:00 |
|
萝卜
|
257b532757
|
feat(admin): 仪表盘接入最近平台订单列表(收费闭环入口)
|
2026-03-15 18:51:59 +08:00 |
|
萝卜
|
7dd508e84d
|
feat(admin): 绑定订阅后回跳提示增强(attached_subscription + 滚动)
|
2026-03-15 17:23:58 +08:00 |
|
萝卜
|
973576f045
|
feat(admin): 订阅列表支持一键绑定到订单(续费缺订阅治理)
|
2026-03-15 17:09:11 +08:00 |
|
萝卜
|
8e18a77f19
|
feat(admin): 续费订单支持手工绑定订阅(attach-subscription)+ 时区改为 Asia/Shanghai
|
2026-03-15 16:58:04 +08:00 |
|
萝卜
|
62d7a81df3
|
feat(admin): 客服中心工单骨架(模型/迁移/路由/菜单/页面)
|
2026-03-15 08:44:02 +00:00 |
|
萝卜
|
f6bb29f046
|
fix(admin): 各平台订单工具动作支持 renewal_missing_subscription 筛选透传
|
2026-03-15 07:10:05 +00:00 |
|
萝卜
|
9afe8c135d
|
platform orders: batch mark activated guard renewal missing subscription
|
2026-03-15 06:39:22 +00:00 |
|
萝卜
|
efc2a8a423
|
platform orders: mark activated guard for renewal missing subscription
|
2026-03-15 06:34:18 +00:00 |
|
萝卜
|
2d67c167ed
|
platform orders: add renewal missing subscription governance card
|
2026-03-15 06:14:52 +00:00 |
|
萝卜
|
b940c0172d
|
platform orders: syncable summary excludes renewal missing subscription
|
2026-03-15 05:52:21 +00:00 |
|
萝卜
|
4b1f661561
|
platform orders: syncable_only filter excludes renewal missing subscription
|
2026-03-15 05:47:00 +00:00 |
|
萝卜
|
a4c36ab868
|
platform orders: batch activate guard renewal missing subscription
|
2026-03-15 05:44:09 +00:00 |
|
萝卜
|
5ca76b7620
|
platform orders: activate subscription guard for renewal missing subscription
|
2026-03-15 05:18:46 +00:00 |
|
萝卜
|
a50cd0675e
|
批量BMPA 安全阀:续费单未绑订阅不允许推进并新增测试
|
2026-03-15 04:56:18 +00:00 |
|
萝卜
|
d34578452c
|
BackUrl::sanitizeForLinks 增加长度安全阀(>2000 拒绝)并补单测
|
2026-03-15 04:45:04 +00:00 |
|
萝卜
|
c4c91ebf14
|
标记支付并生效:续费单必须绑定订阅(安全阀)并新增测试
|
2026-03-15 04:42:37 +00:00 |
|
萝卜
|
0126a5aed7
|
BackUrl::sanitizeForLinks 增强:拒绝协议相对 URL(//evil.com)并补单测
|
2026-03-15 04:18:54 +00:00 |
|
萝卜
|
cbc05e59b7
|
BackUrl::sanitizeForLinks 增强:拒绝控制字符与 CRLF 注入 并补单测
|
2026-03-15 04:17:10 +00:00 |
|
萝卜
|
e86257e866
|
BackUrl::sanitizeForLinks 加强:拒绝二次编码 back%3D 绕过 并补单测
|
2026-03-15 04:11:42 +00:00 |
|
萝卜
|
54f356f52d
|
平台订单创建页:require_subscription 支持回填并透传 hidden input(校验失败后仍保持治理口径)
|
2026-03-15 04:03:56 +00:00 |
|
萝卜
|
2400398dcb
|
PlatformOrder create: force renewal type when subscription context present
|
2026-03-15 03:14:19 +00:00 |
|
萝卜
|
1c5827fd85
|
PlatformOrder store: guard renewal must match subscription merchant/plan
|
2026-03-15 02:59:58 +00:00 |
|
萝卜
|
09c8aeca2a
|
SubscriptionActivationService: guard against merchant mismatch
|
2026-03-15 02:56:31 +00:00 |
|
萝卜
|
3182dd72a0
|
PlatformOrder create: require_subscription flag narrows order types
|
2026-03-15 02:36:27 +00:00 |
|
萝卜
|
41463407aa
|
Expiry governance: nudge renewal requires subscription context
|
2026-03-15 02:23:19 +00:00 |
|
萝卜
|
e66ac765e0
|
PlatformOrder create: default order_type to renewal when from subscription
|
2026-03-15 02:15:48 +00:00 |
|
萝卜
|
bdea18c976
|
PlatformOrder store: require subscription for renewal orders
|
2026-03-15 02:03:04 +00:00 |
|
萝卜
|
6bb3c843dd
|
PlatformOrder views: use model orderTypeLabel mapping
|
2026-03-15 01:43:50 +00:00 |
|
萝卜
|
c81c5a1f39
|
PlatformOrder: add orderTypeLabel helper
|
2026-03-15 01:40:09 +00:00 |
|
萝卜
|
4773c2a8c7
|
PlatformOrder show: render order_type label with code
|
2026-03-15 01:29:09 +00:00 |
|
萝卜
|
9a38fa84f3
|
PlatformOrder create: default renewal remark from subscription
|
2026-03-15 01:21:50 +00:00 |
|
萝卜
|
652d4134f7
|
PlatformOrder create: autofill merchant/plan from subscription defaults
|
2026-03-15 01:13:56 +00:00 |
|