#!/bin/bash # 测试门店驾驶舱修复的接口 # 1. 健康师业绩排行(净业绩) # 2. 门店对比分析(类型转换错误修复) # 3. 拓客转化漏斗 BASE_URL="http://localhost:2011" STORE_ID="1649328471923847169" # 绿纤紫荆店 STATISTICS_MONTH="202512" # 2025年12月 echo "==========================================" echo "测试门店驾驶舱修复的接口" echo "==========================================" echo "" # 1. 获取Token echo "1. 获取Token..." TOKEN_BODY=$(curl -s -X POST "${BASE_URL}/api/oauth/Login" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e") TOKEN=$(echo "$TOKEN_BODY" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data['data']['token'])" 2>/dev/null | sed 's/Bearer //') if [ -z "$TOKEN" ]; then echo "❌ 无法从响应中提取Token" echo "响应内容: $TOKEN_BODY" exit 1 fi echo "✅ Token获取成功" echo "" # 2. 测试健康师业绩排行(净业绩) echo "2. 测试健康师业绩排行(净业绩)..." HEALTH_COACH_BODY=$(curl -s -X POST "${BASE_URL}/api/Extend/LqReport/get-store-health-coach-analysis" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \ -d "{\"storeId\":\"${STORE_ID}\",\"statisticsMonth\":\"${STATISTICS_MONTH}\"}") HEALTH_COACH_CODE=$(echo "$HEALTH_COACH_BODY" | jq -r '.code' 2>/dev/null) if [ "$HEALTH_COACH_CODE" != "200" ]; then echo "❌ 健康师业绩排行接口返回错误" echo "$HEALTH_COACH_BODY" | jq '.' 2>/dev/null || echo "$HEALTH_COACH_BODY" exit 1 fi HEALTH_COACH_COUNT=$(echo "$HEALTH_COACH_BODY" | jq '.data | length' 2>/dev/null) echo "✅ 健康师业绩排行接口成功,返回 ${HEALTH_COACH_COUNT} 条记录" if [ "$HEALTH_COACH_COUNT" -gt 0 ]; then echo "前3条记录:" echo "$HEALTH_COACH_BODY" | jq -r '.data[0:3] | .[] | " - \(.HealthCoachName): 开单=\(.BillingPerformance), 消耗=\(.ConsumePerformance), 净业绩=\(.TotalPerformance)"' 2>/dev/null fi echo "" # 3. 测试门店对比分析 echo "3. 测试门店对比分析(类型转换错误修复)..." COMPARISON_BODY=$(curl -s -X POST "${BASE_URL}/api/Extend/LqReport/get-store-comparison-analysis" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \ -d "{\"storeId\":\"${STORE_ID}\",\"statisticsMonth\":\"${STATISTICS_MONTH}\"}") COMPARISON_CODE=$(echo "$COMPARISON_BODY" | jq -r '.code' 2>/dev/null) if [ "$COMPARISON_CODE" != "200" ]; then echo "❌ 门店对比分析接口返回错误" echo "$COMPARISON_BODY" | jq '.' 2>/dev/null || echo "$COMPARISON_BODY" exit 1 fi echo "✅ 门店对比分析接口成功" echo "$COMPARISON_BODY" | jq -r '.data | " 业绩排名: \(.PerformanceRanking)/\(.TotalStoreCount)\n 同类型门店平均业绩: \(.AvgPerformanceSameType) (门店数: \(.SameTypeStoreCount))\n 同组织门店平均业绩: \(.AvgPerformanceSameOrg) (门店数: \(.SameOrgStoreCount))"' 2>/dev/null echo "" # 4. 测试拓客转化漏斗 echo "4. 测试拓客转化漏斗..." FUNNEL_BODY=$(curl -s -X POST "${BASE_URL}/api/Extend/LqStoreDashboard/GetMemberConversionFunnel" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${TOKEN}" \ -d "{\"storeId\":\"${STORE_ID}\",\"statisticsMonth\":\"${STATISTICS_MONTH}\"}") FUNNEL_CODE=$(echo "$FUNNEL_BODY" | jq -r '.code' 2>/dev/null) if [ "$FUNNEL_CODE" != "200" ]; then echo "❌ 拓客转化漏斗接口返回错误" echo "$FUNNEL_BODY" | jq '.' 2>/dev/null || echo "$FUNNEL_BODY" exit 1 fi echo "✅ 拓客转化漏斗接口成功" echo "$FUNNEL_BODY" | jq -r '.data | " 拓客数: \(.ExpansionCount)\n 邀约数: \(.InviteCount)\n 预约数: \(.AppointmentCount)\n 耗卡数: \(.ConsumeCount)\n 开单数: \(.BillingCount)"' 2>/dev/null echo "" echo "==========================================" echo "✅ 所有接口测试通过!" echo "=========================================="