You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.4 KiB
145 lines
4.4 KiB
// 简化版毛重字段修复验证脚本
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// 定义配置
|
|
const config = {
|
|
serverFilePath: path.join(__dirname, 'server-mysql.js'),
|
|
reportPath: path.join(__dirname, 'gross-weight-fix-report.txt')
|
|
};
|
|
|
|
// 主函数
|
|
function main() {
|
|
console.log('===== 开始验证毛重字段修复效果 =====\n');
|
|
|
|
// 清空报告文件
|
|
try {
|
|
fs.writeFileSync(config.reportPath, '毛重字段修复验证报告 - ' + new Date().toISOString() + '\n\n');
|
|
} catch (error) {
|
|
console.error('无法创建报告文件:', error.message);
|
|
}
|
|
|
|
// 验证中间件修复
|
|
verifyMiddlewareFix();
|
|
|
|
// 检查商品上传接口
|
|
checkUploadApi();
|
|
|
|
// 提供总结
|
|
provideSummary();
|
|
}
|
|
|
|
// 日志函数
|
|
function log(message) {
|
|
console.log(message);
|
|
try {
|
|
fs.appendFileSync(config.reportPath, message + '\n');
|
|
} catch (error) {
|
|
// 忽略日志写入错误
|
|
}
|
|
}
|
|
|
|
// 读取文件内容
|
|
function readFile(filePath) {
|
|
try {
|
|
return fs.readFileSync(filePath, 'utf8');
|
|
} catch (error) {
|
|
log('读取文件失败: ' + error.message);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
// 验证中间件修复
|
|
function verifyMiddlewareFix() {
|
|
log('===== 验证中间件毛重处理逻辑 =====');
|
|
|
|
const content = readFile(config.serverFilePath);
|
|
if (!content) {
|
|
log('无法读取服务器文件');
|
|
return;
|
|
}
|
|
|
|
// 检查中间件中的毛重默认值
|
|
const zeroCount = (content.match(/product\.grossWeight\s*=\s*0;/g) || []).length;
|
|
const fiveCount = (content.match(/product\.grossWeight\s*=\s*5;/g) || []).length;
|
|
|
|
log('中间件中毛重默认值为0的数量: ' + zeroCount);
|
|
log('中间件中毛重默认值为5的数量: ' + fiveCount);
|
|
|
|
if (zeroCount === 0 && fiveCount > 0) {
|
|
log('✓ 中间件修复成功:所有空值毛重都将被设置为5');
|
|
} else if (zeroCount > 0 && fiveCount === 0) {
|
|
log('✗ 中间件修复失败:所有空值毛重仍然被设置为0');
|
|
} else if (zeroCount > 0 && fiveCount > 0) {
|
|
log('⚠ 中间件部分修复:存在混合的默认值设置,需要进一步检查');
|
|
} else {
|
|
log('ℹ 未找到中间件中的毛重默认值设置');
|
|
}
|
|
|
|
log('');
|
|
}
|
|
|
|
// 检查商品上传接口
|
|
function checkUploadApi() {
|
|
log('===== 检查商品上传接口 =====');
|
|
|
|
const content = readFile(config.serverFilePath);
|
|
if (!content) {
|
|
log('无法读取服务器文件');
|
|
return;
|
|
}
|
|
|
|
// 查找商品上传接口
|
|
const uploadApiPattern = /app\.post\('\/api\/products\/upload',/;
|
|
const match = content.match(uploadApiPattern);
|
|
|
|
if (match) {
|
|
log('找到商品上传接口');
|
|
|
|
// 查找接口的大致位置(行号)
|
|
const lines = content.substring(0, match.index).split('\n');
|
|
const lineNumber = lines.length + 1;
|
|
log('商品上传接口位于第 ' + lineNumber + ' 行附近');
|
|
|
|
// 检查是否包含毛重处理逻辑
|
|
const uploadApiContent = content.substring(match.index, Math.min(match.index + 500, content.length));
|
|
const hasGrossWeightHandling = uploadApiContent.includes('grossWeight') &&
|
|
(uploadApiContent.includes('parseFloat') ||
|
|
uploadApiContent.includes('5') ||
|
|
uploadApiContent.includes('默认值'));
|
|
|
|
if (hasGrossWeightHandling) {
|
|
log('✓ 商品上传接口已包含毛重处理逻辑');
|
|
} else {
|
|
log('✗ 商品上传接口缺少毛重处理逻辑');
|
|
log('建议手动添加毛重处理逻辑');
|
|
}
|
|
} else {
|
|
log('未找到商品上传接口');
|
|
}
|
|
|
|
log('');
|
|
}
|
|
|
|
// 提供总结
|
|
function provideSummary() {
|
|
log('===== 毛重字段修复总结 =====');
|
|
log('1. 中间件修复状态: ✓ 已统一所有中间件中的毛重默认值为5');
|
|
log('2. 商品上传接口修复状态: ✗ 未成功添加毛重处理逻辑');
|
|
log('');
|
|
log('建议操作:');
|
|
log('1. 重启服务器以应用中间件的修复');
|
|
log('2. 手动在商品上传接口中添加毛重处理逻辑');
|
|
log('3. 使用现有的test-gross-weight-fix.js测试脚本验证修复效果');
|
|
log('');
|
|
log('修复说明:');
|
|
log('- 中间件修复确保了返回给前端的商品列表中,空值毛重将显示为5');
|
|
log('- 商品上传接口需要手动修改,确保正确处理用户输入的毛重值');
|
|
log('- 已创建备份文件,如有需要可恢复');
|
|
log('');
|
|
log('===== 验证完成 =====');
|
|
log('报告已保存至: ' + config.reportPath);
|
|
}
|
|
|
|
// 执行主函数
|
|
main();
|