Commit Graph

231 Commits

Author SHA1 Message Date
萝卜
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
萝卜
6c5705443d Site subscriptions: add status toggle action on index 2026-03-14 23:34:31 +00:00
萝卜
bfd8f7784c Plans: add publish toggle action and UI 2026-03-14 23:21:59 +00:00
萝卜
69edd4261d Plans: unify back sanitize via BackUrl helper 2026-03-14 22:52:48 +00:00
萝卜
2d824d29dd PlatformOrders: unify back sanitize via BackUrl 2026-03-14 22:45:46 +00:00
萝卜
ffc88feede fix(backurl): avoid double fragment in withBackFirstAndFragment 2026-03-14 21:51:17 +00:00
萝卜
ee85e63340 fix(backurl): avoid double fragment when using withBackAndFragment 2026-03-14 21:33:32 +00:00
萝卜
4e741b92a1 security(backurl): re-sanitize back inside helpers 2026-03-14 21:27:52 +00:00
萝卜
e854d94578 feat(backurl): preserve existing fragment when appending back 2026-03-14 21:20:26 +00:00
萝卜
84e860e403 fix(backurl): avoid duplicating back query when already present 2026-03-14 21:17:02 +00:00
萝卜
9107d4af4a fix(backurl): stabilize query append and support back-first links 2026-03-14 21:02:25 +00:00
萝卜
1b6476f2a4 refactor(back): add withBackAndFragment helper and use on platform_orders index 2026-03-14 19:06:32 +00:00
萝卜
956e177544 refactor: BackUrl::selfWithoutBack 统一 selfWithoutBack 构造并修复 currentQuery 依赖 2026-03-14 18:52:28 +00:00
萝卜
b759a87a57 refactor: BackUrl::withBack 统一 allUrl 生成(清空筛选但保留 back) 2026-03-14 18:46:18 +00:00
萝卜
0f8bc04020 refactor: BackUrl 增加 currentPathQuickFilter 并复用到收费闭环列表页 2026-03-14 18:37:47 +00:00
萝卜
7632b1d215 refactor: BackUrl 增加 currentPathWithQuery 并复用到订单列表 2026-03-14 18:25:35 +00:00
萝卜
3ffc87f78c refactor: 抽出 BackUrl::sanitizeForLinks 统一 back 安全护栏 2026-03-14 18:23:00 +00:00