const pool = require('../config/db'); const logger = require('../logger'); module.exports = { getUsageData: async (req, res) => { const { range } = req.query; logger.info(`获取电暖器使用数据请求: 时间范围=${range}`); try { let query = ` SELECT r.room_name, SUM(h.duration) AS duration, h.date FROM heater_usage h JOIN rooms r ON h.room_id = r.id `; if (range === 'week') { logger.debug('按周统计电暖器使用数据'); query += ` GROUP BY YEARWEEK(h.date, 1), h.room_id`; } else if (range === 'month') { logger.debug('按月统计电暖器使用数据'); query += ` GROUP BY YEAR(h.date), MONTH(h.date), h.room_id`; } else { logger.debug('按天统计电暖器使用数据'); query += ` GROUP BY h.date, h.room_id`; } const [results] = await pool.promise().query(query); logger.info(`成功获取电暖器使用数据,记录数: ${results.length}`); res.json(results); } catch (error) { logger.error(`获取电暖器使用数据失败: ${error}`); res.status(500).send('获取数据失败'); } } };