const axios = require('axios');
|
|
// 配置
|
const BASE_URL = 'http://localhost:8080/api';
|
const GRAPHQL_URL = `${BASE_URL}/graphql`;
|
|
// 测试数据
|
const testData = {
|
activityId: "1",
|
playerInfo: {
|
name: "媒体API测试用户",
|
phone: "13900139" + Date.now().toString().slice(-3), // 使用时间戳生成唯一手机号
|
gender: 1,
|
birthDate: "1990-01-01",
|
education: "本科",
|
introduction: "这是一个媒体API测试用户",
|
description: "测试描述",
|
avatarMediaId: "test-avatar-media-id-" + Date.now() // 模拟头像媒体ID
|
},
|
regionId: "1",
|
projectName: "测试项目",
|
description: "测试报名",
|
attachmentMediaIds: [
|
"test-attachment-" + Date.now() + "-1",
|
"test-attachment-" + Date.now() + "-2"
|
] // 模拟附件媒体ID列表
|
};
|
|
// GraphQL 查询
|
const SUBMIT_REGISTRATION_MUTATION = `
|
mutation SubmitActivityRegistration($input: ActivityRegistrationInput!) {
|
submitActivityRegistration(input: $input) {
|
success
|
message
|
registrationId
|
playerId
|
userId
|
}
|
}
|
`;
|
|
// 查询媒体记录的GraphQL查询
|
const GET_MEDIA_RECORDS_QUERY = `
|
query MediasByTarget($targetType: Int!, $targetId: ID!) {
|
mediasByTarget(targetType: $targetType, targetId: $targetId) {
|
id
|
name
|
path
|
fileExt
|
mediaType
|
fullUrl
|
}
|
}
|
`;
|
|
async function testMediaApiIntegration() {
|
console.log('🚀 开始测试新的媒体API集成...\n');
|
|
try {
|
// 1. 提交报名(包含头像和附件媒体ID)
|
console.log('📝 步骤1: 提交活动报名(包含媒体ID)...');
|
const registrationResponse = await axios.post(GRAPHQL_URL, {
|
query: SUBMIT_REGISTRATION_MUTATION,
|
variables: {
|
input: testData
|
}
|
});
|
|
console.log('报名响应:', JSON.stringify(registrationResponse.data, null, 2));
|
|
if (registrationResponse.data.errors) {
|
console.error('❌ 报名提交失败:', registrationResponse.data.errors);
|
return;
|
}
|
|
const result = registrationResponse.data.data.submitActivityRegistration;
|
if (!result.success) {
|
console.error('❌ 报名失败:', result.message);
|
return;
|
}
|
|
console.log('✅ 报名成功!');
|
console.log(` - 活动报名ID: ${result.registrationId}`);
|
console.log(` - 选手ID: ${result.playerId}`);
|
console.log(` - 用户ID: ${result.userId}\n`);
|
|
// 2. 验证头像媒体记录是否保存
|
console.log('🔍 步骤2: 验证头像媒体记录...');
|
try {
|
const avatarMediaResponse = await axios.post(GRAPHQL_URL, {
|
query: GET_MEDIA_RECORDS_QUERY,
|
variables: {
|
targetType: 1,
|
targetId: result.playerId
|
}
|
});
|
|
if (avatarMediaResponse.data.data && avatarMediaResponse.data.data.mediaRecords) {
|
const avatarRecords = avatarMediaResponse.data.data.mediaRecords;
|
console.log(`✅ 找到 ${avatarRecords.length} 条头像媒体记录`);
|
avatarRecords.forEach(record => {
|
console.log(` - 媒体ID: ${record.id}, 路径: ${record.path}, 类型: ${record.mediaType}`);
|
});
|
} else {
|
console.log('⚠️ 未找到头像媒体记录(可能查询接口不存在)');
|
}
|
} catch (error) {
|
console.log('⚠️ 头像媒体记录查询失败(可能查询接口不存在):', error.message);
|
}
|
|
// 3. 验证附件媒体记录是否保存
|
console.log('\n🔍 步骤3: 验证附件媒体记录...');
|
try {
|
const attachmentMediaResponse = await axios.post(GRAPHQL_URL, {
|
query: GET_MEDIA_RECORDS_QUERY,
|
variables: {
|
targetType: 2,
|
targetId: result.registrationId
|
}
|
});
|
|
if (attachmentMediaResponse.data.data && attachmentMediaResponse.data.data.mediaRecords) {
|
const attachmentRecords = attachmentMediaResponse.data.data.mediaRecords;
|
console.log(`✅ 找到 ${attachmentRecords.length} 条附件媒体记录`);
|
attachmentRecords.forEach(record => {
|
console.log(` - 媒体ID: ${record.id}, 路径: ${record.path}, 类型: ${record.mediaType}`);
|
});
|
} else {
|
console.log('⚠️ 未找到附件媒体记录(可能查询接口不存在)');
|
}
|
} catch (error) {
|
console.log('⚠️ 附件媒体记录查询失败(可能查询接口不存在):', error.message);
|
}
|
|
// 4. 检查数据库中的媒体记录(通过日志)
|
console.log('\n📋 步骤4: 检查后端日志以验证媒体记录保存...');
|
console.log('请查看后端控制台日志,应该能看到以下信息:');
|
console.log(' - "开始保存选手头像媒体记录"');
|
console.log(' - "选手头像媒体记录保存成功"');
|
console.log(' - "开始保存附件媒体记录"');
|
console.log(' - "附件媒体记录保存成功"');
|
|
console.log('\n🎉 媒体API集成测试完成!');
|
|
} catch (error) {
|
console.error('❌ 测试过程中发生错误:', error.message);
|
if (error.response) {
|
console.error('响应数据:', JSON.stringify(error.response.data, null, 2));
|
}
|
}
|
}
|
|
// 运行测试
|
testMediaApiIntegration();
|