test_salary_calculation_logic.sh
3.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
#!/bin/bash
# 测试工资计算逻辑修改
# 测试所有9个工资服务的计算接口,验证删除和更新逻辑是否正确
BASE_URL="http://localhost:2011"
YEAR=2025
MONTH=12
echo "=========================================="
echo "工资计算逻辑测试脚本"
echo "测试年份: ${YEAR}, 测试月份: ${MONTH}"
echo "=========================================="
echo ""
# 获取Token
echo "1. 获取认证Token..."
TOKEN=$(curl -s -X POST "${BASE_URL}/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 ""
# 测试函数
test_salary_calculation() {
local service_name=$1
local endpoint=$2
local description=$3
echo "----------------------------------------"
echo "测试: ${description}"
echo "接口: ${endpoint}"
echo "----------------------------------------"
# 调用计算接口
response=$(curl -s -X POST "${BASE_URL}${endpoint}?year=${YEAR}&month=${MONTH}" \
-H "Authorization: ${TOKEN}" \
-H "Content-Type: application/json")
# 检查响应
if echo "$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 "✅ ${description} - 计算成功"
echo " 响应: $(echo $response | python3 -c "import sys, json; data=json.load(sys.stdin); print(data.get('msg', '成功'))" 2>/dev/null)"
else
echo "❌ ${description} - 计算失败"
echo " 响应: $response"
fi
echo ""
}
# 测试所有工资计算接口
echo "2. 开始测试所有工资计算接口..."
echo ""
# 1. 健康师工资
test_salary_calculation "health-coach" \
"/api/Extend/LqSalary/calculate/health-coach" \
"健康师工资计算"
# 2. 店长工资
test_salary_calculation "store-manager" \
"/api/Extend/LqStoreManagerSalary/calculate/store-manager" \
"店长工资计算"
# 3. 主任工资
test_salary_calculation "director" \
"/api/Extend/LqDirectorSalary/calculate/director" \
"主任工资计算"
# 4. 店助工资
test_salary_calculation "assistant" \
"/api/Extend/LqAssistantSalary/calculate/assistant" \
"店助工资计算"
# 5. 事业部总经理/经理工资
test_salary_calculation "business-unit-manager" \
"/api/Extend/LqBusinessUnitManagerSalary/calculate/business-unit-manager" \
"事业部总经理/经理工资计算"
# 6. 科技部老师工资
test_salary_calculation "tech-teacher" \
"/api/Extend/LqTechTeacherSalary/calculate/tech-teacher" \
"科技部老师工资计算"
# 7. 科技部总经理工资
test_salary_calculation "tech-general-manager" \
"/api/Extend/LqTechGeneralManagerSalary/calculate/tech-general-manager" \
"科技部总经理工资计算"
# 8. 大项目主管工资
test_salary_calculation "major-project-director" \
"/api/Extend/LqMajorProjectDirectorSalary/calculate/major-project-director" \
"大项目主管工资计算"
# 9. 大项目部老师工资
test_salary_calculation "major-project-teacher" \
"/api/Extend/LqMajorProjectTeacherSalary/calculate/major-project-teacher" \
"大项目部老师工资计算"
echo "=========================================="
echo "测试完成!"
echo "=========================================="
echo ""
echo "说明:"
echo "1. 所有工资计算接口都会先删除未锁定且未确认的记录"
echo "2. 对于已锁定或已确认的记录,会进行更新操作"
echo "3. 对于不存在的记录,会进行插入操作"
echo ""
echo "请检查日志文件,确认删除和更新操作是否正确执行"