#!/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获取成功" echo "" # 测试1: 基础查询(2025年12月) echo "--- 测试1: 基础查询(2025年12月,前5条) ---" RESPONSE1=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2011/api/Extend/lqxmzl/GetItemStatistics" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "startTime": "2025-12-01T00:00:00", "endTime": "2025-12-31T23:59:59" }') TIME1=$(echo "$RESPONSE1" | grep "TIME:" | cut -d: -f2) RESPONSE_BODY1=$(echo "$RESPONSE1" | sed '/TIME:/d') COUNT1=$(echo "$RESPONSE_BODY1" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null) echo "响应时间: ${TIME1}秒" echo "返回记录数: $COUNT1" echo "前3条记录:" echo "$RESPONSE_BODY1" | python3 -c " import sys, json data = json.load(sys.stdin) items = data.get('data', [])[:3] for i, item in enumerate(items, 1): print(f'{i}. {item.get(\"itemName\", \"无\")} - 分类: {item.get(\"itemCategory\", \"无\")}, 开卡业绩: {item.get(\"billingAmount\", 0):,.2f}, 储扣金额: {item.get(\"deductAmount\", 0):,.2f}, 储扣次数: {item.get(\"deductCount\", 0)}') " 2>/dev/null echo "" # 测试2: 按分类筛选(科美) echo "--- 测试2: 按分类筛选(科美) ---" RESPONSE2=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2011/api/Extend/lqxmzl/GetItemStatistics" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "startTime": "2025-12-01T00:00:00", "endTime": "2025-12-31T23:59:59", "itemCategory": "科美" }') TIME2=$(echo "$RESPONSE2" | grep "TIME:" | cut -d: -f2) RESPONSE_BODY2=$(echo "$RESPONSE2" | sed '/TIME:/d') COUNT2=$(echo "$RESPONSE_BODY2" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null) echo "响应时间: ${TIME2}秒" echo "返回记录数: $COUNT2" echo "前3条记录:" echo "$RESPONSE_BODY2" | python3 -c " import sys, json data = json.load(sys.stdin) items = data.get('data', [])[:3] for i, item in enumerate(items, 1): print(f'{i}. {item.get(\"itemName\", \"无\")} - 分类: {item.get(\"itemCategory\", \"无\")}, 储扣金额: {item.get(\"deductAmount\", 0):,.2f}, 储扣次数: {item.get(\"deductCount\", 0)}') " 2>/dev/null echo "" # 测试3: 按分类筛选(医美) echo "--- 测试3: 按分类筛选(医美) ---" RESPONSE3=$(curl -s -w "\nTIME:%{time_total}" -X POST "http://localhost:2011/api/Extend/lqxmzl/GetItemStatistics" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d '{ "startTime": "2025-12-01T00:00:00", "endTime": "2025-12-31T23:59:59", "itemCategory": "医美" }') TIME3=$(echo "$RESPONSE3" | grep "TIME:" | cut -d: -f2) RESPONSE_BODY3=$(echo "$RESPONSE3" | sed '/TIME:/d') COUNT3=$(echo "$RESPONSE_BODY3" | python3 -c "import sys, json; data=json.load(sys.stdin); print(len(data.get('data', [])))" 2>/dev/null) echo "响应时间: ${TIME3}秒" echo "返回记录数: $COUNT3" echo "" # 测试4: 验证数据完整性 echo "--- 测试4: 验证数据完整性 ---" echo "$RESPONSE_BODY1" | python3 -c " import sys, json data = json.load(sys.stdin) items = data.get('data', [])[:5] print('数据完整性检查:') for item in items: has_category = 'itemCategory' in item and item['itemCategory'] is not None has_deduct_amount = 'deductAmount' in item has_deduct_count = 'deductCount' in item status = '✅' if (has_category and has_deduct_amount and has_deduct_count) else '❌' print(f'{status} {item.get(\"itemName\", \"无\")}: 分类={has_category}, 储扣金额={has_deduct_amount}, 储扣次数={has_deduct_count}') " 2>/dev/null echo "" echo "=== 测试完成 ===" echo "性能总结:" echo "- 基础查询: ${TIME1}秒" echo "- 科美筛选: ${TIME2}秒" echo "- 医美筛选: ${TIME3}秒"