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();
|