init
This commit is contained in:
79
miniprogram/services/comments/fetchComments.js
Normal file
79
miniprogram/services/comments/fetchComments.js
Normal file
@@ -0,0 +1,79 @@
|
||||
const { config } = require('../../config/index');
|
||||
|
||||
/** 获取商品评论 */
|
||||
function mockFetchComments(parmas) {
|
||||
const { delay } = require('../_utils/delay');
|
||||
const { getGoodsAllComments } = require('../../model/comments');
|
||||
return delay().then(() => getGoodsAllComments(parmas));
|
||||
}
|
||||
|
||||
/** 获取商品评论 */
|
||||
function fetchComments(params) {
|
||||
if (config.useMock) {
|
||||
return mockFetchComments(params);
|
||||
}
|
||||
|
||||
const { productId, page = 1, pageSize = 10, rating, hasImages } = params;
|
||||
console.log('[fetchComments] 接收到的参数:', params);
|
||||
console.log('[fetchComments] productId:', productId, '类型:', typeof productId);
|
||||
|
||||
// 验证productId参数
|
||||
if (productId === null || productId === undefined || productId === '' || productId === 'undefined' || productId === 'null') {
|
||||
console.error('[fetchComments] 商品ID为空或无效:', productId);
|
||||
return Promise.reject(new Error('商品ID不能为空'));
|
||||
}
|
||||
|
||||
// 确保productId是数字
|
||||
const numericProductId = Number(productId);
|
||||
console.log('[fetchComments] 转换后的数字ID:', numericProductId);
|
||||
|
||||
if (isNaN(numericProductId) || numericProductId <= 0) {
|
||||
console.error('[fetchComments] 商品ID不是有效的正整数:', productId, '->', numericProductId);
|
||||
return Promise.reject(new Error('商品ID必须是有效的正整数'));
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.request({
|
||||
url: `${config.apiBase}/comments/products/${numericProductId}`,
|
||||
method: 'GET',
|
||||
data: {
|
||||
page,
|
||||
page_size: pageSize,
|
||||
rating,
|
||||
has_images: hasImages
|
||||
},
|
||||
success: (res) => {
|
||||
if (res.statusCode === 200 && res.data.code === 200) {
|
||||
// 转换数据格式以匹配前端期望的结构
|
||||
const result = {
|
||||
pageNum: res.data.data.page,
|
||||
pageSize: res.data.data.page_size,
|
||||
totalCount: res.data.data.total.toString(),
|
||||
comments: res.data.data.list.map(comment => ({
|
||||
id: comment.id,
|
||||
product_id: comment.product_id,
|
||||
user_id: comment.user_id,
|
||||
user_name: comment.user_name || '匿名用户',
|
||||
user_avatar: comment.user_avatar || 'https://tdesign.gtimg.com/miniprogram/template/retail/avatar/avatar1.png',
|
||||
rating: comment.rating,
|
||||
content: comment.content,
|
||||
images: comment.images || [],
|
||||
is_anonymous: comment.is_anonymous || false,
|
||||
reply_content: comment.reply_content || '',
|
||||
created_at: comment.created_at,
|
||||
product_spec: comment.product_spec || ''
|
||||
}))
|
||||
};
|
||||
resolve(result);
|
||||
} else {
|
||||
reject(new Error(res.data.message || '获取评论失败'));
|
||||
}
|
||||
},
|
||||
fail: (err) => {
|
||||
reject(err);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { fetchComments };
|
||||
Reference in New Issue
Block a user