diff --git a/apps/server/src/bills/bills.controller.ts b/apps/server/src/bills/bills.controller.ts index 70f6077..e3c04f0 100644 --- a/apps/server/src/bills/bills.controller.ts +++ b/apps/server/src/bills/bills.controller.ts @@ -38,7 +38,7 @@ export class BillsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '账单', + module: '账单管理', action: '生成账单', detail: `周期 ${dto.periodStart}~${dto.periodEnd}, 生成 ${result.count} 条`, ipAddress, @@ -81,8 +81,8 @@ export class BillsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '账单', - action: `状态变更为${dto.status}`, + module: '账单管理', + action: '确认账单', targetId: +id, targetType: 'bill', ipAddress, @@ -99,8 +99,8 @@ export class BillsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '账单', - action: `批量状态变更为${body.status}`, + module: '账单管理', + action: '确认账单', detail: `IDs: ${body.ids.join(',')}`, ipAddress, userAgent, @@ -116,7 +116,7 @@ export class BillsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '账单', + module: '账单管理', action: '删除账单', targetId: +id, targetType: 'bill', @@ -134,7 +134,7 @@ export class BillsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '账单', + module: '账单管理', action: '批量删除账单', detail: `IDs: ${body.ids.join(',')}`, ipAddress, @@ -157,8 +157,8 @@ export class BillsController { await this.logService.log({ userId: req?.user?.id, username: req?.user?.username, - module: '账单', - action: '导出Excel', + module: '账单管理', + action: '导出账单', detail: `筛选: 周期${periodStart || '全部'}~${periodEnd || '全部'}, 状态${status || '全部'}`, ipAddress, userAgent, @@ -181,8 +181,8 @@ export class BillsController { await this.logService.log({ userId: req?.user?.id, username: req?.user?.username, - module: '账单', - action: '导出PDF', + module: '账单管理', + action: '导出账单', targetId: +id, targetType: 'bill', ipAddress, diff --git a/apps/server/src/deposits/deposits.controller.ts b/apps/server/src/deposits/deposits.controller.ts index 3d7712b..be65b0e 100644 --- a/apps/server/src/deposits/deposits.controller.ts +++ b/apps/server/src/deposits/deposits.controller.ts @@ -48,7 +48,7 @@ export class DepositsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '押金', + module: '押金管理', action: '收取押金', targetId: result.id, targetType: 'deposit', @@ -67,7 +67,7 @@ export class DepositsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '押金', + module: '押金管理', action: '退还押金', targetId: +id, targetType: 'deposit', @@ -86,7 +86,7 @@ export class DepositsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '押金', + module: '押金管理', action: '删除押金记录', targetId: +id, targetType: 'deposit', diff --git a/apps/server/src/expenses/expenses.controller.ts b/apps/server/src/expenses/expenses.controller.ts index 37ea841..b6929a4 100644 --- a/apps/server/src/expenses/expenses.controller.ts +++ b/apps/server/src/expenses/expenses.controller.ts @@ -80,8 +80,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '录入宿舍费用', + module: '费用管理', + action: '录入费用', targetId: result.id, targetType: 'room_expense', detail: `房间${dto.roomId} ¥${dto.amount} ${dto.expenseType}`, @@ -99,7 +99,7 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', + module: '费用管理', action: '批量录入费用', detail: JSON.stringify(dto), ipAddress, @@ -130,8 +130,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '删除宿舍费用', + module: '费用管理', + action: '删除费用', targetId: +id, targetType: 'room_expense', ipAddress, @@ -148,7 +148,7 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', + module: '费用管理', action: '批量删除宿舍费用', detail: `IDs: ${(body.ids || []).join(',')}`, ipAddress, @@ -169,8 +169,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '编辑宿舍费用', + module: '费用管理', + action: '编辑费用', targetId: +id, targetType: 'room_expense', detail: `¥${dto.amount} ${dto.expenseType}`, @@ -188,8 +188,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '录入个人费用', + module: '费用管理', + action: '录入费用', detail: `学生${dto.studentId} ¥${dto.amount} ${dto.expenseType}`, ipAddress, userAgent, @@ -211,8 +211,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '删除个人费用', + module: '费用管理', + action: '删除费用', targetId: +id, ipAddress, userAgent, @@ -228,7 +228,7 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', + module: '费用管理', action: '批量删除个人费用', detail: `IDs: ${(body.ids || []).join(',')}`, ipAddress, @@ -249,8 +249,8 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', - action: '编辑个人费用', + module: '费用管理', + action: '编辑费用', targetId: +id, detail: `¥${dto.amount} ${dto.expenseType}`, ipAddress, @@ -322,7 +322,7 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', + module: '费用管理', action: '导入水电费', detail: result.message, ipAddress, @@ -392,7 +392,7 @@ export class ExpensesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '费用', + module: '费用管理', action: '导入个人附加费', detail: result.message, ipAddress, diff --git a/apps/server/src/occupancies/occupancies.controller.ts b/apps/server/src/occupancies/occupancies.controller.ts index 5529a4f..13cb460 100644 --- a/apps/server/src/occupancies/occupancies.controller.ts +++ b/apps/server/src/occupancies/occupancies.controller.ts @@ -53,7 +53,7 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', + module: '入住管理', action: '批量退宿', detail: `退宿 ${dto.ids.length} 人,日期 ${dto.checkOutDate}`, ipAddress, @@ -70,8 +70,8 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', - action: '入住登记', + module: '入住管理', + action: '办理入住', targetId: result.id, targetType: 'occupancy', detail: `学生${dto.studentId} 入住房间${dto.roomId}`, @@ -89,8 +89,8 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', - action: '退宿', + module: '入住管理', + action: '办理退宿', targetId: +id, targetType: 'occupancy', ipAddress, @@ -107,8 +107,8 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', - action: '换房', + module: '入住管理', + action: '调换宿舍', targetId: +id, targetType: 'occupancy', detail: `换到房间${dto.newRoomId}`, @@ -126,7 +126,7 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', + module: '入住管理', action: '删除入住记录', targetId: +id, targetType: 'occupancy', @@ -144,7 +144,7 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', + module: '入住管理', action: '批量删除入住记录', detail: `IDs: ${(body.ids || []).join(',')}`, ipAddress, @@ -338,7 +338,7 @@ export class OccupanciesController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '入住', + module: '入住管理', action: '批量导入入住', detail: result.message, ipAddress, diff --git a/apps/server/src/students/students.controller.ts b/apps/server/src/students/students.controller.ts index 56c15d6..c54e3a5 100644 --- a/apps/server/src/students/students.controller.ts +++ b/apps/server/src/students/students.controller.ts @@ -6,8 +6,8 @@ import { Delete, Body, Param, - Query, UseGuards, + Query, Request, Res, UseInterceptors, @@ -43,7 +43,7 @@ export class StudentsController { @Get('export') @RequirePermission('student:export') - async exportExcel(@Query('includeArchived') includeArchived?: string, @Res() res?: Response) { + async exportExcel(@Query('includeArchived') includeArchived?: string, @Res() res?: Response, @Request() req?: any) { const students = await this.service.findAll({ includeArchived: includeArchived === 'true' }); const workbook = new ExcelJS.Workbook(); const ws = workbook.addWorksheet('学生名单'); @@ -81,6 +81,16 @@ export class StudentsController { status: statusMap[s.status] || s.status, }); } + const { ipAddress, userAgent } = extractRequestInfo(req); + await this.logService.log({ + userId: req.user?.id, + username: req.user?.username, + module: '学生管理', + action: '导出学生', + detail: `导出 ${students.length} 名学生`, + ipAddress, + userAgent, + }); res!.setHeader( 'Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', @@ -142,8 +152,8 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', - action: '添加学生', + module: '学生管理', + action: '新增学生', targetId: result.id, targetType: 'student', detail: `姓名: ${dto.name}, 电话: ${dto.phone || '无'}, 学号: ${dto.idNumber || '无'}`, @@ -161,7 +171,7 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', + module: '学生管理', action: '编辑学生', targetId: +id, targetType: 'student', @@ -180,8 +190,8 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', - action: '归档学生', + module: '学生管理', + action: '删除学生', targetId: +id, targetType: 'student', ipAddress, @@ -198,8 +208,8 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', - action: '批量归档学生', + module: '学生管理', + action: '批量删除学生', detail: `IDs: ${(body.ids || []).join(',')}`, ipAddress, userAgent, @@ -215,7 +225,7 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', + module: '学生管理', action: '恢复学生', targetId: +id, targetType: 'student', @@ -262,8 +272,8 @@ export class StudentsController { await this.logService.log({ userId: req.user?.id, username: req.user?.username, - module: '学生', - action: '批量导入', + module: '学生管理', + action: '导入学生', detail: result.message, ipAddress, userAgent,