#!/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¤tPage=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 "=== 接口测试脚本执行完毕 ==="