#!/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 "=========================================="