From ebd342f3a6ec7a6f15f41b072883af7ba7c443f2 Mon Sep 17 00:00:00 2001 From: zhang1106 <849185023@qq.com> Date: Fri, 26 Dec 2025 15:22:18 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20MySQL=20=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=85=BC=E5=AE=B9=E6=80=A7=E9=97=AE=E9=A2=98=20-=20st?= =?UTF-8?q?rftime=20=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/db.js | 7 +++++-- backend/routes/tickets.js | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/backend/db.js b/backend/db.js index 11c8455..acffed1 100644 --- a/backend/db.js +++ b/backend/db.js @@ -5,6 +5,7 @@ const DB_TYPE = process.env.DB_TYPE || 'sqlite'; // 数据库类型:sqlite 或 // 根据数据库类型创建连接 let sequelize; +let dbDialect = 'sqlite'; // 实际使用的数据库类型 if (DB_TYPE === 'mysql') { // MySQL 配置 @@ -19,6 +20,7 @@ if (DB_TYPE === 'mysql') { logging: process.env.NODE_ENV === 'development' ? console.log : false } ); + dbDialect = 'mysql'; } else { // SQLite 配置(默认) sequelize = new Sequelize({ @@ -28,7 +30,8 @@ if (DB_TYPE === 'mysql') { dialectOptions: { charset: 'utf8mb4' } - }); + ); + dbDialect = 'sqlite'; } -module.exports = { sequelize, DB_TYPE }; \ No newline at end of file +module.exports = { sequelize, DB_TYPE, dbDialect }; \ No newline at end of file diff --git a/backend/routes/tickets.js b/backend/routes/tickets.js index 8fc8738..220009f 100644 --- a/backend/routes/tickets.js +++ b/backend/routes/tickets.js @@ -5,7 +5,7 @@ const { v4: uuidv4 } = require('uuid'); const { Ticket, TicketOperationRecord } = require('../models/ticketIndex'); const Device = require('../models/Device'); const User = require('../models/User'); -const { DB_TYPE } = require('../db'); +const { dbDialect } = require('../db'); // 获取工单统计 (必须定义在 /:ticketId 之前) router.get('/stats', async (req, res) => { @@ -51,7 +51,7 @@ router.get('/stats', async (req, res) => { const monthlyStats = await Ticket.findAll({ where, attributes: [ - [DB_TYPE === 'mysql' + [dbDialect === 'mysql' ? require('sequelize').fn('DATE_FORMAT', require('sequelize').col('createdAt'), '%Y-%m') : require('sequelize').fn('strftime', '%Y-%m', require('sequelize').col('createdAt')), 'month'],