| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- // 调试打印任务创建问题
- const { DataSource } = require('typeorm');
- async function debugPrintTask() {
- console.log('=== 调试打印任务创建问题 ===\n');
- // 创建数据源
- const dataSource = new DataSource({
- type: 'postgres',
- host: '127.0.0.1',
- port: 5432,
- username: 'postgres',
- password: '',
- database: 'postgres',
- synchronize: false,
- logging: false
- });
- try {
- await dataSource.initialize();
- console.log('✅ 数据库连接成功\n');
- const tenantId = 1;
- const orderId = 25;
- // 1. 检查订单是否存在
- console.log('1. 检查订单是否存在...');
- const order = await dataSource.query(
- 'SELECT id, order_no, amount, pay_state, state FROM orders_mt WHERE id = $1 AND tenant_id = $2',
- [orderId, tenantId]
- );
- if (order.length === 0) {
- console.log('❌ 订单不存在');
- return;
- }
- console.log('✅ 订单存在:', order[0]);
- console.log(` 订单号: ${order[0].order_no}`);
- console.log(` 金额: ${order[0].amount}`);
- console.log(` 支付状态: ${order[0].pay_state}`);
- console.log(` 订单状态: ${order[0].state}\n`);
- // 2. 检查打印机配置
- console.log('2. 检查打印机配置...');
- const printer = await dataSource.query(
- 'SELECT * FROM feie_printer_mt WHERE tenant_id = $1 AND is_default = 1',
- [tenantId]
- );
- if (printer.length === 0) {
- console.log('❌ 没有默认打印机');
- return;
- }
- console.log('✅ 默认打印机存在:', printer[0].printer_name);
- console.log(` 打印机SN: ${printer[0].printer_sn}`);
- console.log(` 打印机状态: ${printer[0].printer_status}\n`);
- // 3. 检查防退款延迟配置
- console.log('3. 检查防退款延迟配置...');
- const delayConfig = await dataSource.query(
- 'SELECT config_value FROM system_config_mt WHERE tenant_id = $1 AND config_key = $2',
- [tenantId, 'feie.anti_refund_delay']
- );
- const delaySeconds = delayConfig.length > 0 ? parseInt(delayConfig[0].config_value) : 120;
- console.log(`✅ 防退款延迟时间: ${delaySeconds}秒\n`);
- // 4. 检查飞鹅API配置
- console.log('4. 检查飞鹅API配置...');
- const apiConfigs = await dataSource.query(
- 'SELECT config_key, config_value FROM system_config_mt WHERE tenant_id = $1 AND config_key LIKE $2',
- [tenantId, 'feie.api.%']
- );
- if (apiConfigs.length === 0) {
- console.log('❌ 飞鹅API配置不存在');
- } else {
- console.log('✅ 飞鹅API配置存在:');
- apiConfigs.forEach(config => {
- console.log(` ${config.config_key}: ${config.config_value}`);
- });
- console.log();
- }
- // 5. 手动创建打印任务(模拟代码逻辑)
- console.log('5. 手动创建打印任务...');
- const taskId = `FEIE_${Date.now()}_${Math.floor(Math.random() * 10000)}`;
- const scheduledAt = new Date(Date.now() + delaySeconds * 1000);
- try {
- await dataSource.query(`
- INSERT INTO feie_print_task_mt
- (tenant_id, task_id, order_id, printer_sn, content, print_type, print_status, scheduled_at, retry_count, max_retries, created_at, updated_at)
- VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, NOW(), NOW())
- `, [
- tenantId,
- taskId,
- orderId,
- printer[0].printer_sn,
- `测试打印内容\n订单号: ${order[0].order_no}\n时间: ${new Date().toLocaleString()}`,
- 'RECEIPT',
- 'DELAYED',
- scheduledAt,
- 0,
- 3
- ]);
- console.log('✅ 手动创建打印任务成功');
- console.log(` 任务ID: ${taskId}`);
- console.log(` 计划时间: ${scheduledAt}\n`);
- // 6. 验证任务是否创建成功
- console.log('6. 验证任务是否创建成功...');
- const createdTask = await dataSource.query(
- 'SELECT * FROM feie_print_task_mt WHERE tenant_id = $1 AND task_id = $2',
- [tenantId, taskId]
- );
- if (createdTask.length > 0) {
- console.log('✅ 任务验证成功:');
- console.log(` 任务ID: ${createdTask[0].task_id}`);
- console.log(` 订单ID: ${createdTask[0].order_id}`);
- console.log(` 状态: ${createdTask[0].print_status}`);
- console.log(` 创建时间: ${createdTask[0].created_at}`);
- } else {
- console.log('❌ 任务验证失败 - 任务未找到');
- }
- // 7. 清理测试数据
- console.log('\n7. 清理测试数据...');
- await dataSource.query(
- 'DELETE FROM feie_print_task_mt WHERE tenant_id = $1 AND task_id = $2',
- [tenantId, taskId]
- );
- console.log('✅ 测试数据已清理');
- } catch (error) {
- console.error('❌ 手动创建打印任务失败:', error.message);
- console.error('错误堆栈:', error.stack);
- }
- } catch (error) {
- console.error('调试失败:', error);
- } finally {
- try {
- await dataSource.destroy();
- console.log('\n🔌 数据库连接已关闭');
- } catch (error) {
- console.error('关闭数据库连接失败:', error);
- }
- }
- }
- // 运行调试
- debugPrintTask().catch(error => {
- console.error('调试脚本执行失败:', error);
- process.exit(1);
- });
|