From 2eb38794c4d053ae3cb387f19dccfcebe99f40ec Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 26 Feb 2025 11:39:11 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=A1=E8=AE=A1?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/LoginInterceptor.java | 9 ++++-- .../controller/AccessLogController.java | 28 +++++++++++++++++++ .../controller/EdFileInfoController.java | 4 --- .../software/manage/pojo/resp/RespPageVO.java | 6 ++-- .../serviceimpl/EdFileInfoServiceImpl.java | 28 +++++++++++++------ .../serviceimpl/UserAccessLogServiceImpl.java | 12 ++++++-- .../common/enums/UserOperationModuleEnum.java | 13 +++++++++ 7 files changed, 80 insertions(+), 20 deletions(-) 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..5de6b67 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 @@ -25,6 +25,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 +108,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,9 +125,11 @@ 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) { if (!result.getSuccess()) { userAccessLog.setAccessSuccess(false); 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..fffbe27 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,39 @@ 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..adcd93c 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 @@ -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/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/EdFileInfoServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileInfoServiceImpl.java index 2241ba6..0ab151d 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 @@ -1251,20 +1251,32 @@ public class EdFileInfoServiceImpl extends ServiceImpl 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 ""; + } + } From cbcc133c2f2fc2ed3e6f4ff1b2401e513e5e0dd5 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 26 Feb 2025 13:52:26 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E7=9B=B8=E5=85=B3=E7=9A=84=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/backup/controller/FileController.java | 2 +- .../industry/software/backup/service/FileService.java | 2 +- .../industry/software/backup/serviceimp/FileServiceImpl.java | 4 ++-- .../industry/software/manage/config/LoginInterceptor.java | 3 ++- .../industry/software/manage/pojo/models/UserAccessLog.java | 3 +++ 5 files changed, 9 insertions(+), 5 deletions(-) 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 5de6b67..4232375 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; @@ -131,6 +132,7 @@ public class LoginInterceptor implements HandlerInterceptor { ElectromagneticResult result = user.getResult(); if (result != null) { + userAccessLog.setResponse(JSONUtil.toJsonStr(result)); if (!result.getSuccess()) { userAccessLog.setAccessSuccess(false); userAccessLog.setOperationMsg(result.getErrorMessage()); @@ -139,7 +141,6 @@ public class LoginInterceptor implements HandlerInterceptor { } else { // 返回为ResponseEntity,且状态为失败。 userAccessLog.setAccessSuccess(false); } - userAccessLogMapper.insert(userAccessLog); UserThreadLocal.remove(); } 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; + } From 58e4c4397d8fa5f136beceb14b0ab168f8fe7456 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 26 Feb 2025 14:36:17 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0parentId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/LoginInterceptor.java | 1 + .../service/serviceimpl/CommonService.java | 2 +- .../serviceimpl/EdFileInfoServiceImpl.java | 20 +++++++++---------- .../service/serviceimpl/EdPrjServiceImpl.java | 12 +++++------ 4 files changed, 18 insertions(+), 17 deletions(-) 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 4232375..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 @@ -141,6 +141,7 @@ public class LoginInterceptor implements HandlerInterceptor { } else { // 返回为ResponseEntity,且状态为失败。 userAccessLog.setAccessSuccess(false); } + userAccessLogMapper.insert(userAccessLog); UserThreadLocal.remove(); } 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..3afe847 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 @@ -358,7 +358,7 @@ 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()); 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 0ab151d..f3df431 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)); } @@ -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); From 545188be6973c7e47b4b83d01ba374010366d805 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 26 Feb 2025 15:07:24 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/service/serviceimpl/CommonService.java | 11 +++++++++++ .../service/serviceimpl/EdFileInfoServiceImpl.java | 2 +- .../software/common/util/UserThreadLocal.java | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) 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 3afe847..d42bb81 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 @@ -421,4 +421,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 f3df431..b35c57b 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 @@ -316,7 +316,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Wed, 26 Feb 2025 15:12:48 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/controller/EdFileInfoController.java | 2 +- .../manage/service/serviceimpl/EdFileInfoServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) 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 adcd93c..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) { 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 b35c57b..c51f349 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 @@ -222,7 +222,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Wed, 26 Feb 2025 15:54:19 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/service/serviceimpl/CommonService.java | 9 ++++----- .../service/serviceimpl/EdFileInfoServiceImpl.java | 2 +- .../service/serviceimpl/FileSystemServiceImpl.java | 2 ++ 3 files changed, 7 insertions(+), 6 deletions(-) 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 d42bb81..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 { @@ -361,7 +360,7 @@ public class CommonService { 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); } 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 c51f349..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 @@ -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; } 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); } From e685dbff5b3f550d78de05d8d279dd391f9b9bae Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 26 Feb 2025 16:25:31 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=93=8D=E4=BD=9C=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=92=8C=E5=AE=A1=E8=AE=A1=E6=90=9C=E7=B4=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/AccessLogController.java | 1 - .../manage/pojo/req/AccessLogQueryDTO.java | 2 ++ .../serviceimpl/UserAccessLogServiceImpl.java | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) 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 fffbe27..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 @@ -35,5 +35,4 @@ public class AccessLogController { return userAccessLogService.info(accessLogQueryDTO, true); } - } 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/service/serviceimpl/UserAccessLogServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserAccessLogServiceImpl.java index 88dbf56..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,6 +1,7 @@ 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; @@ -48,6 +49,21 @@ 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);