test_store_total_performance_statistics.sh 3.45 KB
#!/bin/bash

# 测试门店总业绩统计接口(实时查询)

echo "=== 测试门店总业绩统计接口(实时查询) ==="

# 获取Token
TOKEN=$(curl -s -X POST "http://localhost:2011/api/oauth/Login" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "account=admin&password=e10adc3949ba59abbe56e057f20f883e" | python3 -c "import sys, json; print(json.load(sys.stdin)['data']['token'])" 2>/dev/null)

if [ -z "$TOKEN" ]; then
  echo "❌ 获取Token失败"
  exit 1
fi

echo "✅ Token获取成功"

# 测试查询2025年12月的门店总业绩统计(带性能测试)
echo ""
echo "--- 测试查询2025年12月的门店总业绩统计(第1页,每页10条) ---"
echo "开始时间: $(date +%s.%3N)"
START_TIME=$(date +%s.%3N)
RESPONSE=$(curl -s -w "\nHTTP_CODE:%{http_code}\nTIME_TOTAL:%{time_total}\n" -X POST "http://localhost:2011/api/Extend/LqStatistics/get-store-total-performance-statistics-list" \
  -H "Authorization: $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "statisticsMonth": "202512",
    "pageIndex": 1,
    "pageSize": 10
  }')
END_TIME=$(date +%s.%3N)

# 提取HTTP状态码和响应时间
HTTP_CODE=$(echo "$RESPONSE" | grep "HTTP_CODE:" | cut -d: -f2)
TIME_TOTAL=$(echo "$RESPONSE" | grep "TIME_TOTAL:" | cut -d: -f2)
RESPONSE_BODY=$(echo "$RESPONSE" | sed '/HTTP_CODE:/d' | sed '/TIME_TOTAL:/d')

echo "响应时间: ${TIME_TOTAL}秒"
echo "HTTP状态码: $HTTP_CODE"
echo ""
echo "响应内容(前500字符):"
echo "$RESPONSE_BODY" | head -c 500
echo ""
echo "..."

# 使用RESPONSE_BODY进行后续处理
RESPONSE="$RESPONSE_BODY"

# 解析响应
CODE=$(echo "$RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('code', 0))" 2>/dev/null)
HAS_DATA=$(echo "$RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print('yes' if data.get('data', {}).get('list') else 'no')" 2>/dev/null)

if [ "$CODE" = "200" ] && [ "$HAS_DATA" = "yes" ]; then
  echo ""
  echo "✅ 接口调用成功"
  
  # 显示统计信息
  TOTAL=$(echo "$RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('data', {}).get('pagination', {}).get('total', 0))" 2>/dev/null)
  LIST_COUNT=$(echo "$RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', {}).get('list', [])))" 2>/dev/null)
  
  echo "总记录数: $TOTAL"
  echo "当前页记录数: $LIST_COUNT"
  
  # 显示前3条记录的关键信息
  echo ""
  echo "前3条记录详情:"
  echo "$RESPONSE" | python3 -c "
import sys, json
try:
    data = json.load(sys.stdin)
    items = data.get('data', {}).get('list', [])[:3]
    if items:
        for i, item in enumerate(items, 1):
            store_name = item.get('StoreName', item.get('storeName', '无'))
            total_perf = item.get('TotalPerformance', item.get('totalPerformance', 0))
            actual_perf = item.get('ActualPerformance', item.get('actualPerformance', 0))
            first_count = item.get('FirstOrderCount', item.get('firstOrderCount', 0))
            upgrade_count = item.get('UpgradeOrderCount', item.get('upgradeOrderCount', 0))
            print(f'{i}. 门店: {store_name}, 总业绩: {total_perf:,.2f}, 实际业绩: {actual_perf:,.2f}, 首开单: {first_count}, 升单: {upgrade_count}')
    else:
        print('未找到数据')
except Exception as e:
    print(f'解析错误: {e}')
" 2>/dev/null
else
  echo ""
  echo "❌ 接口调用失败,返回码: $CODE"
fi

echo ""
echo "=== 测试完成 ==="