116 lines
2.9 KiB
Markdown
116 lines
2.9 KiB
Markdown
|
|
# 资金充值/提现流程验证报告
|
|||
|
|
|
|||
|
|
## ✅ Phase 1: 代码审查完成
|
|||
|
|
|
|||
|
|
**审查时间**: 2026-03-23 21:25
|
|||
|
|
**结果**: 所有核心功能已实现
|
|||
|
|
|
|||
|
|
### 📊 功能清单
|
|||
|
|
|
|||
|
|
#### 后端(FundService.java)
|
|||
|
|
- ✅ 充值申请(关联默认冷钱包)
|
|||
|
|
- ✅ 充值订单创建(status=1)
|
|||
|
|
- ✅ 用户确认打款(status → 2)
|
|||
|
|
- ✅ 管理员审批(通过/驳回)
|
|||
|
|
- ✅ 审批通过后资金入账
|
|||
|
|
- ✅ 审批驳回后记录原因
|
|||
|
|
|
|||
|
|
- ✅ 提现申请(冻结资金)
|
|||
|
|
- ✅ 提现订单创建(status=1)
|
|||
|
|
- ✅ 管理员审批(通过/驳回)
|
|||
|
|
- ✅ 审批通过后扣除冻结资金
|
|||
|
|
- ✅ 审批驳回后解冻资金退还
|
|||
|
|
|
|||
|
|
- ✅ 待审批订单查询
|
|||
|
|
- ✅ 所有订单查询
|
|||
|
|
|
|||
|
|
- ✅ 订单详情查询
|
|||
|
|
|
|||
|
|
#### 管理后台{monisuo-admin}
|
|||
|
|
- ✅ 冷钱包配置页面(wallets.vue)
|
|||
|
|
- ✅ 添加钱包
|
|||
|
|
- ✅ 编辑钱包
|
|||
|
|
- ✅ 删除钱包
|
|||
|
|
- ✅ 设置默认
|
|||
|
|
- ✅ 切换状态
|
|||
|
|
|
|||
|
|
- ✅ 订单审批页面{orders.vue}
|
|||
|
|
- ✅ 待审批订单列表
|
|||
|
|
- ✅ 所有订单列表
|
|||
|
|
- ✅ 订单详情查看
|
|||
|
|
- ✅ 审批通过
|
|||
|
|
- ✅ 审批驳回(填写原因)
|
|||
|
|
|
|||
|
|
- ✅ 资金总览统计
|
|||
|
|
|
|||
|
|
#### 用户端{flutter_monisuo}
|
|||
|
|
- ✅ 资产页面充值功能(asset_page.dart)
|
|||
|
|
- ✅ 充值金额输入
|
|||
|
|
- ✅ 显示钱包地址
|
|||
|
|
- ✅ 用户确认打款
|
|||
|
|
- ✅ 订单状态显示
|
|||
|
|
- ✅ 取消订单
|
|||
|
|
- ✅ 充提记录列表(fund_orders_page.dart)
|
|||
|
|
- ✅ 订单列表展示
|
|||
|
|
- ✅ 订单详情查看
|
|||
|
|
- ✅ 状态流转显示
|
|||
|
|
- ✅ 取消订单
|
|||
|
|
|
|||
|
|
- ✅ 确认打款按钮
|
|||
|
|
- ✅ 取消订单按钮
|
|||
|
|
|
|||
|
|
#### 数据库
|
|||
|
|
- ✅ cold_wallet 表已创建
|
|||
|
|
- ✅ order_fund 表字段完整
|
|||
|
|
- ✅ account_fund 资金账户表
|
|||
|
|
- ✅ account_flow 资金流水表
|
|||
|
|
|
|||
|
|
### ❌ 发现的问题
|
|||
|
|
|
|||
|
|
#### 1. 提现逻辑问题
|
|||
|
|
**问题**: 提现时没有检查**交易账户余额**
|
|||
|
|
|
|||
|
|
**影响**: 用户可能提现交易账户的钱
|
|||
|
|
|
|||
|
|
**严重性**: 🟡 中等
|
|||
|
|
|
|||
|
|
**位置**: `FundService.withdraw()` 第83-85行
|
|||
|
|
|
|||
|
|
```java
|
|||
|
|
// 检查并冻结余额
|
|||
|
|
AccountFund fund = assetService.getOrCreateFundAccount(userId);
|
|||
|
|
if (fund.getBalance().compareTo(amount) < 0) {
|
|||
|
|
throw new RuntimeException("资金账户余额不足");
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**问题**:
|
|||
|
|
1. 只检查了资金账户余额
|
|||
|
|
2. 没有检查交易账户余额
|
|||
|
|
|
|||
|
|
3. 如果用户交易账户有钱,提现应该从哪里来?
|
|||
|
|
|
|||
|
|
**修复建议**:
|
|||
|
|
- 方式A: 添加交易账户余额检查和提示
|
|||
|
|
- 方式B: 只允许提现资金账户的钱
|
|||
|
|
- 方式C: 提现前需要将交易账户的资金划转到资金账户
|
|||
|
|
|
|||
|
|
#### 2. 管理后台缺失功能
|
|||
|
|
**问题**: 没有看到用户端订单管理页面
|
|||
|
|
|
|||
|
|
**影响**: 用户无法查看自己的订单历史
|
|||
|
|
|
|||
|
|
**修复建议**: 添加订单管理菜单
|
|||
|
|
|
|||
|
|
- 用户端订单列表页面
|
|||
|
|
- 订单详情弹窗
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 🔧 修复计划
|
|||
|
|
|
|||
|
|
### 修复 1: 提现余额检查
|
|||
|
|
### 修复 2: 用户端订单管理
|
|||
|
|
### 修复 3: 交易账户提示
|
|||
|
|
### 修复 4: 测试验证
|