Initial commit
This commit is contained in:
189
miniprogram/pages/debug/api-test.js
Normal file
189
miniprogram/pages/debug/api-test.js
Normal file
@@ -0,0 +1,189 @@
|
||||
// pages/debug/api-test.js
|
||||
const { fetchCommentsCount } = require('../../services/comments/fetchCommentsCount');
|
||||
const { fetchComments } = require('../../services/comments/fetchComments');
|
||||
|
||||
Page({
|
||||
data: {
|
||||
spuId: 1, // 测试用的商品ID
|
||||
testResults: {
|
||||
statsApiCalled: false,
|
||||
statsApiSuccess: false,
|
||||
statsApiError: '',
|
||||
statsRawData: null,
|
||||
statsProcessedData: null,
|
||||
|
||||
listApiCalled: false,
|
||||
listApiSuccess: false,
|
||||
listApiError: '',
|
||||
listRawData: null,
|
||||
listProcessedData: null,
|
||||
|
||||
finalCommentsStatistics: null,
|
||||
finalCommentsList: null,
|
||||
shouldDisplay: false
|
||||
}
|
||||
},
|
||||
|
||||
onLoad: function (options) {
|
||||
console.log('API测试页面加载');
|
||||
if (options.spuId) {
|
||||
this.setData({
|
||||
spuId: parseInt(options.spuId)
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 测试评论统计API
|
||||
async testCommentsStatistics() {
|
||||
console.log('开始测试评论统计API...');
|
||||
|
||||
this.setData({
|
||||
'testResults.statsApiCalled': true,
|
||||
'testResults.statsApiSuccess': false,
|
||||
'testResults.statsApiError': ''
|
||||
});
|
||||
|
||||
try {
|
||||
const result = await fetchCommentsCount(this.data.spuId);
|
||||
console.log('评论统计API原始响应:', result);
|
||||
|
||||
// 模拟商品详情页的数据处理逻辑
|
||||
const processedData = {
|
||||
total_count: result.total_count || 0,
|
||||
good_count: result.good_count || 0,
|
||||
medium_count: result.medium_count || 0,
|
||||
bad_count: result.bad_count || 0,
|
||||
average_rating: result.average_rating || 0,
|
||||
image_count: result.image_count || 0
|
||||
};
|
||||
|
||||
const goodRate = processedData.total_count > 0 ?
|
||||
Math.round((processedData.good_count / processedData.total_count) * 100) : 0;
|
||||
|
||||
const commentsStatistics = {
|
||||
commentCount: processedData.total_count || 0,
|
||||
goodCount: processedData.good_count || 0,
|
||||
middleCount: processedData.medium_count || 0,
|
||||
badCount: processedData.bad_count || 0,
|
||||
goodRate: goodRate,
|
||||
hasImageCount: processedData.image_count || 0,
|
||||
};
|
||||
|
||||
this.setData({
|
||||
'testResults.statsApiSuccess': true,
|
||||
'testResults.statsRawData': result,
|
||||
'testResults.statsProcessedData': processedData,
|
||||
'testResults.finalCommentsStatistics': commentsStatistics,
|
||||
'testResults.shouldDisplay': commentsStatistics.commentCount > 0
|
||||
});
|
||||
|
||||
console.log('评论统计处理完成:', commentsStatistics);
|
||||
|
||||
} catch (error) {
|
||||
console.error('评论统计API调用失败:', error);
|
||||
this.setData({
|
||||
'testResults.statsApiError': error.message || '未知错误'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 测试评论列表API
|
||||
async testCommentsList() {
|
||||
console.log('开始测试评论列表API...');
|
||||
|
||||
this.setData({
|
||||
'testResults.listApiCalled': true,
|
||||
'testResults.listApiSuccess': false,
|
||||
'testResults.listApiError': ''
|
||||
});
|
||||
|
||||
try {
|
||||
const result = await fetchComments({
|
||||
productId: this.data.spuId,
|
||||
page: 1,
|
||||
pageSize: 3
|
||||
});
|
||||
console.log('评论列表API原始响应:', result);
|
||||
|
||||
// 模拟商品详情页的数据处理逻辑
|
||||
let commentsList = [];
|
||||
if (result.comments && Array.isArray(result.comments)) {
|
||||
commentsList = result.comments.map(comment => ({
|
||||
id: comment.id,
|
||||
userName: comment.is_anonymous ? '匿名用户' : (comment.user_name || '用户'),
|
||||
userHeadUrl: comment.user_avatar || 'https://tdesign.gtimg.com/miniprogram/template/retail/avatar/avatar1.png',
|
||||
commentScore: comment.rating || 5,
|
||||
commentContent: comment.content || '',
|
||||
commentTime: comment.created_at ? this.formatTime(comment.created_at) : '',
|
||||
specInfo: comment.product_spec || '',
|
||||
commentResources: comment.images || [],
|
||||
isAnonymity: comment.is_anonymous || false,
|
||||
sellerReply: comment.reply_content || '',
|
||||
goodsDetailInfo: ''
|
||||
}));
|
||||
}
|
||||
|
||||
this.setData({
|
||||
'testResults.listApiSuccess': true,
|
||||
'testResults.listRawData': result,
|
||||
'testResults.listProcessedData': commentsList,
|
||||
'testResults.finalCommentsList': commentsList
|
||||
});
|
||||
|
||||
console.log('评论列表处理完成:', commentsList);
|
||||
|
||||
} catch (error) {
|
||||
console.error('评论列表API调用失败:', error);
|
||||
this.setData({
|
||||
'testResults.listApiError': error.message || '未知错误'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
// 运行完整测试
|
||||
async runFullTest() {
|
||||
console.log('开始运行完整API测试...');
|
||||
await this.testCommentsStatistics();
|
||||
await this.testCommentsList();
|
||||
console.log('完整API测试完成');
|
||||
},
|
||||
|
||||
// 清除测试结果
|
||||
clearResults() {
|
||||
this.setData({
|
||||
testResults: {
|
||||
statsApiCalled: false,
|
||||
statsApiSuccess: false,
|
||||
statsApiError: '',
|
||||
statsRawData: null,
|
||||
statsProcessedData: null,
|
||||
|
||||
listApiCalled: false,
|
||||
listApiSuccess: false,
|
||||
listApiError: '',
|
||||
listRawData: null,
|
||||
listProcessedData: null,
|
||||
|
||||
finalCommentsStatistics: null,
|
||||
finalCommentsList: null,
|
||||
shouldDisplay: false
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// 格式化时间
|
||||
formatTime(dateString) {
|
||||
const date = new Date(dateString);
|
||||
const year = date.getFullYear();
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0');
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
},
|
||||
|
||||
// 修改测试商品ID
|
||||
onSpuIdInput(e) {
|
||||
this.setData({
|
||||
spuId: parseInt(e.detail.value) || 1
|
||||
});
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user