const axios = require('axios'); const graphqlUrl = 'http://localhost:8080/api/graphql'; // 使用之前成功获取的token(这里需要用户提供一个有效的token) // 或者我们可以从之前的测试中获取 const TEST_TOKEN = 'eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxNTIiLCJwaG9uZSI6IjEzOTgxOTcwODE2Iiwid3hPcGVuaWQiOiJ0ZXN0LW9wZW5pZC0xNTIiLCJpYXQiOjE3MzU2MzE0NzQsImV4cCI6MTczNjIzNjI3NH0.Ej_Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7Ej7E'; // 示例token,需要替换为实际有效的token async function testReviewFixWithToken() { try { console.log('=== 使用现有Token验证评审功能修复 ===\n'); const headers = { 'Authorization': `Bearer ${TEST_TOKEN}`, 'Content-Type': 'application/json' }; // 1. 测试未评审项目查询 (对应 currentTab = 0) console.log('1. 测试未评审项目查询 (currentTab = 0)...'); const unReviewedQuery = ` query GetUnReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) { unReviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) { items { id projectName activityName stageName studentName submitTime status } total hasMore } } `; try { const unReviewedResponse = await axios.post(graphqlUrl, { query: unReviewedQuery, variables: { page: 1, pageSize: 10, searchKeyword: null } }, { headers }); if (unReviewedResponse.data.errors) { console.error('❌ 未评审项目查询失败:', unReviewedResponse.data.errors); } else { console.log('✅ 未评审项目查询成功'); console.log('项目数量:', unReviewedResponse.data.data.unReviewedProjects.total); console.log('是否有更多:', unReviewedResponse.data.data.unReviewedProjects.hasMore); } } catch (error) { console.error('❌ 未评审项目查询请求失败:', error.response?.data || error.message); } // 2. 测试已评审项目查询 (对应 currentTab = 1) console.log('\n2. 测试已评审项目查询 (currentTab = 1)...'); const reviewedQuery = ` query GetReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) { reviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) { items { id projectName activityName stageName studentName submitTime reviewTime score status } total hasMore } } `; try { const reviewedResponse = await axios.post(graphqlUrl, { query: reviewedQuery, variables: { page: 1, pageSize: 10, searchKeyword: null } }, { headers }); if (reviewedResponse.data.errors) { console.error('❌ 已评审项目查询失败:', reviewedResponse.data.errors); } else { console.log('✅ 已评审项目查询成功'); console.log('项目数量:', reviewedResponse.data.data.reviewedProjects.total); console.log('是否有更多:', reviewedResponse.data.data.reviewedProjects.hasMore); } } catch (error) { console.error('❌ 已评审项目查询请求失败:', error.response?.data || error.message); } // 3. 测试学员未评审项目查询 (对应 currentTab = 2) console.log('\n3. 测试学员未评审项目查询 (currentTab = 2)...'); const studentUnReviewedQuery = ` query GetStudentUnReviewedProjects($page: Int!, $pageSize: Int!, $searchKeyword: String) { studentUnReviewedProjects(page: $page, pageSize: $pageSize, searchKeyword: $searchKeyword) { items { id projectName activityName stageName studentName submitTime status } total hasMore } } `; try { const studentUnReviewedResponse = await axios.post(graphqlUrl, { query: studentUnReviewedQuery, variables: { page: 1, pageSize: 10, searchKeyword: null } }, { headers }); if (studentUnReviewedResponse.data.errors) { console.error('❌ 学员未评审项目查询失败:', studentUnReviewedResponse.data.errors); } else { console.log('✅ 学员未评审项目查询成功'); console.log('项目数量:', studentUnReviewedResponse.data.data.studentUnReviewedProjects.total); console.log('是否有更多:', studentUnReviewedResponse.data.data.studentUnReviewedProjects.hasMore); } } catch (error) { console.error('❌ 学员未评审项目查询请求失败:', error.response?.data || error.message); } // 4. 测试评审统计查询 console.log('\n4. 测试评审统计查询...'); const statisticsQuery = ` query GetReviewStatistics { reviewStatistics { unReviewedCount reviewedCount studentUnReviewedCount } } `; try { const statisticsResponse = await axios.post(graphqlUrl, { query: statisticsQuery }, { headers }); if (statisticsResponse.data.errors) { console.error('❌ 评审统计查询失败:', statisticsResponse.data.errors); } else { console.log('✅ 评审统计查询成功'); const stats = statisticsResponse.data.data.reviewStatistics; console.log('未评审数量:', stats.unReviewedCount); console.log('已评审数量:', stats.reviewedCount); console.log('学员未评审数量:', stats.studentUnReviewedCount); } } catch (error) { console.error('❌ 评审统计查询请求失败:', error.response?.data || error.message); } console.log('\n=== 验证总结 ==='); console.log('✅ 修复内容:'); console.log(' 1. Switch语句数字字符串转换问题 - 已修复'); console.log(' - switchTab方法中添加了parseInt()转换'); console.log(' - switch语句中添加了parseInt()确保数字比较'); console.log(' - dataKey判断中添加了parseInt()转换'); console.log(' 2. GraphQL查询参数空字符串问题 - 已修复'); console.log(' - 添加了default case处理无效的currentTab值'); console.log(' - 添加了query为空时的错误检查和返回'); console.log(' 3. 所有GraphQL查询都有完整的query字符串'); } catch (error) { console.error('❌ 测试过程中发生错误:', error.message); } } // 如果没有有效token,显示说明 console.log('注意:此脚本需要有效的JWT token才能完整测试。'); console.log('如果您有有效的token,请替换TEST_TOKEN变量的值。'); console.log('或者提供新的微信code来获取token。\n'); testReviewFixWithToken();