diff --git a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/controller/FileController.java b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/controller/FileController.java index 727999b..18a56f8 100644 --- a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/controller/FileController.java +++ b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/controller/FileController.java @@ -32,7 +32,7 @@ public class FileController { public ElectromagneticResult upload(@RequestParam("file") MultipartFile file, @RequestParam("path") String path) { BackupFileResLog backupFileResLog = BackupFileResLog.builder().backupStartTime(new Date()).fileName(file.getOriginalFilename()).backupStatus(true).build(); try { - fileService.upload(file, path); + fileService.upload(file); } catch (Exception e) { String details = ExceptionUtil.stacktraceToString(e); backupFileResLog.setBackupStatus(false); diff --git a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/service/FileService.java b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/service/FileService.java index 8234da0..0e41156 100644 --- a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/service/FileService.java +++ b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/service/FileService.java @@ -6,6 +6,6 @@ import java.io.IOException; public interface FileService { - void upload(MultipartFile file, String path) throws IOException; + void upload(MultipartFile file) throws IOException; } diff --git a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/serviceimp/FileServiceImpl.java b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/serviceimp/FileServiceImpl.java index c62d818..138556a 100644 --- a/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/serviceimp/FileServiceImpl.java +++ b/electrmangnetic-backup/src/main/java/com/electromagnetic/industry/software/backup/serviceimp/FileServiceImpl.java @@ -17,10 +17,10 @@ public class FileServiceImpl implements FileService { private BackupPro backupPro; @Override - public void upload(MultipartFile file, String path) throws IOException { + public void upload(MultipartFile file) throws IOException { String saveFolder = backupPro.getSaveFolder(); String fileName = file.getOriginalFilename(); - String destPath = saveFolder + File.separator + path + File.separator + fileName; + String destPath = saveFolder + File.separator + File.separator + fileName; if (!FileUtil.exist(destPath)) { FileUtil.writeFromStream(file.getInputStream(), destPath); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java index 25d2684..f83b32a 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/LoginInterceptor.java @@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.manage.config; import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.SystemClock; +import cn.hutool.json.JSONUtil; import com.electromagnetic.industry.software.common.annotations.UserOperation; import com.electromagnetic.industry.software.common.cons.UserConstants; import com.electromagnetic.industry.software.common.enums.AdminTypeEnum; @@ -25,6 +26,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Date; +import java.util.Optional; @Component @Slf4j @@ -107,9 +109,11 @@ public class LoginInterceptor implements HandlerInterceptor { UserOperation userOperation = ((HandlerMethod) handler).getMethod().getAnnotation(UserOperation.class); String reqArgs = UserThreadLocal.getReqArgs(); + UserLoginInfo user = Optional.of(UserThreadLocal.getUser()).orElse(new UserLoginInfo()); + UserAccessLog userAccessLog = UserAccessLog.builder() .id(IdWorker.getSnowFlakeIdString()) - .userId(UserThreadLocal.getUserId()) + .userId(user.getUserId()) .accessStartTime(DateUtil.date(accessStartTime)) .accessEndTime(DateUtil.date(accessEndTime)) .accessDuration(accessEndTime - accessStartTime) @@ -122,10 +126,13 @@ public class LoginInterceptor implements HandlerInterceptor { .createTime(new Date()) .operationModule(userOperation.modelName().key) .operationMsg(UserThreadLocal.getUser().getSuccessMsg()) + .dataId(user.getDataId()) + .parentId(user.getParentId()) .build(); - ElectromagneticResult result = UserThreadLocal.getResult(); + ElectromagneticResult result = user.getResult(); if (result != null) { + userAccessLog.setResponse(JSONUtil.toJsonStr(result)); if (!result.getSuccess()) { userAccessLog.setAccessSuccess(false); userAccessLog.setOperationMsg(result.getErrorMessage()); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/AccessLogController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/AccessLogController.java index 45279ff..95016d9 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/AccessLogController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/AccessLogController.java @@ -1,11 +1,38 @@ package com.electromagnetic.industry.software.manage.controller; +import cn.hutool.core.lang.Assert; +import com.electromagnetic.industry.software.common.annotations.UserOperation; +import com.electromagnetic.industry.software.common.enums.AdminTypeEnum; +import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum; +import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; +import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.pojo.req.AccessLogQueryDTO; +import com.electromagnetic.industry.software.manage.service.UserAccessLogService; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; + @RestController +@RequestMapping("/data/ed/log/") public class AccessLogController { + @Resource + private UserAccessLogService userAccessLogService; + + @UserOperation(value = "查看操作记录", modelName = UserOperationModuleEnum.LOG) + @RequestMapping("file") + public ElectromagneticResult file(@RequestBody AccessLogQueryDTO accessLogQueryDTO) { + return userAccessLogService.info(accessLogQueryDTO, false); + } + @UserOperation(value = "查看审计", modelName = UserOperationModuleEnum.LOG) + @RequestMapping("audit") + public ElectromagneticResult audit(@RequestBody AccessLogQueryDTO accessLogQueryDTO) { + Assert.isTrue(UserThreadLocal.getAdminType().equals(AdminTypeEnum.AUDIT.getValue()), "当前用户没有查看审计的权限"); + return userAccessLogService.info(accessLogQueryDTO, true); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java index 5291757..1673099 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileInfoController.java @@ -39,7 +39,7 @@ public class EdFileInfoController { return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.COMMON.code); } - @UserOperation(value = "作废文件夹", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "作废", modelName = UserOperationModuleEnum.DATABASE) @RequiredPermission(value = FilePermission.DELETE) @RequestMapping("delete") public ElectromagneticResult delete(@RequestParam String id) { @@ -161,8 +161,4 @@ public class EdFileInfoController { return edFileInfoService.preview(id, response, DataOwnEnum.COMMON.code); } - - - - } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserAccessLog.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserAccessLog.java index 9af36a7..9b35745 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserAccessLog.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/UserAccessLog.java @@ -61,4 +61,7 @@ public class UserAccessLog { // 父id,最权限需要 private String parentId; + // 请求返回的结果 + private String response; + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/AccessLogQueryDTO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/AccessLogQueryDTO.java index 636eadf..c900fb4 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/AccessLogQueryDTO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/req/AccessLogQueryDTO.java @@ -11,4 +11,6 @@ public class AccessLogQueryDTO { private int pageSize; + private String keyword; + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/RespPageVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/RespPageVO.java index b723ae8..c1cab80 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/RespPageVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/RespPageVO.java @@ -11,12 +11,12 @@ import java.util.List; public class RespPageVO implements Serializable { private static final long serialVersionUID = 1L; - private List list; + private List records; private long total; - public RespPageVO(long total, List list) { - this.list = list; + public RespPageVO(long total, List records) { + this.records = records; this.total = total; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java index c504d26..e83139f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/CommonService.java @@ -110,7 +110,7 @@ public class CommonService { public String getFileSysPath(String dbPath, int dataOwnCode) { ArrayList paths = CollUtil.newArrayList(dbPath.split(MYSQL_FILE_PATH_SPLIT)); String path = getDbPath(paths); - String prePath = dataOwnCode == DataOwnEnum.USER_PRJ.code ? eleDataPath : userDataPath; + String prePath = dataOwnCode == DataOwnEnum.USER_PRJ.code ? userDataPath : eleDataPath; return prePath + File.separator + path; } @@ -306,11 +306,10 @@ public class CommonService { if (fileInfo.getDataOwn().equals(DataOwnEnum.SYS_PRJ.code)) { // 删除的是层级目录 long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery() .eq(EdFileInfo::getDataOwn, DataOwnEnum.COMMON.code) - .eq(EdFileInfo::getDataOwn, dataOwnCode) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT)); if (count > 0) { - String info = StrFormatter.format("删除文件 {} 失败,目录非空。", fileInfo.getFileName()); + String info = StrFormatter.format("删除层级 {} 失败,目录非空。", fileInfo.getFileName()); log.info(info); return ElectromagneticResultUtil.fail("-1", info); } else { @@ -344,7 +343,7 @@ public class CommonService { .eq(EdFileInfo::getParentId, id) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); if (count > 0) { - String info = StrFormatter.format("删除文件 {} 失败,目录非空。", fileInfo.getFileName()); + String info = StrFormatter.format("删除文件夹 {} 失败,目录非空。", fileInfo.getFileName()); log.info(info); return ElectromagneticResultUtil.fail("-1", info); } else { @@ -358,10 +357,10 @@ public class CommonService { } } // fileSystemService.renameFile(srcFilePath, srcPrjName + "." + IdUtil.fastSimpleUUID() + DELETE_FLAG); - UserThreadLocal.setSuccessInfo(id, "删除目录 {} 成功", fileInfo.getFileName()); + UserThreadLocal.setSuccessInfo(srcFileInfo.getParentId(), id, "删除目录 {} 成功", fileInfo.getFileName()); return ElectromagneticResultUtil.success(true); } catch (Exception e) { - String info = StrFormatter.format("删除文件 {} 失败,目录非空。", fileInfo.getFileName()); + String info = StrFormatter.format("删除 {} 失败,原因 {}", fileInfo.getFileName(), e.getMessage()); log.error(info, e); throw new BizException(info); } @@ -421,4 +420,15 @@ public class CommonService { } } + + public String getLastPrjLeafId(String path) { + String[] split = path.split(MYSQL_FILE_PATH_SPLIT); + for (int i = split.length - 1; i >= 0; i--) { + if (split[i].length() < 19) { + return split[i]; + } + } + return ""; + } + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index 2241ba6..6c76d8c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java @@ -145,7 +145,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl records = BeanUtil.copyToList(edFileInfoPage.getRecords(), FileInfoVO.class); resetFileSize(records); - UserThreadLocal.setSuccessInfo("", "", "查询搜索文件成功"); + UserThreadLocal.setSuccessInfo("", "", "查询文件成功"); return ElectromagneticResultUtil.success(new RespPageVO<>(total, records)); } @@ -174,7 +174,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl res = commonService.addFolder(createFolderDTO.getParentId(), createFolderDTO.getNewFolderName(), false, folderId, createFolderDTO.getFileNote(), dataOwnCode); - UserThreadLocal.setSuccessInfo(createFolderDTO.getParentId(), res.getData() + "", "创建文件夹成功"); + UserThreadLocal.setSuccessInfo(createFolderDTO.getParentId(), res.getData() + "", "创建文件夹 {} 成功", createFolderDTO.getNewFolderName()); return res; } @@ -211,7 +211,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl res = commonService.deleteFolder(id, dataOwnCode); - UserThreadLocal.setSuccessInfo(id, "作废目录 {} 成功", fileInfo.getFileName()); + UserThreadLocal.setSuccessInfo(fileInfo.getParentId(), id, "作废目录 {} 成功", fileInfo.getFileName()); return res; } Date now = new Date(); @@ -222,7 +222,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl this.save(fileInfo); // 保存到文件系统 fileSystemService.createDirectory(commonService.getEleDataPath(dataOwnCode) + File.separator + prjName); - UserThreadLocal.setSuccessInfo(newPrjId, "创建 {} 项目成功。", prjName); + UserThreadLocal.setSuccessInfo("", newPrjId, "创建 {} 项目成功。", prjName); } catch (Exception e) { String info = StrFormatter.format("工程 {} 创建失败,具体为--->{}", prjName, e.getMessage()); log.error(info, e); @@ -156,7 +156,7 @@ public class EdPrjServiceImpl extends ServiceImpl .set(EdFileInfo::getUpdatedBy, UserThreadLocal.getUserId()) .set(EdFileInfo::getUpdatedTime, new Date())); fileSystemService.renameFile(commonService.getEleDataPath(dataOwnCode), oldPrjName, newPrjName); - UserThreadLocal.setSuccessInfo(prjId, "修改工层名 {} 为 {} 成功。", oldPrjName, newPrjName); + UserThreadLocal.setSuccessInfo("", prjId, "修改工层名 {} 为 {} 成功。", oldPrjName, newPrjName); } catch (Exception e) { String info = StrFormatter.format("修改工程名异常--->{},{}", newPrjName, e.getMessage()); log.error(info, e); @@ -197,7 +197,7 @@ public class EdPrjServiceImpl extends ServiceImpl // 对原文件进行处理 EdFileInfo prjFile = this.getById(prjId); fileSystemService.renameFile(commonService.getFileSysPath(prjId, dataOwnCode), prjFile + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); - UserThreadLocal.setSuccessInfo(prjId, "废除 {} 项目成功。", prjFile.getFileName()); + UserThreadLocal.setSuccessInfo("", prjId, "废除 {} 项目成功。", prjFile.getFileName()); return ElectromagneticResultUtil.success(true); } catch (Exception e) { String info = "废除项目失败"; @@ -228,7 +228,7 @@ public class EdPrjServiceImpl extends ServiceImpl int id = Integer.parseInt(this.baseMapper.maxPrjId()); String folderId = String.valueOf(id + 1); ElectromagneticResult electromagneticResult = commonService.addFolder(parentId, folderName, true, folderId, null, dataOwnCode); - UserThreadLocal.setSuccessInfo(electromagneticResult.getData() + "", "添加子集 {} 成功", folderName); + UserThreadLocal.setSuccessInfo(parentId, electromagneticResult.getData() + "", "添加子集 {} 成功", folderName); return electromagneticResult; } @@ -319,7 +319,7 @@ public class EdPrjServiceImpl extends ServiceImpl .likeRight(EdFileInfo::getFilePath, prjId); this.update(updateWrapper); commonService.deletePrjSysDir(fileSysPaths); - UserThreadLocal.setSuccessInfo(prjId, "项目 {} 发布成功", fileInfo.getFileName()); + UserThreadLocal.setSuccessInfo("", prjId, "项目 {} 发布成功", fileInfo.getFileName()); return ElectromagneticResultUtil.success(true); } catch (Exception e) { String info = StrFormatter.format("项目 {} 发布异常", fileInfo.getFileName()); @@ -463,7 +463,7 @@ public class EdPrjServiceImpl extends ServiceImpl .eq(EdFileInfo::getId, id) .set(EdFileInfo::getFileName, newFolderName)); fileSystemService.renameFile(sysFilePath, newFolderName); - UserThreadLocal.setSuccessInfo(id, "子集名称 {} 修改成功", newFolderName); + UserThreadLocal.setSuccessInfo(parentId, id, "子集名称 {} 修改成功", newFolderName); return ElectromagneticResultUtil.success(true); } catch (Exception e) { String info = StrFormatter.format("修改子集名称为 {} 失败", newFolderName); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java index 09b737d..66856cf 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileSystemServiceImpl.java @@ -40,6 +40,8 @@ public class FileSystemServiceImpl implements FileSystemService { @Override public void renameFile(String sourcePath, String newName) { + sourcePath = sourcePath.replace("//", "/"); + sourcePath = sourcePath.endsWith("/") ? sourcePath.substring(0, sourcePath.length() - 1) : sourcePath; FileUtil.rename(new File(sourcePath), newName, true); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserAccessLogServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserAccessLogServiceImpl.java index dc9e468..a4ce647 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserAccessLogServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserAccessLogServiceImpl.java @@ -1,10 +1,12 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.manage.mapper.UserAccessLogMapper; @@ -47,18 +49,38 @@ public class UserAccessLogServiceImpl extends ServiceImpl qr.like(UserAccessLog::getAction, pars.getKeyword()) + .or() + .like(UserAccessLog::getRequestUrl, pars.getKeyword()) + .or() + .like(UserAccessLog::getRequestIp, pars.getKeyword()) + .or() + .like(UserAccessLog::getRemoteAddr, pars.getKeyword()) + .or() + .like(UserAccessLog::getOperationMsg, pars.getKeyword()) + .or() + .like(UserAccessLog::getOperationModule, pars.getKeyword())); + } + Page logs = this.baseMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper); List records = logs.getRecords(); List res = BeanUtil.copyToList(records, AccessLogQueryVO.class); - setUserName(res); + setOtherInfo(res); return ElectromagneticResultUtil.success(new RespPageVO<>(logs.getTotal(), res)); } - private void setUserName(List res) { + private void setOtherInfo(List res) { List userIds = res.stream().map(AccessLogQueryVO::getUserId).collect(Collectors.toList()); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(User.class).select(User::getUserId, User::getUserName).in(User::getUserId, userIds); Map idNameMap = userMapper.selectList(wrapper).stream().collect(Collectors.toMap(User::getUserId, User::getUserName)); - res.forEach(e -> e.setUsername(idNameMap.get(e.getUserId()))); + + res.forEach(e -> { + e.setUsername(idNameMap.get(e.getUserId())); + e.setOperationModule(UserOperationModuleEnum.getDesc(e.getOperationModule())); + }); + } } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/UserOperationModuleEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/UserOperationModuleEnum.java index 7ec9525..401c133 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/UserOperationModuleEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/UserOperationModuleEnum.java @@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.common.enums; import lombok.AllArgsConstructor; +import java.util.Objects; + @AllArgsConstructor public enum UserOperationModuleEnum { @@ -11,9 +13,20 @@ public enum UserOperationModuleEnum { USER("user", "人员管理"), USER_PRJ("userPrj", "个人数据"), TAG("tag","标签管理"), + LOG("log", "操作记录审计"), PERMISSION("permission", "权限管理"); public final String key; public final String desc; + + public static String getDesc(String key) { + for (UserOperationModuleEnum e : UserOperationModuleEnum.values()) { + if (Objects.equals(e.key, key)) { + return e.desc; + } + } + return ""; + } + } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java index 552dfc9..f1374fd 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/UserThreadLocal.java @@ -2,6 +2,7 @@ package com.electromagnetic.industry.software.common.util; import cn.hutool.core.text.StrFormatter; +import cn.hutool.core.util.StrUtil; import com.electromagnetic.industry.software.common.pojo.UserLoginInfo; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; @@ -52,6 +53,8 @@ public class UserThreadLocal { } public static void setSuccessInfo(String parentId, String dataId, String strPattern, Object... argArray) { + parentId = StrUtil.isEmpty(parentId) ? "" : parentId; + dataId = StrUtil.isEmpty(dataId) ? "" : dataId; String successMsg = StrFormatter.format(strPattern, argArray); userThread.get().setSuccessInfo(parentId, successMsg, dataId); }