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