test_business_unit_billing_statistics.sh
5.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
#!/bin/bash
# 测试事业部开单统计接口(修复后)
BASE_URL="http://localhost:2011"
TOKEN=""
echo "================================================================================"
echo "事业部开单统计接口测试(修复后)"
echo "================================================================================"
echo ""
# 步骤1: 获取Token
echo "步骤 1: 获取登录Token"
echo "--------------------------------------------------------------------------------"
LOGIN_RESPONSE=$(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_RESPONSE | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('data', {}).get('token', ''))" 2>/dev/null)
if [ -z "$TOKEN" ]; then
echo "❌ 无法获取Token,测试终止"
echo "响应: $LOGIN_RESPONSE"
exit 1
fi
echo "✓ Token获取成功: ${TOKEN:0:50}..."
echo ""
# 步骤2: 查找2026年有西站店开单数据的日期
echo "步骤 2: 查找2026年有西站店开单数据的日期"
echo "--------------------------------------------------------------------------------"
echo "提示: 需要先通过数据库查询找到有西站店开单数据的日期"
echo "SQL查询示例:"
echo " SELECT DATE(kdrq) as date, COUNT(*) as count"
echo " FROM lq_kd_kdjlb billing"
echo " INNER JOIN lq_mdxx store ON billing.djmd = store.F_Id"
echo " WHERE store.dm LIKE '%西站%'"
echo " AND YEAR(billing.kdrq) = 2026"
echo " AND billing.F_IsEffective = 1"
echo " AND billing.sfyj > 0"
echo " GROUP BY DATE(billing.kdrq)"
echo " ORDER BY DATE(billing.kdrq) DESC"
echo " LIMIT 5;"
echo ""
# 如果提供了日期参数,使用该日期;否则提示用户输入
TEST_DATE="${1:-}"
if [ -z "$TEST_DATE" ]; then
echo "请提供测试日期(格式: YYYY-MM-DD)"
echo "用法: $0 <日期>"
echo "示例: $0 2026-01-23"
exit 1
fi
echo "使用测试日期: $TEST_DATE"
echo ""
# 步骤3: 测试接口
echo "步骤 3: 测试事业部开单统计接口"
echo "--------------------------------------------------------------------------------"
echo "接口: POST /api/Extend/LqDailyReport/get-business-unit-billing-statistics"
echo "参数: {\"date\": \"$TEST_DATE\"}"
echo ""
STATISTICS_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/Extend/LqDailyReport/get-business-unit-billing-statistics" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{\"date\": \"$TEST_DATE\"}")
echo "响应结果:"
echo "$STATISTICS_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$STATISTICS_RESPONSE"
echo ""
# 步骤4: 验证结果
echo "步骤 4: 验证结果"
echo "--------------------------------------------------------------------------------"
# 检查接口是否成功
if echo "$STATISTICS_RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); exit(0 if data.get('code') == 200 else 1)" 2>/dev/null; then
echo "✓ 接口调用成功"
# 检查是否包含西站店
HAS_XIZHAN=$(echo "$STATISTICS_RESPONSE" | python3 -c "
import sys, json
try:
data = json.load(sys.stdin)
if data.get('code') == 200:
result = data.get('data', [])
for unit in result:
orders = unit.get('orders', [])
for order in orders:
store_name = order.get('storeName', '')
if '西站' in store_name:
print('YES')
exit(0)
print('NO')
else:
print('ERROR')
except:
print('ERROR')
" 2>/dev/null)
if [ "$HAS_XIZHAN" = "YES" ]; then
echo "✅ 找到西站店的开单数据!"
echo ""
echo "西站店开单详情:"
echo "$STATISTICS_RESPONSE" | python3 -c "
import sys, json
data = json.load(sys.stdin)
if data.get('code') == 200:
result = data.get('data', [])
for unit in result:
orders = unit.get('orders', [])
for order in orders:
store_name = order.get('storeName', '')
if '西站' in store_name:
print(f\" 事业部: {unit.get('businessUnitName', '')}\")
print(f\" 门店: {store_name}\")
print(f\" 金额: {order.get('amount', 0)}\")
print(f\" 健康师: {order.get('healthTeacherNames', '无')}\")
print(f\" 开单时间: {order.get('orderTime', '')}\")
print()
" 2>/dev/null
elif [ "$HAS_XIZHAN" = "NO" ]; then
echo "⚠️ 未找到西站店的开单数据"
echo ""
echo "统计结果概览:"
echo "$STATISTICS_RESPONSE" | python3 -c "
import sys, json
data = json.load(sys.stdin)
if data.get('code') == 200:
result = data.get('data', [])
print(f\" 事业部数量: {len(result)}\")
total_performance = sum(unit.get('totalPerformance', 0) for unit in result)
total_orders = sum(unit.get('totalOrderCount', 0) for unit in result)
print(f\" 总业绩: {total_performance}\")
print(f\" 总单量: {total_orders}\")
print()
print(\" 各事业部统计:\")
for unit in result:
print(f\" - {unit.get('businessUnitName', '')}: {unit.get('totalOrderCount', 0)}单, {unit.get('totalPerformance', 0)}元\")
" 2>/dev/null
else
echo "❌ 解析响应数据失败"
fi
else
echo "❌ 接口调用失败"
ERROR_MSG=$(echo "$STATISTICS_RESPONSE" | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('msg', '未知错误'))" 2>/dev/null)
echo "错误信息: $ERROR_MSG"
fi
echo ""
echo "================================================================================"
echo "测试完成"
echo "================================================================================"