| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- // 实际修复测试 - 模拟真实场景
- console.log('=== 实际修复测试 ===\n');
- // 模拟实际打印内容(从数据库查询的结果)
- const actualPrintedContent = `订单号: ORD20251210112844577127
- 时间: 2025-12-10 19:28:44
- 商品: 洗护产品6 × 1 = ¥0.01
- 合计: ¥0.01
- 备注: {remark}
- 收货人姓名: 1
- 地址: 1
- 联系电话: 13100000000`;
- console.log('实际打印内容:');
- console.log(actualPrintedContent);
- console.log('\n是否包含 {remark}:', actualPrintedContent.includes('{remark}'));
- // 修复逻辑测试
- function testFix() {
- console.log('\n=== 测试修复逻辑 ===');
- // 场景1: 模板是 备注: {remark}
- const template1 = `订单号: {orderNo}
- 时间: {orderTime}
- 商品: {goodsList}
- 合计: {payAmount}
- 备注: {remark}
- 收货人姓名: {receiverName}
- 地址: {address}
- 联系电话: {receiverPhone}`;
- // 场景2: 模板是 备注1: {remark}(数据库中的)
- const template2 = `订单号: {orderNo}
- 时间: {orderTime}
- 商品: {goodsList}
- 合计: {totalAmount}
- 备注1: {remark}
- 收货人姓名: {receiverName}
- 地址: {address}
- 联系电话: {phone}`;
- const variables = {
- orderNo: 'TEST123',
- orderTime: '2025-12-10 12:00:00',
- goodsList: '测试商品 × 1 = ¥1.00',
- payAmount: '¥1.00',
- totalAmount: '¥1.00',
- remark: '测试备注内容',
- receiverName: '张三',
- address: '测试地址',
- receiverPhone: '13800138000',
- phone: '13800138000'
- };
- // 测试修复后的替换逻辑
- function applyFix(template, vars) {
- let content = template;
- // 1. 标准替换
- for (const [key, value] of Object.entries(vars)) {
- const safeValue = value != null ? String(value) : '无';
- const placeholder = `{${key}}`;
- if (content.includes(placeholder)) {
- content = content.split(placeholder).join(safeValue);
- }
- }
- // 2. 清理未替换的 {remark}
- const remarkPatterns = [
- /\{remark\}/g,
- /\{\s*remark\s*\}/g,
- ];
- for (const pattern of remarkPatterns) {
- if (pattern.test(content)) {
- const safeRemark = vars.remark != null ? String(vars.remark) : '无';
- content = content.replace(pattern, safeRemark);
- }
- }
- return content;
- }
- console.log('\n1. 模板: 备注: {remark}');
- const result1 = applyFix(template1, variables);
- console.log('结果:', result1.includes('{remark}') ? '❌ 仍有 {remark}' : '✅ 已替换');
- console.log(result1);
- console.log('\n2. 模板: 备注1: {remark}');
- const result2 = applyFix(template2, variables);
- console.log('结果:', result2.includes('{remark}') ? '❌ 仍有 {remark}' : '✅ 已替换');
- console.log(result2);
- console.log('\n3. 空备注测试');
- const emptyVars = { ...variables, remark: null };
- const result3 = applyFix(template1, emptyVars);
- console.log('结果:', result3.includes('{remark}') ? '❌ 仍有 {remark}' : '✅ 已替换');
- console.log(result3);
- }
- testFix();
- console.log('\n\n=== 建议操作 ===');
- console.log('1. 重启服务清除缓存');
- console.log('2. 更新数据库模板为正确格式');
- console.log('3. 创建一个测试订单验证修复效果');
- console.log('4. 检查是否有其他代码修改模板');
|