主要修复: 1. 添加 MetaObjectHandler 自动填充时间字段 2. 启用 @EnableTransactionManagement 显式事务管理 3. 使用 LambdaUpdateWrapper 强制更新订单状态 4. 完善 MyBatis Plus 配置和字段更新策略 5. 添加详细的调试日志配置 6. 前端集成 vconsole 调试工具 关键修改文件: - SpcCloudApplication.java: 添加 @EnableTransactionManagement - FundService.java: 使用 LambdaUpdateWrapper 显式更新 - MyBatisPlusMetaObjectHandler.java: 自动填充时间字段 - application-dev.yml: 完善配置和日志 - monisuo-admin: 添加 vconsole 调试工具
111 lines
3.5 KiB
Bash
Executable File
111 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 订单审批功能测试脚本
|
||
# 用于诊断审批后订单状态不更新的问题
|
||
|
||
BASE_URL="http://localhost:5010"
|
||
ADMIN_TOKEN=""
|
||
|
||
echo "================================"
|
||
echo "订单审批功能诊断测试"
|
||
echo "================================"
|
||
echo ""
|
||
|
||
# 1. 管理员登录
|
||
echo "步骤1: 管理员登录..."
|
||
LOGIN_RESPONSE=$(curl -s -X POST "$BASE_URL/admin/login" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{"username":"admin","password":"admin123"}')
|
||
|
||
echo "登录响应: $LOGIN_RESPONSE"
|
||
ADMIN_TOKEN=$(echo $LOGIN_RESPONSE | grep -o '"token":"[^"]*' | cut -d'"' -f4)
|
||
echo "Token: ${ADMIN_TOKEN:0:20}..."
|
||
echo ""
|
||
|
||
# 2. 获取待审批订单列表
|
||
echo "步骤2: 获取待审批订单..."
|
||
PENDING_RESPONSE=$(curl -s "$BASE_URL/admin/order/pending" \
|
||
-H "Authorization: Bearer $ADMIN_TOKEN")
|
||
|
||
echo "待审批订单响应:"
|
||
echo "$PENDING_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$PENDING_RESPONSE"
|
||
echo ""
|
||
|
||
# 提取第一个订单号
|
||
ORDER_NO=$(echo $PENDING_RESPONSE | grep -o '"orderNo":"[^"]*' | head -1 | cut -d'"' -f4)
|
||
if [ -z "$ORDER_NO" ]; then
|
||
echo "❌ 没有待审批的订单"
|
||
exit 1
|
||
fi
|
||
|
||
echo "选择的订单号: $ORDER_NO"
|
||
echo ""
|
||
|
||
# 3. 查询订单详情(审批前)
|
||
echo "步骤3: 查询订单详情(审批前)..."
|
||
DETAIL_RESPONSE=$(curl -s "$BASE_URL/admin/order/list?orderNo=$ORDER_NO" \
|
||
-H "Authorization: Bearer $ADMIN_TOKEN")
|
||
|
||
echo "订单详情(审批前):"
|
||
echo "$DETAIL_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$DETAIL_RESPONSE"
|
||
|
||
BEFORE_STATUS=$(echo $DETAIL_RESPONSE | grep -o '"status":[0-9]*' | head -1 | cut -d':' -f2)
|
||
echo "审批前状态: $BEFORE_STATUS"
|
||
echo ""
|
||
|
||
# 4. 执行审批(通过)
|
||
echo "步骤4: 执行审批(通过)..."
|
||
APPROVE_RESPONSE=$(curl -s -X POST "$BASE_URL/admin/order/approve" \
|
||
-H "Content-Type: application/json" \
|
||
-H "Authorization: Bearer $ADMIN_TOKEN" \
|
||
-d "{\"orderNo\":\"$ORDER_NO\",\"status\":2,\"adminRemark\":\"测试审批通过\"}")
|
||
|
||
echo "审批响应:"
|
||
echo "$APPROVE_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$APPROVE_RESPONSE"
|
||
echo ""
|
||
|
||
# 5. 等待2秒,确保事务提交
|
||
echo "步骤5: 等待事务提交..."
|
||
sleep 2
|
||
echo ""
|
||
|
||
# 6. 再次查询订单详情(审批后)
|
||
echo "步骤6: 查询订单详情(审批后)..."
|
||
DETAIL_RESPONSE_AFTER=$(curl -s "$BASE_URL/admin/order/list?orderNo=$ORDER_NO" \
|
||
-H "Authorization: Bearer $ADMIN_TOKEN")
|
||
|
||
echo "订单详情(审批后):"
|
||
echo "$DETAIL_RESPONSE_AFTER" | python3 -m json.tool 2>/dev/null || echo "$DETAIL_RESPONSE_AFTER"
|
||
|
||
AFTER_STATUS=$(echo $DETAIL_RESPONSE_AFTER | grep -o '"status":[0-9]*' | head -1 | cut -d':' -f2)
|
||
echo "审批后状态: $AFTER_STATUS"
|
||
echo ""
|
||
|
||
# 7. 验证状态是否改变
|
||
echo "================================"
|
||
echo "验证结果:"
|
||
echo "================================"
|
||
echo "审批前状态: $BEFORE_STATUS"
|
||
echo "审批后状态: $AFTER_STATUS"
|
||
|
||
if [ "$BEFORE_STATUS" != "$AFTER_STATUS" ]; then
|
||
echo "✅ 状态已改变!"
|
||
else
|
||
echo "❌ 状态未改变!"
|
||
echo ""
|
||
echo "可能的原因:"
|
||
echo "1. 事务回滚了"
|
||
echo "2. 数据库更新失败"
|
||
echo "3. 查询到了缓存数据"
|
||
echo ""
|
||
echo "建议检查:"
|
||
echo "1. 查看后端日志,搜索 '[FundService.approve]'"
|
||
echo "2. 直接查询数据库验证:"
|
||
echo " SELECT id, order_no, status, approve_admin_id, approve_time FROM order_fund WHERE order_no='$ORDER_NO';"
|
||
fi
|
||
|
||
echo ""
|
||
echo "================================"
|
||
echo "测试完成"
|
||
echo "================================"
|