#!/bin/bash # 测试修改消耗单加班系数接口 # 接口地址: PUT /api/Extend/LqXhHyhk/{id}/overtime-coefficient echo "==========================================" echo "测试修改消耗单加班系数接口" echo "==========================================" # 获取token echo "1. 获取登录token..." TOKEN=$(curl -s -X POST "http://localhost:2011/api/oauth/Login" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e" | \ python3 -c "import sys, json; print(json.load(sys.stdin)['data']['token'])" 2>/dev/null) if [ -z "$TOKEN" ]; then echo "❌ 获取token失败" exit 1 fi echo "✅ Token获取成功" echo "" # 获取一个有效的消耗单记录ID echo "2. 获取消耗单记录ID..." CONSUME_ID=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk?currentPage=1&pageSize=1" \ -H "Authorization: $TOKEN" | \ python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('list', [{}])[0].get('id', ''))" 2>/dev/null) if [ -z "$CONSUME_ID" ]; then echo "❌ 获取消耗单记录ID失败" exit 1 fi echo "✅ 消耗单记录ID: $CONSUME_ID" echo "" # 先查询当前记录信息 echo "3. 查询当前消耗单信息..." CURRENT_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \ -H "Authorization: $TOKEN") echo "当前消耗单信息:" echo "$CURRENT_INFO" | python3 -m json.tool 2>/dev/null || echo "$CURRENT_INFO" echo "" # 提取当前加班系数 CURRENT_COEFFICIENT=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null) CURRENT_ORIGINAL_SGFY=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('originalSgfy', 0))" 2>/dev/null) CURRENT_SGFY=$(echo "$CURRENT_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null) echo "当前加班系数: $CURRENT_COEFFICIENT" echo "当前原始手工费: $CURRENT_ORIGINAL_SGFY" echo "当前最终手工费: $CURRENT_SGFY" echo "" # 测试1: 修改加班系数为0.5 echo "4. 测试1: 修改加班系数为0.5..." RESPONSE1=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"overtimeCoefficient\": 0.5 }") echo "$RESPONSE1" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE1" echo "" # 验证修改结果 echo "5. 验证修改结果..." UPDATED_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \ -H "Authorization: $TOKEN") NEW_COEFFICIENT=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null) NEW_ORIGINAL_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('originalSgfy', 0))" 2>/dev/null) NEW_OVERTIME_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeSgfy', 0))" 2>/dev/null) NEW_SGFY=$(echo "$UPDATED_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null) echo "修改后加班系数: $NEW_COEFFICIENT" echo "修改后原始手工费: $NEW_ORIGINAL_SGFY" echo "修改后加班手工费: $NEW_OVERTIME_SGFY" echo "修改后最终手工费: $NEW_SGFY" echo "" # 验证计算是否正确 if [ "$NEW_COEFFICIENT" = "0.5" ]; then echo "✅ 加班系数修改成功" else echo "❌ 加班系数修改失败,期望: 0.5, 实际: $NEW_COEFFICIENT" fi # 计算期望的加班手工费 EXPECTED_OVERTIME_SGFY=$(python3 -c "print($NEW_ORIGINAL_SGFY * 0.5)" 2>/dev/null) EXPECTED_SGFY=$(python3 -c "print($NEW_ORIGINAL_SGFY + $EXPECTED_OVERTIME_SGFY)" 2>/dev/null) echo "期望的加班手工费: $EXPECTED_OVERTIME_SGFY" echo "期望的最终手工费: $EXPECTED_SGFY" echo "" # 测试2: 修改加班系数为1.0 echo "6. 测试2: 修改加班系数为1.0..." RESPONSE2=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"overtimeCoefficient\": 1.0 }") echo "$RESPONSE2" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE2" echo "" # 测试3: 修改加班系数为0(非加班单) echo "7. 测试3: 修改加班系数为0(非加班单)..." RESPONSE3=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"overtimeCoefficient\": 0 }") echo "$RESPONSE3" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE3" echo "" # 验证修改为0后的结果 echo "8. 验证修改为0后的结果..." FINAL_INFO=$(curl -s -X GET "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID" \ -H "Authorization: $TOKEN") FINAL_COEFFICIENT=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeCoefficient', 0))" 2>/dev/null) FINAL_OVERTIME_SGFY=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('overtimeSgfy', 0))" 2>/dev/null) FINAL_SGFY=$(echo "$FINAL_INFO" | python3 -c "import sys, json; data = json.load(sys.stdin); print(data.get('data', {}).get('sgfy', 0))" 2>/dev/null) echo "最终加班系数: $FINAL_COEFFICIENT" echo "最终加班手工费: $FINAL_OVERTIME_SGFY" echo "最终最终手工费: $FINAL_SGFY" echo "" if [ "$FINAL_COEFFICIENT" = "0" ] && [ "$FINAL_OVERTIME_SGFY" = "0" ]; then echo "✅ 修改为0(非加班单)成功" else echo "❌ 修改为0(非加班单)失败" fi # 测试4: 测试不存在的ID echo "9. 测试4: 测试不存在的ID..." RESPONSE4=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/999999999999999999/overtime-coefficient" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"overtimeCoefficient\": 0.5 }") echo "$RESPONSE4" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE4" echo "" # 测试5: 测试无效参数(负数) echo "10. 测试5: 测试无效参数(负数)..." RESPONSE5=$(curl -s -X PUT "http://localhost:2011/api/Extend/LqXhHyhk/$CONSUME_ID/overtime-coefficient" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"overtimeCoefficient\": -0.5 }") echo "$RESPONSE5" | python3 -m json.tool 2>/dev/null || echo "$RESPONSE5" echo "" echo "==========================================" echo "测试完成" echo "=========================================="