test-xh-overtime-apis.sh 2.41 KB
#!/bin/bash
# 消耗单(会员耗卡)加班手工费接口测试脚本
# 使用方式: ./test-xh-overtime-apis.sh [BASE_URL],默认 http://localhost:2015
# 前置:API 需已启动

BASE_URL="${1:-http://localhost:2015}"

echo "=== 1. 获取 Token ==="
TOKEN=$(curl -s -X POST "$BASE_URL/api/oauth/Login" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('data',{}).get('token','') if d.get('code')==200 else '')" 2>/dev/null)
if [ -z "$TOKEN" ]; then
  echo "获取 Token 失败,请检查 API 是否启动"
  exit 1
fi
echo "Token 获取成功"

echo ""
echo "=== 2. Create 消耗单(健康师12+科技部40=52,系数0.5)==="
echo "预期:F_OvertimeSgfy=6, sgfy=58"
CREATE_BODY='{"hy":"742276000326354181","md":"1649328471923847174","mdbh":"001","mdmc":"绿纤优品道店","hyzh":"17882541236","hymc":"咕噜","xfje":100,"sgfy":52,"hksj":"2026-03-16T10:00:00","overtimeCoefficient":0.5,"lqXhPxmxList":[{"px":"1","pxmc":"活动陪同","pxjg":100,"projectNumber":1,"sourceType":"耗卡","lqXhJksyjList":[{"jks":"13032810387","jksxm":"范时依","jkszh":"13032810387","jksyj":50,"laborCost":12,"kdpxNumber":1}],"lqXhKjbsyjList":[{"kjbls":"13110190690","kjblsxm":"刘雨佳","kjblszh":"13110190690","kjblsyj":50,"laborCost":40,"hdpxNumber":1}]}]}'
curl -s -X POST "$BASE_URL/api/Extend/LqXhHyhk" -H "Authorization: $TOKEN" -H "Content-Type: application/json" -d "$CREATE_BODY" | python3 -m json.tool 2>/dev/null || echo "请求失败"

echo ""
echo "=== 3. 创建后需查库验证主表 F_OvertimeSgfy、sgfy ==="
echo "SQL: SELECT F_Id, sgfy, F_OriginalSgfy, F_OvertimeSgfy FROM lq_xh_hyhk WHERE hy='742276000326354181' ORDER BY F_CreateTime DESC LIMIT 1"

echo ""
echo "=== 4. Update 消耗单(需替换 {id} 为实际耗卡ID,body 必须包含 id 字段)==="
echo "curl -X PUT \"$BASE_URL/api/Extend/LqXhHyhk/{id}\" -H \"Authorization: \$TOKEN\" -H \"Content-Type: application/json\" -d '{\"id\":\"{id}\",\"hy\":\"742276000326354181\",\"md\":\"1649328471923847174\",\"sgfy\":52,\"overtimeCoefficient\":0.5,\"lqXhPxmxList\":[...]}'"

echo ""
echo "=== 5. UpdateOvertimeCoefficient(需替换 {id} 为实际耗卡ID)==="
echo "curl -X PUT \"$BASE_URL/api/Extend/LqXhHyhk/{id}/overtime-coefficient\" -H \"Authorization: \$TOKEN\" -H \"Content-Type: application/json\" -d '{\"overtimeCoefficient\":1.0}'"