test-kjb-removal-apis.sh 5.88 KB
#!/bin/bash
# 测试废弃 kjb 后修改的接口是否返回正确
# 使用方式: ./test-kjb-removal-apis.sh [BASE_URL],默认 http://localhost:2011

set -e
BASE_URL="${1:-http://localhost:2011}"
echo "=== 使用 API 地址: $BASE_URL ==="

# 1. 登录获取 token
echo ""
echo ">>> 1. 登录获取 token..."
LOGIN_RESP=$(curl -s -X POST "$BASE_URL/api/oauth/Login" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e")
TOKEN=$(echo "$LOGIN_RESP" | grep -o '"token":"[^"]*"' | sed 's/"token":"//;s/"$//')
if [ -z "$TOKEN" ]; then
  echo "登录失败,响应: $LOGIN_RESP"
  exit 1
fi
echo "登录成功,已获取 token"

# 2. LqReport - get-store-base-info(空 storeId 校验 + 可选真实门店校验)
echo ""
echo ">>> 2. POST /api/Extend/LqReport/get-store-base-info (空 storeId 校验)"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqReport/get-store-base-info" \
  -H "Content-Type: application/json" \
  -H "Authorization: $TOKEN" \
  -d '{"storeId":"","statisticsMonth":"202601"}')
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
if [ "$HTTP_CODE" = "400" ] || echo "$BODY" | grep -q "门店ID不能为空"; then
  echo "  [预期] 未传 storeId 时返回 400 或提示门店ID不能为空: HTTP $HTTP_CODE"
else
  echo "  HTTP $HTTP_CODE (若为200且 body 含 code 非200 也为参数校验行为)"
  echo "$BODY" | head -c 400
  echo ""
fi
# 使用真实门店ID验证归属来自 lq_md_target(如 绿纤龙湖店)
if [ -n "${STORE_ID:-}" ]; then
  echo ">>> 2b. get-store-base-info (真实 storeId=$STORE_ID)"
  curl -s -X POST "$BASE_URL/api/Extend/LqReport/get-store-base-info" \
    -H "Content-Type: application/json" -H "Authorization: $TOKEN" \
    -d "{\"storeId\":\"$STORE_ID\",\"statisticsMonth\":\"202601\"}" | head -c 600
  echo ""
fi

# 3. LqReport get-store-data-analysis(同上,验证接口可调通)
echo ""
echo ">>> 3. POST /api/Extend/LqReport/get-store-data-analysis"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqReport/get-store-data-analysis" \
  -H "Content-Type: application/json" \
  -H "Authorization: $TOKEN" \
  -d '{"storeId":"","statisticsMonth":"202601"}')
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
if [ "$HTTP_CODE" = "400" ] || echo "$BODY" | grep -q "门店ID不能为空"; then
  echo "  [预期] 未传 storeId 时返回 400 或提示门店ID不能为空: HTTP $HTTP_CODE"
else
  echo "  HTTP $HTTP_CODE"
  echo "$BODY" | head -c 500
  echo ""
fi

# 4. LqReport get-store-comparison-analysis
echo ""
echo ">>> 4. POST /api/Extend/LqReport/get-store-comparison-analysis"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqReport/get-store-comparison-analysis" \
  -H "Content-Type: application/json" \
  -H "Authorization: $TOKEN" \
  -d '{"storeId":"","statisticsMonth":"202601"}')
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
if [ "$HTTP_CODE" = "400" ] || echo "$BODY" | grep -q "门店ID不能为空"; then
  echo "  [预期] 未传 storeId 时返回 400 或提示门店ID不能为空: HTTP $HTTP_CODE"
else
  echo "  HTTP $HTTP_CODE"
  echo "$BODY" | head -c 500
  echo ""
fi

# 5. LqTechGeneralManagerSalary - GET tech-general-manager
echo ""
echo ">>> 5. GET /api/Extend/LqTechGeneralManagerSalary/tech-general-manager (2026年1月)"
RESP=$(curl -s -w "\n%{http_code}" -X GET "$BASE_URL/api/Extend/LqTechGeneralManagerSalary/tech-general-manager?Year=2026&Month=1&currentPage=1&pageSize=10" \
  -H "Authorization: $TOKEN")
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
echo "  HTTP $HTTP_CODE"
echo "$BODY" | head -c 800
echo ""

# 6. LqTechGeneralManagerSalary - POST calculate/tech-general-manager(仅触发计算,不校验结果)
echo ""
echo ">>> 6. POST /api/Extend/LqTechGeneralManagerSalary/calculate/tech-general-manager (year=2026, month=1)"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqTechGeneralManagerSalary/calculate/tech-general-manager?year=2026&month=1" \
  -H "Authorization: $TOKEN")
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
echo "  HTTP $HTTP_CODE"
echo "$BODY" | head -c 400
echo ""

# 7. LqShareStatisticsTechDept - generate
echo ""
echo ">>> 7. POST /api/Extend/LqShareStatisticsTechDept/generate (statisticsMonth=202601)"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqShareStatisticsTechDept/generate" \
  -H "Content-Type: application/json" \
  -H "Authorization: $TOKEN" \
  -d '{"statisticsMonth":"202601"}')
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
echo "  HTTP $HTTP_CODE"
echo "$BODY"
echo ""

# 8. LqZjlMdsmxsz - GET ManagedStores/{userid}(科技部总经理 userid 需从系统获取,这里用占位验证 404/200)
echo ""
echo ">>> 8. GET /api/Extend/LqZjlMdsmxsz/ManagedStores/{userid} (使用占位 userid 验证路由与逻辑)"
RESP=$(curl -s -w "\n%{http_code}" -X GET "$BASE_URL/api/Extend/LqZjlMdsmxsz/ManagedStores/000000000000000001" \
  -H "Authorization: $TOKEN")
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
echo "  HTTP $HTTP_CODE"
echo "$BODY" | head -c 500
echo ""

# 9. LqMdTarget GetManagedStores(未改 kjb 逻辑,但可顺带验证科技部按 lq_md_target 返回)
echo ""
echo ">>> 9. POST /api/Extend/LqMdTarget/GetManagedStores (科技部+月份 202601,需有效 DepartmentId)"
RESP=$(curl -s -w "\n%{http_code}" -X POST "$BASE_URL/api/Extend/LqMdTarget/GetManagedStores" \
  -H "Content-Type: application/json" \
  -H "Authorization: $TOKEN" \
  -d '{"month":"202601","organizationType":"科技部","departmentId":""}')
HTTP_CODE=$(echo "$RESP" | tail -n1)
BODY=$(echo "$RESP" | sed '$d')
echo "  HTTP $HTTP_CODE"
if echo "$BODY" | grep -q "部门ID不能为空"; then
  echo "  [预期] departmentId 为空时返回错误提示"
else
  echo "$BODY" | head -c 500
fi
echo ""

echo "=== 接口测试脚本执行完毕 ==="