test_teacher_detail_list.sh
6.7 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
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
#!/bin/bash
# 测试科技部驾驶舱老师明细列表接口 - 验证手工费字段
# 使用方法: ./scripts/sh/test_teacher_detail_list.sh
BASE_URL="http://localhost:2011"
TOKEN=""
echo "=========================================="
echo "测试老师明细列表接口 - 验证手工费字段"
echo "=========================================="
echo ""
# 1. 登录获取token
echo "1. 登录获取token..."
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; print(json.load(sys.stdin)['data']['token'])" 2>/dev/null)
if [ -z "$TOKEN" ]; then
echo "❌ 登录失败,无法获取token"
exit 1
fi
echo "✅ Token获取成功"
echo ""
# 2. 测试基本查询(使用科技部ID)
echo "2. 测试基本查询(使用科技部ID)..."
TECH_DEPT_ID="1649328471923847168" # 科技一部ID(需要根据实际情况调整)
STATISTICS_MONTH="202601"
BASIC_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/Extend/LqTechDepartmentDashboard/GetTeacherDetailList" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"storeIds\": [\"${STORE_ID}\", \"${STORE_ID2}\", \"${STORE_ID3}\"],
\"statisticsMonth\": \"${STATISTICS_MONTH}\",
\"currentPage\": 1,
\"pageSize\": 10
}")
echo "响应状态码: $(echo "$BASIC_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin).get('code', 'N/A'))" 2>/dev/null)"
echo ""
# 检查是否包含HandworkFee字段
HAS_HANDWORK_FEE=$(echo "$BASIC_RESPONSE" | python3 -c "
import sys, json
try:
data = json.load(sys.stdin)
if data.get('code') == 200 and data.get('data') and data['data'].get('list'):
first_item = data['data']['list'][0]
if 'HandworkFee' in first_item:
print('✅ 找到HandworkFee字段')
print(f' 手工费值: {first_item[\"HandworkFee\"]}')
print(f' 老师姓名: {first_item.get(\"EmployeeName\", \"N/A\")}')
print(f' 门店名称: {first_item.get(\"StoreName\", \"N/A\")}')
exit(0)
else:
print('❌ 未找到HandworkFee字段')
print('返回的字段:', list(first_item.keys()))
exit(1)
else:
print('❌ 响应数据格式不正确或列表为空')
print('响应内容:', json.dumps(data, indent=2, ensure_ascii=False))
exit(1)
except Exception as e:
print(f'❌ 解析响应失败: {e}')
exit(1)
" 2>/dev/null)
if [ $? -ne 0 ]; then
echo "$BASIC_RESPONSE" | python3 -m json.tool 2>/dev/null || echo "$BASIC_RESPONSE"
echo ""
echo "❌ 测试失败"
exit 1
fi
echo ""
echo "$BASIC_RESPONSE" | python3 -c "
import sys, json
try:
data = json.load(sys.stdin)
if data.get('code') == 200 and data.get('data'):
print('完整响应数据(前3条):')
print('=' * 60)
list_data = data['data'].get('list', [])
for i, item in enumerate(list_data[:3], 1):
print(f'\n第 {i} 条记录:')
print(f' 员工姓名: {item.get(\"EmployeeName\", \"N/A\")}')
print(f' 门店名称: {item.get(\"StoreName\", \"N/A\")}')
print(f' 开单业绩: {item.get(\"OrderAchievement\", 0)}')
print(f' 消耗业绩: {item.get(\"ConsumeAchievement\", 0)}')
print(f' 总业绩: {item.get(\"TotalPerformance\", 0)}')
print(f' 手工费: {item.get(\"HandworkFee\", \"字段不存在\")}')
print(f' 底薪: {item.get(\"BaseSalary\", 0)}')
print(f' 业绩提成: {item.get(\"PerformanceCommissionAmount\", 0)}')
print(f' 消耗提成: {item.get(\"ConsumeCommissionAmount\", 0)}')
print(f' 应发工资: {item.get(\"FinalGrossSalary\", 0)}')
print('\n' + '=' * 60)
pagination = data['data'].get('pagination', {})
print(f'\n分页信息:')
print(f' 总记录数: {pagination.get(\"total\", 0)}')
print(f' 当前页: {pagination.get(\"pageIndex\", 0)}')
print(f' 每页数量: {pagination.get(\"pageSize\", 0)}')
except Exception as e:
print(f'解析失败: {e}')
" 2>/dev/null
echo ""
# 3. 测试使用科技部ID查询
echo "3. 测试使用科技部ID查询..."
TECH_DEPT_ID="734725579919590661" # 科技一部ID
TECH_DEPT_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/Extend/LqTechDepartmentDashboard/GetTeacherDetailList" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"techDepartmentId\": \"${TECH_DEPT_ID}\",
\"statisticsMonth\": \"${STATISTICS_MONTH}\",
\"currentPage\": 1,
\"pageSize\": 5
}")
echo "响应状态码: $(echo "$TECH_DEPT_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin).get('code', 'N/A'))" 2>/dev/null)"
echo ""
# 4. 测试按老师姓名筛选
echo "4. 测试按老师姓名筛选..."
TEACHER_NAME_RESPONSE=$(curl -s -X POST "${BASE_URL}/api/Extend/LqTechDepartmentDashboard/GetTeacherDetailList" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json" \
-d "{
\"storeIds\": [\"${STORE_ID}\"],
\"statisticsMonth\": \"${STATISTICS_MONTH}\",
\"teacherName\": \"余\",
\"currentPage\": 1,
\"pageSize\": 5
}")
echo "响应状态码: $(echo "$TEACHER_NAME_RESPONSE" | python3 -c "import sys, json; print(json.load(sys.stdin).get('code', 'N/A'))" 2>/dev/null)"
echo ""
# 5. 验证所有返回的记录都包含HandworkFee字段
echo "5. 验证所有返回的记录都包含HandworkFee字段..."
VALIDATION_RESULT=$(echo "$BASIC_RESPONSE" | python3 -c "
import sys, json
try:
data = json.load(sys.stdin)
if data.get('code') == 200 and data.get('data') and data['data'].get('list'):
list_data = data['data']['list']
missing_fields = []
for i, item in enumerate(list_data):
if 'HandworkFee' not in item:
missing_fields.append(f'第{i+1}条记录(员工: {item.get(\"EmployeeName\", \"N/A\")})')
if missing_fields:
print('❌ 以下记录缺少HandworkFee字段:')
for missing in missing_fields:
print(f' - {missing}')
exit(1)
else:
print(f'✅ 所有 {len(list_data)} 条记录都包含HandworkFee字段')
exit(0)
else:
print('❌ 无法验证:响应数据格式不正确或列表为空')
exit(1)
except Exception as e:
print(f'❌ 验证失败: {e}')
exit(1)
" 2>/dev/null)
if [ $? -ne 0 ]; then
echo "$VALIDATION_RESULT"
exit 1
fi
echo "$VALIDATION_RESULT"
echo ""
echo "=========================================="
echo "✅ 测试完成 - 手工费字段验证通过"
echo "=========================================="