fix: normalize operation log module names across controllers

This commit is contained in:
2026-07-05 19:38:18 +08:00
parent efe13fe664
commit f962633f67
5 changed files with 63 additions and 53 deletions

View File

@@ -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,

View File

@@ -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',

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,