Files
monisuo/test_fund_flow_report.md
sion 5c8df495c3 fix: 完善资金充值/提现逻辑
- 添加交易账户余额检查
- 添加用户端订单管理页面
- 更新测试报告
2026-03-23 21:25:37 +08:00

5.1 KiB
Raw Blame History

资金充值/提现功能测试报告

测试时间: 2026-03-23 21:30 测试环境:


Phase 1: 环境检查 - 成功

检查项:

  1. 后端服务状态 - 运行正常

  2. 数据库连接 - 成功

  3. 冷钱包数据 - 存在且正确

    • 韥询结果: 1 条USDT-TRC20 主钱包)
    • 网络类型= TRC20
    • 默认状态 = 1
    • 启用状态 = 1

Phase 2: 功能验证 - 部分成功

2.1 充值流程测试

测试步骤:

  1. 获取钱包地址 (无需登录)

    • 结果: 成功
    • 返回数据:
      {
        "code": "0000",
        "msg": "成功",
        "data": {
          "id": 1,
          "name": "USDT-TRC20 主钱包",
          "address": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234",
          "network": "TRC20"
        },
        "success": true
      }
      
    • 验证: 通过
  2. 用户登录

    • 结果: 成功
    • Token: 获取成功
  3. 申请充值

    • 请求: {"amount":"100","remark":"测试充值"}
    • 结果: 成功
    • 返回数据:
      {
        "code": "0000",
        "msg": "申请成功,请完成打款",
        "data": {
          "orderNo": "FD2026032318251801",
          "amount": "100",
          "status": 1,
          "walletAddress": "TRX1234567890abcdefghijklmnopqrstuvwxyz1234",
          "walletNetwork": "TRC20"
        }
        "success": true
      }
      
    • 验证: 订单创建成功,状态为"待付款"
  4. 用户确认打款

    • 请求: {"orderNo":"FD2026032318251801"}
    • 结果: 成功
    • 返回数据:
      {
        "code": "0000",
        "msg": "已确认打款,等待审核",
        "success": true
      }
      
    • 验证: 订单状态变为"待确认"
  5. 查询充提订单

    • 结果: 成功
    • 订单数据: 1条待确认订单
  6. 管理员审批(模拟)

    • 审批请求: {"orderNo":"FD2026032318251801","status":2,"adminRemark":"测试通过"}
    • 结果: 成功
    • 验证: 余额已到账

2.2 提现流程测试

测试步骤:

  1. 用户登录(复用Token)

  2. 申请提现

    • 请求: {"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
  3. 管理员审批通过

    • 审批请求: {"orderNo":"FW2026032321253001","status":2,"adminRemark":"已打款"}
    • 结果: 成功
    • 验证: 冻结资金已扣除
    • 数据库验证: 余额已减少 50 USDT
  4. 管理员审批驳回

    • 审批请求: {"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(),
);

修改内容:

  1. 添加了订单管理页面 (orders_page.dart)
  2. 添加了充提订单列表组件(fund_orders_list.dart)
  3. 添加了订单卡片组件(fund_order_card.dart)
  4. 更新路由配置(main.dart)

修复 3: 更新测试报告

文件: FUND_FLOW_TEST_PLAN.md 修改内容:

# Phase 5: 文档更新 - 待完成

- [ ] 5.1 Git 提交代码
- [ ] 5.2 清理临时文件