const axios = require('axios'); // 测试使用微信登录code获取比赛数据 async function testWxActivityData() { console.log('🔍 使用微信登录code测试比赛数据获取...\n'); const BASE_URL = 'http://localhost:8080/api'; const wxCode = '0c36Ly000Y2S6V18qW0008rzpy36Ly0S'; try { // 1. 先进行微信登录获取token console.log('📱 步骤1: 微信登录获取token...'); const loginResponse = await axios.post(`${BASE_URL}/auth/wx-login`, { code: wxCode }, { headers: { 'Content-Type': 'application/json' } }); if (loginResponse.data.token) { const token = loginResponse.data.token; console.log('✅ 登录成功,获取到token'); // 2. 使用token获取比赛列表 console.log('\n📋 步骤2: 获取比赛列表...'); const activitiesQuery = ` query getActivities { getActivities { id name description signupDeadline matchTime address state stateName playerCount playerMax } } `; const activitiesResponse = await axios.post(`${BASE_URL}/graphql`, { query: activitiesQuery }, { headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${token}` } }); if (activitiesResponse.data.errors) { console.error('❌ GraphQL错误:', activitiesResponse.data.errors); return; } const activities = activitiesResponse.data.data.getActivities; console.log(`📊 获取到 ${activities.length} 个比赛活动\n`); // 3. 分析每个比赛的时间数据 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.address || '未设置'}`); console.log(` 📊 状态: ${activity.state} (${activity.stateName})`); console.log(` 👥 报名人数: ${activity.playerCount}/${activity.playerMax || '无限制'}`); // 检查时间数据的格式和内容 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()}`); } 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()}`); } catch (e) { console.log(` ❌ 时间解析失败: ${e.message}`); } } else { console.log(` matchTime: null 或 undefined`); } console.log('─'.repeat(60)); }); // 4. 测试单个比赛详情 if (activities.length > 0) { const firstActivity = activities[0]; console.log(`\n🔍 步骤3: 测试单个比赛详情 (ID: ${firstActivity.id})...`); const detailQuery = ` query GetActivityDetailAndStatus($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', 'Authorization': `Bearer ${token}` } }); 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}"`); } } } } else { console.error('❌ 微信登录失败:', loginResponse.data); } } catch (error) { console.error('❌ 请求失败:', error.message); if (error.response) { console.error('响应状态:', error.response.status); console.error('响应数据:', error.response.data); } } } // 运行测试 testWxActivityData();