feeeei
57b7dbdc85
feat(affiliate): 提取记录支持登记线下提现
管理员在站外给邀请人打款后,系统里原本无法扣减对应的返利额度,用户仍可把
这部分额度转入余额。现在可在「邀请返利 → 提取记录」点「登记线下提现」,
从该用户的可提取返利额度中扣除已打款金额:
- POST /api/v1/admin/affiliates/users/:user_id/withdraw,请求体只含 amount,
金额按 8 位小数舍入后校验
- 先解冻已到期的冻结额度,再以 aff_quota >= amount 为条件原子扣减,写入
action=withdraw 的流水并带额度快照;额度不足返回 AFFILIATE_QUOTA_INSUFFICIENT
- 不新增字段与迁移:线下提现复用已有 action 列区分,操作人由管理端审计日志记录
- 提取记录同时列出转入余额与线下提现,新增「类型」列
- 弹窗选择用户后展示可提取额度,支持一键填入全部;从未产生返利的用户按 0 处理
返利记录改为 LEFT JOIN 订单与被邀请人,兑换码、管理员充值来源的返利也会出现
在明细中,接口里订单相关字段与被邀请人 ID 可为 null。
2026-09-17 23:42:02 +08:00
..
2026-09-17 23:42:02 +08:00
2026-09-11 16:34:46 +08:00
2026-08-09 22:42:51 +08:00
2026-08-09 22:42:51 +08:00
2026-08-06 20:34:37 +08:00
2026-09-05 16:05:17 +08:00
2026-08-04 20:57:15 +08:00
2026-09-17 23:42:02 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 20:57:15 +08:00
2026-08-04 20:57:15 +08:00
2026-08-09 15:53:40 +08:00
2026-08-07 03:09:57 +08:00
2026-08-24 12:02:53 +08:00
2026-07-28 17:21:32 +08:00
2026-08-04 20:57:15 +08:00
2026-09-07 10:11:07 +08:00
2026-09-07 10:11:07 +08:00
2026-09-05 16:05:17 +08:00
2026-08-18 04:14:15 +00:00
2026-08-30 09:28:40 +08:00
2026-08-30 09:28:40 +08:00
2026-09-08 18:50:06 +08:00
2026-09-02 20:16:57 +08:00
2026-09-03 12:48:02 +08:00
2026-09-03 12:48:02 +08:00
2026-09-11 10:05:24 +08:00
2026-09-11 10:05:24 +08:00
2026-08-01 22:39:33 +08:00
2026-08-20 18:16:38 -07:00
2026-08-20 18:16:38 -07:00
2026-08-25 15:10:52 +08:00
2026-07-27 15:20:03 +00:00
2026-09-03 12:48:02 +08:00
2026-07-27 15:20:03 +00:00
2026-09-11 16:42:05 +08:00
2026-09-08 19:12:37 +08:00
2026-09-08 19:12:37 +08:00
2026-09-15 16:50:46 +08:00
2026-09-10 15:57:17 +08:00
2026-09-10 22:10:29 +08:00
2026-08-13 07:49:19 +08:00
2026-09-15 16:50:46 +08:00
2026-09-15 16:50:46 +08:00
2026-09-15 16:50:46 +08:00
2026-08-13 08:38:10 +08:00
2026-08-20 09:50:23 -07:00
2026-09-05 20:25:08 +08:00
2026-08-07 16:29:57 +08:00
2026-09-05 20:25:08 +08:00
2026-08-24 09:03:37 +08:00
2026-09-08 13:37:53 +08:00
2026-09-08 13:37:53 +08:00
2026-09-01 15:18:30 +08:00
2026-09-01 15:18:30 +08:00
2026-08-19 23:13:40 -07:00
2026-09-09 12:48:57 +08:00
2026-09-03 10:51:12 +08:00
2026-08-31 21:04:29 +08:00
2026-09-07 19:44:03 +08:00
2026-09-05 19:58:47 +08:00
2026-09-03 11:39:23 +08:00
2026-09-03 10:51:12 +08:00
2026-09-11 15:39:13 +08:00
2026-08-14 18:18:53 +08:00
2026-08-14 18:18:53 +08:00
2026-08-20 22:01:20 -07:00
2026-09-06 20:38:17 +08:00
2026-09-05 15:32:29 +08:00
2026-09-08 20:42:45 +08:00
2026-09-11 16:42:05 +08:00
2026-08-19 18:51:21 +08:00
2026-09-05 16:05:17 +08:00
2026-09-11 15:57:09 +08:00
2026-08-20 18:16:38 -07:00
2026-08-19 04:40:32 +00:00
2026-08-19 04:40:32 +00:00
2026-09-07 18:33:39 +08:00
2026-09-10 15:57:17 +08:00
2026-08-14 16:23:52 +08:00
2026-08-01 22:39:33 +08:00
2026-09-07 17:58:20 +08:00
2026-08-20 22:01:20 -07:00
2026-09-04 10:14:29 +08:00
2026-08-28 13:17:43 +08:00
2026-08-17 19:45:07 +08:00
2026-08-27 21:50:53 +08:00
2026-08-13 08:37:57 +08:00
2026-08-13 08:37:57 +08:00
2026-08-20 22:01:20 -07:00
2026-09-10 02:59:15 +08:00
2026-09-10 02:59:15 +08:00
2026-08-19 23:13:40 -07:00
2026-08-04 15:09:29 +08:00
2026-08-04 20:57:15 +08:00
2026-09-16 13:19:15 +08:00
2026-09-16 13:19:15 +08:00
2026-08-19 09:03:37 -07:00
2026-08-19 09:03:37 -07:00
2026-08-11 11:56:46 +08:00
2026-08-11 11:56:46 +08:00
2026-08-06 20:34:37 +08:00
2026-09-11 00:50:17 +08:00
2026-09-14 11:45:53 +08:00
2026-09-14 11:45:53 +08:00
2026-08-28 23:32:11 +08:00
2026-08-28 23:32:11 +08:00
2026-08-07 17:58:23 +08:00
2026-08-01 11:29:58 +08:00
2026-07-28 17:21:32 +08:00
2026-08-19 23:13:40 -07:00
2026-09-06 08:10:41 +08:00