This commit is contained in:
s2042968 2025-02-14 17:11:24 +08:00
commit 893fbb5597
6 changed files with 55 additions and 29 deletions

View File

@ -120,6 +120,7 @@ public class LoginInterceptor implements HandlerInterceptor {
.remoteAddr(request.getRemoteAddr()) .remoteAddr(request.getRemoteAddr())
.accessSuccess(true) .accessSuccess(true)
.createTime(new Date()) .createTime(new Date())
.operationModule(userOperation.modelName().key)
.build(); .build();
ElectromagneticResult<?> result = UserThreadLocal.getResult(); ElectromagneticResult<?> result = UserThreadLocal.getResult();

View File

@ -3,6 +3,7 @@ package com.electromagnetic.industry.software.manage.controller;
import com.electromagnetic.industry.software.common.annotations.RequiredPermission; import com.electromagnetic.industry.software.common.annotations.RequiredPermission;
import com.electromagnetic.industry.software.common.annotations.UserOperation; import com.electromagnetic.industry.software.common.annotations.UserOperation;
import com.electromagnetic.industry.software.common.enums.FilePermission; import com.electromagnetic.industry.software.common.enums.FilePermission;
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.manage.pojo.req.CreateFolderDTO; import com.electromagnetic.industry.software.manage.pojo.req.CreateFolderDTO;
import com.electromagnetic.industry.software.manage.pojo.req.FileChunkDTO; import com.electromagnetic.industry.software.manage.pojo.req.FileChunkDTO;
@ -25,33 +26,33 @@ public class EdFileInfoController {
@Resource @Resource
private EdFileInfoService edFileInfoService; private EdFileInfoService edFileInfoService;
@UserOperation(value = "查看了工程树") @UserOperation(value = "查看了工程树", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping("tree") @RequestMapping("tree")
public ElectromagneticResult<?> tree() { public ElectromagneticResult<?> tree() {
return edFileInfoService.tree(); return edFileInfoService.tree();
} }
@UserOperation(value = "创建了文件夹") @UserOperation(value = "创建了文件夹", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping("createFolder") @RequestMapping("createFolder")
public ElectromagneticResult<?> createFolder(@RequestBody CreateFolderDTO createFolderDTO) { public ElectromagneticResult<?> createFolder(@RequestBody CreateFolderDTO createFolderDTO) {
return edFileInfoService.createFolder(createFolderDTO); return edFileInfoService.createFolder(createFolderDTO);
} }
@UserOperation(value = "作废了文件夹") @UserOperation(value = "作废了文件夹", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.DELETE) @RequiredPermission(value = FilePermission.DELETE)
@RequestMapping("delete") @RequestMapping("delete")
public ElectromagneticResult<?> delete(@RequestParam String id) { public ElectromagneticResult<?> delete(@RequestParam String id) {
return edFileInfoService.delete(id); return edFileInfoService.delete(id);
} }
@UserOperation(value = "查询了文件") @UserOperation(value = "查询了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.VIEW) @RequiredPermission(value = FilePermission.VIEW)
@RequestMapping("info") @RequestMapping("info")
public ElectromagneticResult<?> info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { public ElectromagneticResult<?> info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) {
return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO); return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO);
} }
@UserOperation(value = "上传了文件") @UserOperation(value = "上传了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.UPLOAD) @RequiredPermission(value = FilePermission.UPLOAD)
@RequestMapping("upload") @RequestMapping("upload")
public ElectromagneticResult<?> upload(@RequestParam("parentId") String parentId, public ElectromagneticResult<?> upload(@RequestParam("parentId") String parentId,
@ -60,21 +61,21 @@ public class EdFileInfoController {
return edFileInfoService.upload(parentId, file, strategy); return edFileInfoService.upload(parentId, file, strategy);
} }
@UserOperation(value = "下载了文件") @UserOperation(value = "下载了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.DOWNLOAD) @RequiredPermission(value = FilePermission.DOWNLOAD)
@RequestMapping("download") @RequestMapping("download")
public ResponseEntity<InputStreamResource> download(@RequestParam String id, HttpServletResponse response) { public ResponseEntity<InputStreamResource> download(@RequestParam String id, HttpServletResponse response) {
return edFileInfoService.download(id, response); return edFileInfoService.download(id, response);
} }
@UserOperation(value = "更新了文件信息") @UserOperation(value = "更新了文件信息", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.EDIT) @RequiredPermission(value = FilePermission.EDIT)
@RequestMapping("updateFileInfo") @RequestMapping("updateFileInfo")
public ElectromagneticResult<?> updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) { public ElectromagneticResult<?> updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) {
return edFileInfoService.updateFileInfo(updateFileInfoDTO); return edFileInfoService.updateFileInfo(updateFileInfoDTO);
} }
@UserOperation(value = "移动了文件") @UserOperation(value = "移动了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.MOVE) @RequiredPermission(value = FilePermission.MOVE)
@RequestMapping("moveFile") @RequestMapping("moveFile")
public ElectromagneticResult<?> moveFile(@RequestParam("id") String id, public ElectromagneticResult<?> moveFile(@RequestParam("id") String id,
@ -83,7 +84,7 @@ public class EdFileInfoController {
return edFileInfoService.moveFile(id, targetFolderId, strategy); return edFileInfoService.moveFile(id, targetFolderId, strategy);
} }
@UserOperation(value = "复制了文件") @UserOperation(value = "复制了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.MOVE) @RequiredPermission(value = FilePermission.MOVE)
@RequestMapping("copyFile") @RequestMapping("copyFile")
public ElectromagneticResult<?> copyFile(@RequestParam("id") String id, public ElectromagneticResult<?> copyFile(@RequestParam("id") String id,
@ -92,27 +93,27 @@ public class EdFileInfoController {
return edFileInfoService.copyFile(id, targetFolderId, strategy); return edFileInfoService.copyFile(id, targetFolderId, strategy);
} }
@UserOperation(value = "查看了文件历史版本信息") @UserOperation(value = "查看了文件历史版本信息", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.VIEW) @RequiredPermission(value = FilePermission.VIEW)
@RequestMapping("versionView") @RequestMapping("versionView")
public ElectromagneticResult<?> versionView(@RequestParam String fileId) { public ElectromagneticResult<?> versionView(@RequestParam String fileId) {
return edFileInfoService.versionView(fileId); return edFileInfoService.versionView(fileId);
} }
@UserOperation(value = "回退了版本") @UserOperation(value = "回退了版本", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.EDIT) @RequiredPermission(value = FilePermission.EDIT)
@RequestMapping("versionBack") @RequestMapping("versionBack")
public ElectromagneticResult<?> versionBack(@RequestParam String fileId, @RequestParam int targetVersion) { public ElectromagneticResult<?> versionBack(@RequestParam String fileId, @RequestParam int targetVersion) {
return edFileInfoService.versionBack(fileId, targetVersion); return edFileInfoService.versionBack(fileId, targetVersion);
} }
@UserOperation(value = "导出了数据库") @UserOperation(value = "导出了数据库", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping("batchExport") @RequestMapping("batchExport")
public ResponseEntity<InputStreamResource> batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { public ResponseEntity<InputStreamResource> batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException {
return edFileInfoService.batchExport(fileIds, response); return edFileInfoService.batchExport(fileIds, response);
} }
@UserOperation(value = "批量了数据库") @UserOperation(value = "批量了数据库", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping(value = "/mergeChunks", method = RequestMethod.GET) @RequestMapping(value = "/mergeChunks", method = RequestMethod.GET)
public ElectromagneticResult<?> mergeChunks(@RequestParam String identifier, public ElectromagneticResult<?> mergeChunks(@RequestParam String identifier,
@RequestParam String fileName, @RequestParam String fileName,
@ -120,7 +121,7 @@ public class EdFileInfoController {
return edFileInfoService.mergeChunks(identifier, fileName, totalChunks); return edFileInfoService.mergeChunks(identifier, fileName, totalChunks);
} }
@UserOperation(value = "批量了数据库") @UserOperation(value = "批量了数据库", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping(value = "/batchImport", method = RequestMethod.POST) @RequestMapping(value = "/batchImport", method = RequestMethod.POST)
public ElectromagneticResult<?> batchImport(FileChunkDTO fileChunkDTO) { public ElectromagneticResult<?> batchImport(FileChunkDTO fileChunkDTO) {
return edFileInfoService.batchImport(fileChunkDTO); return edFileInfoService.batchImport(fileChunkDTO);
@ -132,27 +133,27 @@ public class EdFileInfoController {
return edFileInfoService.checkChunkExist(fileChunkDTO); return edFileInfoService.checkChunkExist(fileChunkDTO);
} }
@UserOperation(value = "查询了发布管理") @UserOperation(value = "查询了发布管理", modelName = UserOperationModuleEnum.DATABASE)
@RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET)
public ElectromagneticResult<?> uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { public ElectromagneticResult<?> uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) {
return edFileInfoService.uploadRecord(pageNum, pageSize); return edFileInfoService.uploadRecord(pageNum, pageSize);
} }
@UserOperation(value = "查询了文件详细信息") @UserOperation(value = "查询了文件详细信息", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.VIEW) @RequiredPermission(value = FilePermission.VIEW)
@RequestMapping(value = "/fileDetail", method = RequestMethod.GET) @RequestMapping(value = "/fileDetail", method = RequestMethod.GET)
public ElectromagneticResult<?> detail(@RequestParam String id) { public ElectromagneticResult<?> detail(@RequestParam String id) {
return edFileInfoService.detail(id); return edFileInfoService.detail(id);
} }
@UserOperation(value = "查询了子文件集") @UserOperation(value = "查询了子文件集", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.VIEW) @RequiredPermission(value = FilePermission.VIEW)
@RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET)
public ElectromagneticResult<?> queryChildFolder(@RequestParam String parentId) { public ElectromagneticResult<?> queryChildFolder(@RequestParam String parentId) {
return edFileInfoService.queryChildFolder(parentId); return edFileInfoService.queryChildFolder(parentId);
} }
@UserOperation(value = "预览了文件") @UserOperation(value = "预览了文件", modelName = UserOperationModuleEnum.DATABASE)
@RequiredPermission(value = FilePermission.DOWNLOAD) @RequiredPermission(value = FilePermission.DOWNLOAD)
@RequestMapping(value = "preview", method = RequestMethod.GET) @RequestMapping(value = "preview", method = RequestMethod.GET)
public ResponseEntity<InputStreamResource> preview(@RequestParam String id, HttpServletResponse response) { public ResponseEntity<InputStreamResource> preview(@RequestParam String id, HttpServletResponse response) {

View File

@ -1,6 +1,7 @@
package com.electromagnetic.industry.software.manage.controller; package com.electromagnetic.industry.software.manage.controller;
import com.electromagnetic.industry.software.common.annotations.UserOperation; import com.electromagnetic.industry.software.common.annotations.UserOperation;
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult;
import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO; import com.electromagnetic.industry.software.manage.pojo.req.FolderResortDTO;
import com.electromagnetic.industry.software.manage.pojo.req.QueryPublishStatus; import com.electromagnetic.industry.software.manage.pojo.req.QueryPublishStatus;
@ -21,67 +22,67 @@ public class ProjectController {
@Resource @Resource
private EdPrjService edPrjService; private EdPrjService edPrjService;
@UserOperation(value = "创建了工程") @UserOperation(value = "创建了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("create") @RequestMapping("create")
public ElectromagneticResult<?> create(@RequestParam String prjName) { public ElectromagneticResult<?> create(@RequestParam String prjName) {
return edPrjService.createNewPrj(prjName); return edPrjService.createNewPrj(prjName);
} }
@UserOperation(value = "复制了文件") @UserOperation(value = "复制了文件", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("废除了工程") @RequestMapping("废除了工程")
public ElectromagneticResult<?> delete(@RequestParam String prjId) { public ElectromagneticResult<?> delete(@RequestParam String prjId) {
return edPrjService.delete(prjId); return edPrjService.delete(prjId);
} }
@UserOperation(value = "修改了工程名") @UserOperation(value = "修改了工程名", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("modify") @RequestMapping("modify")
public ElectromagneticResult<?> modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) { public ElectromagneticResult<?> modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) {
return edPrjService.modifyPrjName(prjId, newPrjName); return edPrjService.modifyPrjName(prjId, newPrjName);
} }
@UserOperation(value = "查询了所有工程") @UserOperation(value = "查询了所有工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("queryAll") @RequestMapping("queryAll")
public ElectromagneticResult<?> queryAll() { public ElectromagneticResult<?> queryAll() {
return edPrjService.queryAllPrjInfo(); return edPrjService.queryAllPrjInfo();
} }
@UserOperation(value = "添加了子集") @UserOperation(value = "添加了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("addFolder") @RequestMapping("addFolder")
public ElectromagneticResult<?> addFolder(@RequestParam String folderName, @RequestParam String parentId) { public ElectromagneticResult<?> addFolder(@RequestParam String folderName, @RequestParam String parentId) {
return edPrjService.addFolder(parentId, folderName); return edPrjService.addFolder(parentId, folderName);
} }
@UserOperation(value = "修改了子集名称") @UserOperation(value = "修改了子集名称", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("modifyFolder") @RequestMapping("modifyFolder")
public ElectromagneticResult<?> modifyFolder(@RequestParam String newFolderName, @RequestParam String id) { public ElectromagneticResult<?> modifyFolder(@RequestParam String newFolderName, @RequestParam String id) {
return edPrjService.modifyFolder(id, newFolderName); return edPrjService.modifyFolder(id, newFolderName);
} }
@UserOperation(value = "废除了子集") @UserOperation(value = "废除了子集", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("deleteFolder") @RequestMapping("deleteFolder")
public ElectromagneticResult<?> deleteFolder(@RequestParam String id) { public ElectromagneticResult<?> deleteFolder(@RequestParam String id) {
return edPrjService.deleteFolder(id); return edPrjService.deleteFolder(id);
} }
@UserOperation(value = "更改了层级顺序") @UserOperation(value = "更改了层级顺序", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("folderResort") @RequestMapping("folderResort")
public ElectromagneticResult<?> folderResort(@RequestBody List<FolderResortDTO> folderResortDTOList) { public ElectromagneticResult<?> folderResort(@RequestBody List<FolderResortDTO> folderResortDTOList) {
return edPrjService.folderResort(folderResortDTOList); return edPrjService.folderResort(folderResortDTOList);
} }
@UserOperation(value = "发布了工程") @UserOperation(value = "发布了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("publish") @RequestMapping("publish")
public ElectromagneticResult<?> publish(@RequestParam String prjId) { public ElectromagneticResult<?> publish(@RequestParam String prjId) {
return edPrjService.publish(prjId); return edPrjService.publish(prjId);
} }
@UserOperation(value = "引用了工程") @UserOperation(value = "引用了工程", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("follow") @RequestMapping("follow")
public ElectromagneticResult<?> follow(@RequestParam String sourceId, @RequestParam String targetId) { public ElectromagneticResult<?> follow(@RequestParam String sourceId, @RequestParam String targetId) {
return edPrjService.follow(sourceId, targetId); return edPrjService.follow(sourceId, targetId);
} }
@UserOperation(value = "查询了工程发布状态") @UserOperation(value = "查询了工程发布状态", modelName = UserOperationModuleEnum.PRJ_SETTING)
@RequestMapping("publishStatus") @RequestMapping("publishStatus")
public ElectromagneticResult<?> publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) { public ElectromagneticResult<?> publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) {
return edPrjService.publishStatus(queryPublishStatus); return edPrjService.publishStatus(queryPublishStatus);

View File

@ -34,4 +34,6 @@ public class UserAccessLog {
private String failureReason; private String failureReason;
private Date createTime; private Date createTime;
private String operationModule;
} }

View File

@ -1,5 +1,7 @@
package com.electromagnetic.industry.software.common.annotations; package com.electromagnetic.industry.software.common.annotations;
import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum;
import java.lang.annotation.*; import java.lang.annotation.*;
@Documented @Documented
@ -8,4 +10,6 @@ import java.lang.annotation.*;
public @interface UserOperation { public @interface UserOperation {
String value() default ""; String value() default "";
UserOperationModuleEnum modelName() default UserOperationModuleEnum.UNKNOWN;
} }

View File

@ -0,0 +1,17 @@
package com.electromagnetic.industry.software.common.enums;
import lombok.AllArgsConstructor;
@AllArgsConstructor
public enum UserOperationModuleEnum {
PRJ_SETTING("prjSetting", "层级定义"),
UNKNOWN("unknown", "未分组"),
DATABASE("database", "数据库管理"),
USER("user", "人员管理"),
PERMISSION("permission", "权限管理");
public final String key;
public final String desc;
}