#!/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 "请检查日志文件,确认删除和更新操作是否正确执行"