guke
e11f506e1e
docs: 提现允许在途时继续提交申请 设计spec (#173)
## 摘要
取消「同一用户同时仅一笔在途提现」限制:已有 reviewing/pending 提现单时可继续发起新申请。
- 删应用层在途单检查(WithdrawTooFrequentError)+ 删 DB 分区唯一索引 ux_withdraw_order_user_active(含迁移)
- 清理失效死代码;IntegrityError 兜底瘦身为仅处理 out_bill_no 幂等
- 既有约束不变:建单先扣款(防超提)、coin_cash 每日档位次数、out_bill_no 幂等、解绑退款、admin 审核/对账均按单号维度
## 测试
- 新增:多笔在途并存放行(coin_cash & invite_cash)、第二笔仅受余额约束(409 现金余额不足)
- 迁移 upgrade→downgrade→upgrade 回环验证
- 提现域全绿(test_withdraw / test_invite_cash_withdraw / test_withdraw_ledger_check)
## 注意
- 客户端:每次提交需生成新的 out_bill_no;未开免确认时多笔 pending 各返回一个微信确认页,App 需能处理多笔待确认
- 无并发硬上限(产品拍板):coin_cash 由每日档位次数天然封顶,invite_cash 仅受余额约束
---------
Co-authored-by: guke <guke@autohome.com.cn>
Reviewed-on: #173
2026-07-24 16:40:57 +08:00
..
2026-05-23 17:37:18 +08:00
2026-06-08 05:54:55 +08:00
2026-07-22 15:42:25 +08:00
2026-06-23 17:58:30 +08:00
2026-06-27 03:06:53 +08:00
2026-06-02 09:53:25 +08:00
2026-07-23 17:55:35 +08:00
2026-06-10 22:49:33 +08:00
2026-06-08 00:16:25 +08:00
2026-07-09 17:31:24 +08:00
2026-07-18 19:11:45 +08:00
2026-07-01 20:21:34 +08:00
2026-06-26 23:33:31 +08:00
2026-06-06 00:42:39 +08:00
2026-06-16 01:39:05 +08:00
2026-06-10 02:28:56 +08:00
2026-06-01 22:23:15 +08:00
2026-07-11 13:47:12 +08:00
2026-06-09 01:56:47 +08:00
2026-06-23 17:33:38 +08:00
2026-06-29 09:54:13 +08:00
2026-06-15 23:13:14 +08:00
2026-07-22 10:53:21 +08:00
2026-05-27 21:04:03 +08:00
2026-06-21 00:16:40 +08:00
2026-07-05 09:46:19 +08:00
2026-06-04 03:02:41 +08:00
2026-07-09 01:09:03 +08:00
2026-07-05 09:46:19 +08:00
2026-07-21 13:52:40 +08:00
2026-06-06 04:13:08 +08:00
2026-06-17 10:00:29 +08:00
2026-06-06 00:42:39 +08:00
2026-06-24 20:50:21 +08:00
2026-06-26 23:56:29 +08:00
2026-05-27 21:04:03 +08:00
2026-06-21 00:16:40 +08:00
2026-06-07 23:17:27 +08:00
2026-06-09 01:56:47 +08:00
2026-06-13 03:53:43 +08:00
2026-06-17 22:33:33 +08:00
2026-07-13 17:46:11 +08:00
2026-06-01 22:23:15 +08:00
2026-07-05 09:46:19 +08:00
2026-06-01 22:23:15 +08:00
2026-06-01 22:23:15 +08:00
2026-07-04 02:39:12 +08:00
2026-06-10 22:26:51 +08:00
2026-06-23 17:24:54 +08:00
2026-07-22 17:18:26 +08:00
2026-07-09 17:31:48 +08:00
2026-07-24 15:12:20 +08:00
2026-06-10 16:07:33 +08:00
2026-06-14 23:41:54 +08:00
2026-06-30 22:59:36 +08:00
2026-07-09 17:31:48 +08:00
2026-06-30 22:59:36 +08:00
2026-06-30 22:59:36 +08:00
2026-06-08 03:20:51 +08:00
2026-06-17 21:32:10 +08:00
2026-06-17 10:00:29 +08:00
2026-06-17 10:00:29 +08:00
2026-06-25 17:47:30 +08:00
2026-06-19 11:44:11 +08:00
2026-06-10 22:26:51 +08:00
2026-06-15 23:13:14 +08:00
2026-07-24 14:48:40 +08:00
2026-07-24 14:48:40 +08:00
2026-06-26 15:28:16 +08:00
2026-06-23 17:33:38 +08:00
2026-06-23 17:33:38 +08:00
2026-07-22 15:42:25 +08:00
2026-07-22 10:53:21 +08:00
2026-06-12 00:51:47 +08:00
2026-07-24 16:40:57 +08:00
2026-06-06 04:13:08 +08:00
2026-05-29 15:20:22 +08:00
2026-06-10 15:43:54 +08:00
2026-05-30 18:13:11 +08:00
2026-06-22 23:18:42 +08:00
2026-06-29 23:11:30 +08:00
2026-05-28 22:27:36 +08:00
2026-07-02 19:50:14 +08:00
2026-07-24 14:48:40 +08:00
2026-07-24 14:48:40 +08:00
2026-05-27 21:04:03 +08:00
2026-06-27 02:58:29 +08:00
2026-06-08 04:57:55 +08:00
2026-06-09 21:48:48 +08:00
2026-06-30 21:56:58 +08:00
2026-06-20 13:39:45 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-07-24 14:48:40 +08:00
2026-06-23 21:09:10 +08:00
2026-06-08 00:16:25 +08:00
2026-07-18 19:11:45 +08:00
2026-06-09 18:10:58 +08:00
2026-07-09 17:31:48 +08:00
2026-07-10 19:23:12 +08:00
2026-07-22 10:53:21 +08:00
2026-07-22 17:22:09 +08:00
2026-07-22 15:42:25 +08:00
2026-06-10 18:32:51 +08:00
2026-06-07 23:17:27 +08:00
2026-07-17 21:49:10 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 23:17:27 +08:00
2026-06-07 03:31:35 +08:00
2026-05-27 21:04:03 +08:00
2026-06-01 21:29:52 +08:00
2026-05-27 21:04:03 +08:00
2026-06-14 01:24:29 +08:00
2026-06-16 01:25:57 +08:00
2026-06-14 01:24:29 +08:00
2026-06-14 01:24:29 +08:00
2026-06-15 18:07:32 +08:00
2026-05-27 21:04:03 +08:00
2026-06-10 22:27:06 +08:00
2026-05-27 21:04:03 +08:00
2026-06-06 18:52:42 +08:00
2026-05-27 21:04:03 +08:00
2026-05-27 21:04:03 +08:00
2026-06-06 04:51:50 +08:00
2026-06-09 01:56:37 +08:00