import { Request, Response } from 'express'; import { prisma } from '../config/database'; import { logger } from '../utils/logger'; export const auditLogController = { // 获取审计日志 async getAuditLogs(req: Request, res: Response): Promise { try { const { page = 1, limit = 10, userId, action, resource } = req.query; const skip = (Number(page) - 1) * Number(limit); const where: any = {}; if (userId) where.userId = String(userId); if (action) where.action = { contains: String(action) }; if (resource) where.resource = { contains: String(resource) }; const [logs, total] = await Promise.all([ prisma.auditLog.findMany({ where, skip, take: Number(limit), orderBy: { createdAt: 'desc' }, include: { user: { select: { id: true, username: true } } } }), prisma.auditLog.count({ where }) ]); res.json({ success: true, data: { logs, pagination: { page: Number(page), limit: Number(limit), total, totalPages: Math.ceil(total / Number(limit)) } } }); } catch (error) { logger.error('Get audit logs error:', error); res.status(500).json({ success: false, message: '获取审计日志失败' }); } } };