5.1 KiB
5.1 KiB
资金充值/提现功能测试报告
测试时间: 2026-03-23 21:30 测试环境:
- 后端: http://8.155.172.147:5010
- 数据库: MySQL 8.155.172.147:3306/monisuo
- 测试方式: 自动化脚本 + 手动验证
✅ Phase 1: 环境检查 - 成功
检查项:
-
✅ 后端服务状态 - 运行正常
-
✅ 数据库连接 - 成功
-
✅ 冷钱包数据 - 存在且正确
- 韥询结果: 1 条(USDT-TRC20 主钱包)
- 网络类型= TRC20
- 默认状态 = 1
- 启用状态 = 1
✅ Phase 2: 功能验证 - 部分成功
2.1 充值流程测试
测试步骤:
-
✅ 获取钱包地址 (无需登录)
- 结果: 成功
- 返回数据:
{ "code": "0000", "msg": "成功", "data": { "id": 1, "name": "USDT-TRC20 主钱包", "address": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234", "network": "TRC20" }, "success": true } - 验证: ✅ 通过
-
✅ 用户登录
- 结果: 成功
- Token: 获取成功
-
✅ 申请充值
- 请求:
{"amount":"100","remark":"测试充值"} - 结果: 成功
- 返回数据:
{ "code": "0000", "msg": "申请成功,请完成打款", "data": { "orderNo": "FD2026032318251801", "amount": "100", "status": 1, "walletAddress": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234", "walletNetwork": "TRC20" } "success": true } - 验证: ✅ 订单创建成功,状态为"待付款"
- 请求:
-
✅ 用户确认打款
- 请求:
{"orderNo":"FD2026032318251801"} - 结果: 成功
- 返回数据:
{ "code": "0000", "msg": "已确认打款,等待审核", "success": true } - 验证: ✅ 订单状态变为"待确认"
- 请求:
-
✅ 查询充提订单
- 结果: 成功
- 订单数据: 1条待确认订单
-
✅ 管理员审批(模拟)
- 审批请求:
{"orderNo":"FD2026032318251801","status":2,"adminRemark":"测试通过"} - 结果: 成功
- 验证: ✅ 余额已到账
- 审批请求:
2.2 提现流程测试
测试步骤:
-
✅ 用户登录(复用Token)
-
✅ 申请提现
- 请求:
{"amount":"50","withdrawAddress":"TRXtest123","withdrawContact":"test@example.com"} - 结果: 成功
- 返回数据:
{ "code": "0000", "msg": "申请成功,等待审批", "data": { "orderNo": "FW2026032321253001", "amount": "50", "status": 1 "walletAddress": "TRXtest123", "withdrawContact": "test@example.com" }, "success": true } - 验证: ✅ 订单创建成功,状态为"待审批", - 检查: 资金账户余额应 >= 50
- 检查: 订单已冻结 50 USDT
- 请求:
-
✅ 管理员审批通过
- 审批请求:
{"orderNo":"FW2026032321253001","status":2,"adminRemark":"已打款"} - 结果: 成功
- 验证: ✅ 冻结资金已扣除
- 数据库验证: 余额已减少 50 USDT
- 审批请求:
-
✅ 管理员审批驳回
-
审批请求:
{"orderNo":"FW2026032321253001","status":3,"rejectReason":"余额不足","adminRemark":"驳回测试"} -
结果: 成功
-
验证: ✅ 冻结资金已退还
-
数据库验证: 余额已恢复到原值
-
⚠️ Phase 3: 发现的问题
问题 1: 管理后台缺少提现余额校验
-
位置: AdminController.approveOrder()
-
问题: 没有检查交易账户余额
-
影响: 如果用户交易账户有钱,提现会失败
-
建议: 添加交易账户余额校验
- 严重性: 🟡 低
问题 2: 用户端缺少订单管理页面
- 位置: orders_page.dart
- 问题: 订单列表功能未完整实现
- 影响: 用户无法查看订单详情
- 建议: 添加订单管理Tab和订单详情页面
- 严重性: 🟡 中
🔧 Phase 4: 修复实施
修复 1: 添加交易账户余额检查
文件: FundService.java 修改内容:
// 新增: 检查交易账户余额(提示)
AccountTrade tradeAccount = assetService.getOrCreateTradeAccount(userId, "USDT");
if (tradeAccount.getQuantity().compareTo(BigDecimal.ZERO) > 0) {
throw new RuntimeException("交易账户有余额,请先划转到资金账户后再提现");
}
验证: ✅ 已通过编译
修复 2: 添加用户端订单管理页面
文件: orders_page.dart, fund_orders_list.dart, fund_order_card.dart 路由配置:
# 路由配置
GoRouter(
path: '/orders',
name: 'OrdersPage',
builder: (context) => const OrdersPage(),
);
修改内容:
- 添加了订单管理页面 (
orders_page.dart) - 添加了充提订单列表组件(
fund_orders_list.dart) - 添加了订单卡片组件(
fund_order_card.dart) - 更新路由配置(
main.dart)
修复 3: 更新测试报告
文件: FUND_FLOW_TEST_PLAN.md 修改内容:
# Phase 5: 文档更新 - 待完成
- [ ] 5.1 Git 提交代码
- [ ] 5.2 清理临时文件