feat: 支持审计日志,操作日志

This commit is contained in:
xiaojunnuo
2026-07-12 02:29:54 +08:00
parent 4250d0e266
commit f2855d6dac
83 changed files with 1252 additions and 1341 deletions
@@ -1,5 +1,6 @@
import { ALL, Body, Controller, Inject, Post, Provide } from "@midwayjs/core";
import { BaseController, PlusService, SysInstallInfo, SysSettingsService } from "@certd/lib-server";
import { AuditType } from "../../../modules/sys/enterprise/service/audit-constants.js";
export type PreBindUserReq = {
userId: number;
@@ -18,17 +19,21 @@ export class BasicController extends BaseController {
@Inject()
sysSettingsService: SysSettingsService;
@Post("/preBindUser", { description: "sys:settings:edit" })
getAuditType(): string {
return AuditType.account;
}
@Post("/preBindUser", { description: "sys:settings:edit", summary: "预绑定用户" })
public async preBindUser(@Body(ALL) body: PreBindUserReq) {
// 设置缓存内容
if (body.userId == null || body.userId <= 0) {
throw new Error("用户ID不能为空");
}
await this.plusService.userPreBind(body.userId);
await this.auditLog({ content: `预绑定了用户(ID:${body.userId})` });
return this.ok({});
}
@Post("/bindUser", { description: "sys:settings:edit" })
@Post("/bindUser", { description: "sys:settings:edit", summary: "绑定用户" })
public async bindUser(@Body(ALL) body: BindUserReq) {
if (body.userId == null || body.userId <= 0) {
throw new Error("用户ID不能为空");
@@ -36,20 +41,23 @@ export class BasicController extends BaseController {
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
installInfo.bindUserId = body.userId;
await this.sysSettingsService.saveSetting(installInfo);
await this.auditLog({ content: `绑定了用户(ID:${body.userId})` });
return this.ok({});
}
@Post("/unbindUser", { description: "sys:settings:edit" })
@Post("/unbindUser", { description: "sys:settings:edit", summary: "解绑用户" })
public async unbindUser() {
const installInfo: SysInstallInfo = await this.sysSettingsService.getSetting(SysInstallInfo);
installInfo.bindUserId = null;
await this.sysSettingsService.saveSetting(installInfo);
await this.auditLog({ content: "解绑了用户" });
return this.ok({});
}
@Post("/updateLicense", { description: "sys:settings:edit" })
@Post("/updateLicense", { description: "sys:settings:edit", summary: "更新许可证" })
public async updateLicense(@Body(ALL) body: { license: string }) {
await this.plusService.updateLicense(body.license);
await this.auditLog({ content: "更新了许可证" });
return this.ok(true);
}
}