| 1234567891011121314151617181920212223242526272829303132333435 |
- 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('获取数据失败');
- }
- }
- };
|