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