| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- const pool = require('../config/db');
- const logger = require('../logger');
- // 内存缓存
- const roomCache = new Map();
- // 获取所有房间(支持分页)
- const getRooms = async (req, res) => {
- const { page = 1, pageSize = 20 } = req.query;
- const offset = (page - 1) * pageSize;
- logger.info(`开始获取房间信息,页码: ${page}, 每页大小: ${pageSize}`);
- try {
- // 查询数据库
- const query = `
- SELECT * FROM rooms
- LIMIT ? OFFSET ?
- `;
- const [results] = await pool.promise().query(query, [parseInt(pageSize), parseInt(offset)]);
- logger.info(`成功获取 ${results.length} 个房间信息`);
- res.status(200).json(results);
- } catch (err) {
- logger.error('查询房间失败:', err);
- res.status(500).send('Error querying rooms');
- }
- };
- // 新增房间
- const addRoom = async (req, res) => {
- const { room_name, description, floor, orientation } = req.body;
- logger.info(`尝试添加新房间: ${room_name}`);
- if (!room_name) {
- logger.warn('添加房间失败: 房间名称为空');
- return res.status(400).send('房间名称不能为空');
- }
- try {
- const query = 'INSERT INTO rooms (room_name, description, floor, orientation) VALUES (?, ?, ?, ?)';
- const [results] = await pool.promise().query(query, [room_name, description, floor, orientation]);
- logger.info(`成功添加房间: ${room_name}, ID: ${results.insertId}`);
- res.status(201).json({ id: results.insertId, room_name, description, floor, orientation });
- } catch (err) {
- logger.error('添加房间失败:', err);
- res.status(500).send('Error adding room');
- }
- };
- // 删除房间
- const deleteRoom = async (req, res) => {
- const roomId = req.params.id;
- logger.info(`尝试删除房间, ID: ${roomId}`);
- try {
- const query = 'DELETE FROM rooms WHERE id = ?';
- const [results] = await pool.promise().query(query, [roomId]);
- logger.info(`成功删除房间, ID: ${roomId}`);
- res.status(200).json({ message: '房间删除成功' });
- } catch (err) {
- logger.error(`删除房间失败, ID: ${roomId}:`, err);
- res.status(500).send('Error deleting room');
- }
- };
- // 更新房间信息
- const updateRoom = async (req, res) => {
- const roomId = req.params.id;
- const { room_name, description, floor, orientation } = req.body;
- logger.info(`尝试更新房间信息, ID: ${roomId}`);
- if (!room_name) {
- logger.warn('更新房间失败: 房间名称为空');
- return res.status(400).send('房间名称不能为空');
- }
- try {
- const query = 'UPDATE rooms SET room_name = ?, description = ?, floor = ?, orientation = ? WHERE id = ?';
- const [results] = await pool.promise().query(query, [room_name, description, floor, orientation, roomId]);
- if (results.affectedRows === 0) {
- logger.warn(`房间 ${roomId} 不存在`);
- return res.status(404).send('房间不存在');
- }
- logger.info(`成功更新房间信息, ID: ${roomId}`);
- res.status(200).json({ message: '房间信息更新成功' });
- } catch (err) {
- logger.error(`更新房间信息失败, ID: ${roomId}:`, err);
- res.status(500).send('Error updating room');
- }
- };
- module.exports = {
- getRooms,
- addRoom,
- deleteRoom,
- updateRoom,
- };
|