test_store_dashboard_fixes.sh 3.91 KB
#!/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 "=========================================="