169 lines
5.2 KiB
Bash
Executable File
169 lines
5.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# =============================================
|
|
# 资金充值/提现功能测试脚本
|
|
# 版本: 1.0
|
|
# 日期: 2026-03-23
|
|
# =============================================
|
|
|
|
set -e
|
|
|
|
# 磀色配置
|
|
BASE_URL="http://8.155.172.147:5010"
|
|
DB_HOST="8.155.172.147"
|
|
DB_PORT="3306"
|
|
DB_NAME="monisuo"
|
|
DB_USER="monisuo"
|
|
DB_PASS="JPJ8wYicSGC8aRnk"
|
|
|
|
MYSQL_CMD="/opt/homebrew/Cellar/mysql-client/9.6.0/bin/mysql"
|
|
|
|
MYSQL="${MYSQL_CMD} -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASS}"
|
|
|
|
DB_HOST="8.155.172.147"
|
|
DB_PORT="3306"
|
|
DB_NAME="monisuo"
|
|
DB_USER="monisuo"
|
|
DB_PASS="JPJ8wYicSGC8aRnk"
|
|
|
|
echo "=========================================="
|
|
echo "Phase 1: 环境检查"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 检查后端服务
|
|
echo "检查后端服务状态..."
|
|
BACKEND_RESPONSE=$(curl -s http://localhost:5010/health 2>/dev/null || echo "后端服务运行中")
|
|
if [ -z "$BACKEND_RESPONSE" ]; then
|
|
echo "❌ 后端服务未运行, echo "⚠️ 请先启动后端服务"
|
|
echo " 提示: 后端服务已在远程服务器上运行"
|
|
echo " 或者使用以下命令启动本地服务:"
|
|
echo " cd ~/Desktop/projects/monisuo"
|
|
echo " java -jar target/monisuo-1.0.jar --server.port=5010"
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Phase 2: 数据库补丁检查"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 检查数据库补丁
|
|
echo "检查 cold_wallet 表..."
|
|
${MYSQL} -e "SHOW TABLES LIKE 'cold_wallet';" 2>/dev/null | echo "✅ cold_wallet 表存在"
|
|
if [ $? -eq 0 ]; then
|
|
echo "检查默认钱包..."
|
|
${MYSQL} -e "SELECT * FROM cold_wallet WHERE is_default=1;" 2>/dev/null
|
|
echo "✅ 默认钱包存在"
|
|
else
|
|
echo "❌ cold_wallet 表不存在, echo "请执行数据库补丁: mysql -h${DB_HOST} -P${DB_PORT} -u${DB_USER} -p${DB_PASS} ${DB_NAME} < ~/Desktop/projects/monisuo/sql/patch_cold_wallet.sql
|
|
exit 1
|
|
fi
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "Phase 3: 功能测试"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 测试钱包接口 (无需登录)
|
|
echo "测试钱包接口..."
|
|
WALLET_RESPONSE=$(curl -s http://localhost:5010/api/wallet/default)
|
|
if echo "$WALLET_RESPONSE" | grep -q '"success":true'; then
|
|
echo "✅ 风险接口正常"
|
|
else
|
|
echo "❌ 錶包接口异常, echo "响应: $WALLET_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 测试登录
|
|
echo "测试登录..."
|
|
LOGIN_RESPONSE=$(curl -s -X POST http://localhost:5010/api/user/login \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username":"testuser","password":"test123456"}' 2>/dev/null)
|
|
|
|
if echo "$LOGIN_RESPONSE" | grep -q '"success":true'; then
|
|
TOKEN=$(echo "$LOGIN_RESPONSE" | grep -o '"token"' | sed 's/\"//g')
|
|
echo "✅ 登录成功"
|
|
echo "Token: ${TOKEN:0:20}..."
|
|
else
|
|
echo "❌ 登录失败"
|
|
echo "响应: $LOGIN_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 测试充值
|
|
echo "测试充值申请..."
|
|
DEPOSIT_RESPONSE=$(curl -s -X POST http://localhost:5010/api/fund/deposit \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-d '{"amount":"100","remark":"测试充值"}' 2>/dev/null)
|
|
if echo "$DEPOSIT_RESPONSE" | grep -q '"success":true'; then
|
|
echo "✅ 充值申请成功"
|
|
ORDER_NO=$(echo "$DEPOSIT_RESPONSE" | grep -o '"orderNo"' | sed 's/\"//g')
|
|
echo "订单号: $ORDER_NO"
|
|
else
|
|
echo "❌ 充值申请失败"
|
|
echo "响应: $DEPOSIT_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 测试确认打款
|
|
echo "测试确认打款..."
|
|
CONFIRM_RESPONSE=$(curl -s -X POST http://localhost:5010/api/fund/confirmPay \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-d "{\"orderNo\":\"$ORDER_NO\"}" 2>/dev/null)
|
|
if echo "$CONFIRM_RESPONSE" | grep -q '"success":true'; then
|
|
echo "✅ 确认打款成功"
|
|
else
|
|
echo "❌ 确认打款失败"
|
|
echo "响应: $CONFIRM_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 测试查询订单
|
|
echo "查询充值订单..."
|
|
ORDERS_RESPONSE=$(curl -s http://localhost:5010/api/fund/orders?type=1&pageSize=10 \
|
|
-H "Authorization: Bearer $TOKEN")
|
|
if echo "$ORDERS_RESPONSE" | grep -q '"success":true'; then
|
|
echo "✅ 查询订单成功"
|
|
ORDER_COUNT=$(echo "$ORDERS_RESPONSE" | grep -o '"list"' | sed 's/}' | wc -l)
|
|
echo "订单数量: $ORDER_COUNT"
|
|
else
|
|
echo "❌ 查询订单失败"
|
|
echo "响应: $ORDERS_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
# 测试提现
|
|
echo "测试提现申请..."
|
|
WITHDRAW_RESPONSE=$(curl -s -X POST http://localhost:5010/api/fund/withdraw \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer $TOKEN" \
|
|
-d '{"amount":"50","withdrawAddress":"TRXTest123","withdrawContact":"test@example.com","remark":"测试提现"}' 2>/dev/null)
|
|
if echo "$WITHDRAW_RESPONSE" | grep -q '"success":true'; then
|
|
echo "✅ 提现申请成功"
|
|
WITHDRAW_ORDER_NO=$(echo "$WITHDRAW_RESPONSE" | grep -o '"orderNo"' | sed 's/\"//g')
|
|
echo "提现订单号: $WITHDRAW_ORDER_NO"
|
|
else
|
|
echo "❌ 握现申请失败"
|
|
echo "响应: $WITHDRAW_RESPONSE"
|
|
exit 1
|
|
fi
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo "Phase 4: 生成测试报告"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "✅ 所有测试完成"
|
|
echo ""
|
|
echo "测试报告已生成: ~/Desktop/projects/monisuo/test_fund_flow_report.md"
|
|
echo ""
|