const axios = require('axios'); // 测试GraphQL返回的时间数据格式 async function testGraphQLTimeData() { console.log('🔍 测试GraphQL返回的时间数据格式...\n'); const BASE_URL = 'http://localhost:8080/api'; try { // 直接查询比赛列表(不需要认证) console.log('📋 查询比赛列表...'); const activitiesQuery = ` query getActivities { activities(page: 1, size: 10) { content { id name signupDeadline matchTime state stateName } } } `; const activitiesResponse = await axios.post(`${BASE_URL}/graphql`, { query: activitiesQuery }, { headers: { 'Content-Type': 'application/json' } }); if (activitiesResponse.data.errors) { console.error('❌ GraphQL错误:', activitiesResponse.data.errors); return; } const activities = activitiesResponse.data.data.activities.content; console.log(`📊 获取到 ${activities.length} 个比赛活动\n`); // 分析每个比赛的时间数据 activities.forEach((activity, index) => { console.log(`🏆 比赛 ${index + 1}: ${activity.name}`); console.log(` ID: ${activity.id}`); console.log(` 📅 原始 signupDeadline: "${activity.signupDeadline}"`); console.log(` 🏁 原始 matchTime: "${activity.matchTime}"`); console.log(` 📊 状态: ${activity.state} (${activity.stateName})`); // 检查时间数据的格式和内容 console.log('\n🔍 时间数据分析:'); if (activity.signupDeadline) { console.log(` signupDeadline 类型: ${typeof activity.signupDeadline}`); console.log(` signupDeadline 长度: ${activity.signupDeadline.length}`); console.log(` signupDeadline 内容: "${activity.signupDeadline}"`); // 尝试解析时间 try { const date = new Date(activity.signupDeadline); console.log(` 解析后的日期: ${date.toLocaleString()}`); console.log(` ISO格式: ${date.toISOString()}`); console.log(` 年月日: ${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`); } catch (e) { console.log(` ❌ 时间解析失败: ${e.message}`); } } else { console.log(` signupDeadline: null 或 undefined`); } if (activity.matchTime) { console.log(` matchTime 类型: ${typeof activity.matchTime}`); console.log(` matchTime 长度: ${activity.matchTime.length}`); console.log(` matchTime 内容: "${activity.matchTime}"`); // 尝试解析时间 try { const date = new Date(activity.matchTime); console.log(` 解析后的日期: ${date.toLocaleString()}`); console.log(` ISO格式: ${date.toISOString()}`); console.log(` 年月日: ${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`); } catch (e) { console.log(` ❌ 时间解析失败: ${e.message}`); } } else { console.log(` matchTime: null 或 undefined`); } console.log('─'.repeat(60)); }); // 测试单个比赛详情 if (activities.length > 0) { const firstActivity = activities[0]; console.log(`\n🔍 测试单个比赛详情 (ID: ${firstActivity.id})...`); const detailQuery = ` query GetActivityDetail($id: ID!) { activity(id: $id) { id name description signupDeadline matchTime address state stateName playerCount playerMax } } `; const detailResponse = await axios.post(`${BASE_URL}/graphql`, { query: detailQuery, variables: { id: firstActivity.id.toString() } }, { headers: { 'Content-Type': 'application/json' } }); if (detailResponse.data.errors) { console.error('❌ 详情查询GraphQL错误:', detailResponse.data.errors); } else { const detail = detailResponse.data.data.activity; console.log('📋 比赛详情数据:'); console.log(` 📅 详情页 signupDeadline: "${detail.signupDeadline}"`); console.log(` 🏁 详情页 matchTime: "${detail.matchTime}"`); // 比较列表和详情的数据是否一致 if (detail.signupDeadline === firstActivity.signupDeadline) { console.log('✅ 列表和详情的 signupDeadline 一致'); } else { console.log('❌ 列表和详情的 signupDeadline 不一致'); console.log(` 列表: "${firstActivity.signupDeadline}"`); console.log(` 详情: "${detail.signupDeadline}"`); } if (detail.matchTime === firstActivity.matchTime) { console.log('✅ 列表和详情的 matchTime 一致'); } else { console.log('❌ 列表和详情的 matchTime 不一致'); console.log(` 列表: "${firstActivity.matchTime}"`); console.log(` 详情: "${detail.matchTime}"`); } // 检查详情页时间格式 console.log('\n🔍 详情页时间数据分析:'); if (detail.signupDeadline) { try { const date = new Date(detail.signupDeadline); console.log(` 详情页 signupDeadline 解析: ${date.toLocaleString()}`); console.log(` 详情页 signupDeadline 年月日: ${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`); } catch (e) { console.log(` ❌ 详情页 signupDeadline 解析失败: ${e.message}`); } } if (detail.matchTime) { try { const date = new Date(detail.matchTime); console.log(` 详情页 matchTime 解析: ${date.toLocaleString()}`); console.log(` 详情页 matchTime 年月日: ${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-${String(date.getDate()).padStart(2, '0')}`); } catch (e) { console.log(` ❌ 详情页 matchTime 解析失败: ${e.message}`); } } } } } catch (error) { console.error('❌ 请求失败:', error.message); if (error.response) { console.error('响应状态:', error.response.status); console.error('响应数据:', error.response.data); } } } // 运行测试 testGraphQLTimeData();