57 lines
2.3 KiB
JavaScript
57 lines
2.3 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const skuDir = path.join(__dirname, '../../产品/飞牛 NAS/fyd-亚克力机箱 - 单/sku');
|
|
|
|
const FIXED_COST = 42 + 12 + 4 + 1 + 1 + 10 + 5 + 10;
|
|
|
|
const CPU_PRICES = { 'N2840': 45, 'N2930': 50, 'AMD-A4': 45, 'J1900': 80, 'J3160': 90 };
|
|
const MEMORY_COST = {
|
|
'2G-16G': { ram: 13, disk: 15 },
|
|
'2G-32G': { ram: 13, disk: 20 },
|
|
'4G-64G': { ram: 25, disk: 40 },
|
|
'4G-128G': { ram: 25, disk: 68 }
|
|
};
|
|
|
|
const files = fs.readdirSync(skuDir).filter(f => f.endsWith('.md'));
|
|
|
|
files.forEach(file => {
|
|
const filePath = path.join(skuDir, file);
|
|
let content = fs.readFileSync(filePath, 'utf-8');
|
|
|
|
// 解析: 亚克力-单-{CPU}-{MEM}.md
|
|
// CPU可能是AMD-A4这样的组合
|
|
const match = file.match(/亚克力-单-([A-Z0-9-]+)-(\d+G)-(\d+G)\.md/);
|
|
if (!match) {
|
|
console.log(`Skipped: ${file} (no match)`);
|
|
return;
|
|
}
|
|
|
|
const cpu = match[1];
|
|
const mem = match[2] + '-' + match[3];
|
|
|
|
console.log(`Processing: ${file} - CPU: ${cpu}, Mem: ${mem}`);
|
|
|
|
const cpuCost = CPU_PRICES[cpu];
|
|
const ramCost = MEMORY_COST[mem].ram;
|
|
const diskCost = MEMORY_COST[mem].disk;
|
|
const totalCost = FIXED_COST + cpuCost + ramCost + diskCost;
|
|
const price = Math.round(totalCost * 1.3);
|
|
|
|
const skuName = `亚克力-单-${cpu}-${mem}`;
|
|
content = content.replace(/\| \*\*产品型号\*\* \| [^|]+ \|/, `| **产品型号** | ${skuName} |`);
|
|
content = content.replace(/\| \*\*CPU\*\* \| [^|]+ \| ¥\d+ \|/, `| **CPU** | ${cpu} | ¥${cpuCost} |`);
|
|
|
|
const ramName = mem.includes('4G') ? 'D3-4G' : 'D3-2G';
|
|
const diskName = mem.includes('128G') ? 'mSATA-128G' : (mem.includes('32G') ? 'mSATA-32G' : 'mSATA-16G');
|
|
content = content.replace(/\| \*\*内存\*\* \| D3-\dG \| ¥\d+ \|/, `| **内存** | ${ramName} | ¥${ramCost} |`);
|
|
content = content.replace(/\| \*\*系统盘\*\* \| mSATA-\d+G \| ¥\d+ \|/, `| **系统盘** | ${diskName} | ¥${diskCost} |`);
|
|
content = content.replace(/\| \*\*总成本\*\* \| - \| ¥\d+ \|/, `| **总成本** | - | ¥${totalCost} |`);
|
|
content = content.replace(/\| \*\*建议零售价\*\* \| - \| ¥\d+ \|/, `| **建议零售价** | - | ¥${price} |`);
|
|
|
|
fs.writeFileSync(filePath, content, 'utf-8');
|
|
console.log(` -> 成本: ¥${totalCost}, 售价: ¥${price}`);
|
|
});
|
|
|
|
console.log(`\n完成! 共处理 ${files.length} 个文件`);
|