#!/bin/bash # GetTechTeacherDailyStatistics 接口测试脚本 # 使用方式: ./test-get-tech-teacher-daily-statistics.sh [BASE_URL],默认 http://localhost:2011 # 前置:API 需已启动且已重新编译(含 RefundAchievement 的 DTO 变更) BASE_URL="${1:-http://localhost:2011}" 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; d=json.load(sys.stdin); print(d.get('data',{}).get('token','') if d.get('code')==200 else '')" 2>/dev/null) if [ -z "$TOKEN" ]; then echo "获取 Token 失败,请检查 API 是否启动" exit 1 fi echo "Token 获取成功" echo "" echo "=== 2. 调用 GetTechTeacherDailyStatistics 接口 ===" echo "时间范围: 2026-03-01 ~ 2026-03-16" RESP=$(curl -s -X POST "$BASE_URL/api/Extend/LqDailyReport/get-tech-teacher-daily-statistics" \ -H "Authorization: $TOKEN" \ -H "Content-Type: application/json" \ -d '{"startTime":"2026-03-01T00:00:00","endTime":"2026-03-16T23:59:59"}') echo "$RESP" | python3 -m json.tool 2>/dev/null || echo "$RESP" CODE=$(echo "$RESP" | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('code',-1))" 2>/dev/null) if [ "$CODE" != "200" ]; then echo "" echo "接口返回非 200,若为 500 且提示 set_RefundAchievement,请重启 API 服务后重试" exit 1 fi echo "" echo "=== 3. 数据库验证 SQL(MCP MySQL 或手动执行)===" echo "耗卡业绩汇总(lq_xh_kjbsyj + lq_xh_hyhk):" echo "SELECT consume.kjbls as TeacherId, SUM(consume.kjblsyj) as ConsumeAchievement" echo "FROM lq_xh_kjbsyj consume" echo "INNER JOIN lq_xh_hyhk hyhk ON consume.glkdbh = hyhk.F_Id" echo "WHERE consume.F_IsEffective = 1 AND hyhk.F_IsEffective = 1" echo " AND DATE(hyhk.hksj) >= '2026-03-01' AND DATE(hyhk.hksj) <= '2026-03-16'" echo "GROUP BY consume.kjbls;" echo "" echo "退卡业绩汇总(lq_hytk_kjbsyj + lq_hytk_hytk):" echo "SELECT refund.kjbls as TeacherId, SUM(refund.kjblsyj) as RefundAchievement" echo "FROM lq_hytk_kjbsyj refund" echo "INNER JOIN lq_hytk_hytk hytk ON refund.gltkbh = hytk.F_Id" echo "WHERE refund.F_IsEffective = 1 AND hytk.F_IsEffective = 1" echo " AND DATE(hytk.tksj) >= '2026-03-01' AND DATE(hytk.tksj) <= '2026-03-16'" echo "GROUP BY refund.kjbls;"