const { Op } = require('sequelize'); const OperationLog = require('../models/OperationLog'); const LoginLog = require('../models/LoginLog'); // 获取操作日志列表 exports.getOperationLogs = async (req, res) => { try { const { page = 1, pageSize = 20, username, module, action, status, startTime, endTime } = req.query; // 构建查询条件 const where = {}; if (username) { where.username = { [Op.like]: `%${username}%` }; } if (module) { where.module = module; } if (action) { where.action = action; } if (status) { where.status = status; } if (startTime && endTime) { where.createTime = { [Op.between]: [new Date(startTime), new Date(endTime)] }; } // 查询日志列表 const { count, rows } = await OperationLog.findAndCountAll({ where, order: [['createTime', 'DESC']], offset: (page - 1) * pageSize, limit: parseInt(pageSize) }); res.json({ code: 200, message: '获取成功', data: { list: rows, total: count, page: parseInt(page), pageSize: parseInt(pageSize) } }); } catch (error) { console.error('获取操作日志错误:', error); res.status(500).json({ code: 500, message: '获取操作日志失败', error: error.message }); } }; // 获取登录日志列表 exports.getLoginLogs = async (req, res) => { try { const { page = 1, pageSize = 20, username, loginType, status, startTime, endTime } = req.query; // 构建查询条件 const where = {}; if (username) { where.username = { [Op.like]: `%${username}%` }; } if (loginType) { where.loginType = loginType; } if (status) { where.status = status; } if (startTime && endTime) { where.createTime = { [Op.between]: [new Date(startTime), new Date(endTime)] }; } // 查询日志列表 const { count, rows } = await LoginLog.findAndCountAll({ where, order: [['createTime', 'DESC']], offset: (page - 1) * pageSize, limit: parseInt(pageSize) }); res.json({ code: 200, message: '获取成功', data: { list: rows, total: count, page: parseInt(page), pageSize: parseInt(pageSize) } }); } catch (error) { console.error('获取登录日志错误:', error); res.status(500).json({ code: 500, message: '获取登录日志失败', error: error.message }); } }; // 清空操作日志 exports.clearOperationLogs = async (req, res) => { try { const { startTime, endTime } = req.body; const where = {}; if (startTime && endTime) { where.createTime = { [Op.between]: [new Date(startTime), new Date(endTime)] }; } await OperationLog.destroy({ where }); res.json({ code: 200, message: '清空成功' }); } catch (error) { console.error('清空操作日志错误:', error); res.status(500).json({ code: 500, message: '清空操作日志失败', error: error.message }); } }; // 清空登录日志 exports.clearLoginLogs = async (req, res) => { try { const { startTime, endTime } = req.body; const where = {}; if (startTime && endTime) { where.createTime = { [Op.between]: [new Date(startTime), new Date(endTime)] }; } await LoginLog.destroy({ where }); res.json({ code: 200, message: '清空成功' }); } catch (error) { console.error('清空登录日志错误:', error); res.status(500).json({ code: 500, message: '清空登录日志失败', error: error.message }); } };