实现特殊扣减功能,允许管理员为用户创建扣减待办操作,由用户在移动端确认执行。 ## 后端 (wallet-service) ### 领域层 - 新增 `SPECIAL_DEDUCTION` 到 LedgerEntryType 枚举 用于记录特殊扣减的账本流水类型 ### 应用层 - 新增 `executeSpecialDeduction` 方法 - 验证用户钱包存在性 - 检查余额是否充足 - 乐观锁控制并发 - 扣减余额并记录账本流水 - 返回操作结果和新余额 ### API层 - 新增内部API: POST /api/v1/wallets/special-deduction/execute 供移动端调用执行特殊扣减操作 ## 前端 (admin-web) ### 类型定义 - 新增 `SPECIAL_DEDUCTION` 到 ACTION_CODES - 新增 `SpecialDeductionParams` 接口定义扣减参数 - amount: 扣减金额 - reason: 扣减原因 ### 页面 - 更新待办操作管理页面 - 当选择 SPECIAL_DEDUCTION 时显示扣减金额和原因输入框 - 验证扣减金额必须大于0 - 验证扣减原因不能为空 ### 样式 - 新增特殊扣减表单区域样式 ## 前端 (mobile-app) ### 服务层 - 新增 `executeSpecialDeduction` 方法到 WalletService - 新增 `SpecialDeductionResult` 结果类 - 新增 `specialDeduction` 到 PendingActionCode 枚举 ### 页面 - 新增 `SpecialDeductionPage` 特殊扣减确认页面 - 显示扣减金额和管理员备注 - 显示当前余额和扣减后余额 - 余额不足时禁用确认按钮 - 温馨提示说明操作性质 - 更新 `PendingActionsPage` - 处理 SPECIAL_DEDUCTION 类型的待办操作 - 从 actionParams 解析 amount 和 reason - 导航到特殊扣减确认页面 ## 工作流程 1. 管理员在 admin-web 创建 SPECIAL_DEDUCTION 待办操作 - 选择目标用户 - 输入扣减金额 - 输入扣减原因 2. 用户在 mobile-app 待办操作列表看到该操作 3. 用户点击后进入特殊扣减确认页面 - 查看扣减详情 - 确认余额充足 - 点击确认执行扣减 4. 后端执行扣减并记录账本流水 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| docs | ||
| prisma | ||
| src | ||
| test | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| deploy.sh | ||
| nest-cli.json | ||
| package.json | ||
| tsconfig.build.json | ||
| tsconfig.json | ||