From 10439890d58c32f94c139a9b79ce00d45d74409a Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 10:31:06 +0800 Subject: [PATCH 01/29] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 18 +++++++++--------- .../software/common/enums/DataOwnEnum.java | 1 - 2 files changed, 9 insertions(+), 10 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 ec853ba..d4ffc58 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 @@ -431,15 +431,15 @@ public class CommonService { Set res = new HashSet<>(); -// List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? -// querySysPrjTree(PrjQuerySource.USER_INTERFACE.value, null, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value): -// queryUserPrjTree(PrjQuerySource.USER_INTERFACE.value, new FileProjectVO()).get(PrjQuerySource.USER_INTERFACE.value); -// -// prjInfo.forEach(e -> { -// FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); -// Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); -// res.addAll(leafIds); -// }); + List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? + querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value): + queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).get(PrjQuerySource.USER_DB.value); + + prjInfo.forEach(e -> { + FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); + Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); + res.addAll(leafIds); + }); return res; } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java index 1eb0811..cfeae44 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java @@ -24,5 +24,4 @@ public enum DataOwnEnum { return code == SYS_FILE.code || code == USER_FILE.code || code == REPO_FILE.code; } - } \ No newline at end of file From 8556f5ae4abb7e181049d6675000340d1f4f71f9 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 10:41:15 +0800 Subject: [PATCH 02/29] clean code --- electrmangnetic-backup/pom.xml | 4 +- .../backup/controller/FileController.java | 2 +- .../src/main/resources/application.yml | 1 - .../manage/aop/FilePermissionCheckAspect.java | 3 +- .../software/manage/aop/ServiceAspect.java | 4 +- .../manage/config/LoginInterceptor.java | 50 ++--- .../controller/EdFileInfoController.java | 9 +- .../controller/EdFileRelationController.java | 12 +- .../controller/EdTagLibraryController.java | 29 +-- .../controller/FileBackupLogController.java | 2 +- .../controller/FileFormatController.java | 5 +- .../controller/PermissionController.java | 3 +- .../manage/controller/RoleController.java | 16 +- .../manage/controller/UserController.java | 32 +-- .../controller/UserEdFileInfoController.java | 36 ++-- .../UserEdFileRelationController.java | 12 +- .../controller/UserEdFileTagController.java | 2 +- .../manage/mapper/EdFileInfoMapper.java | 11 +- .../manage/mapper/EdTagLibraryMapper.java | 1 - .../manage/mapper/FileFormatMapper.java | 1 - .../software/manage/mapper/TokenMapper.java | 1 + .../software/manage/mapper/UserMapper.java | 1 + .../manage/pojo/models/EdFileInfo.java | 4 +- .../manage/pojo/models/EdTagLibrary.java | 1 + .../manage/pojo/models/FileFormat.java | 4 +- .../manage/pojo/models/RolePermission.java | 2 - .../manage/pojo/models/UserAccessLog.java | 1 - .../manage/pojo/other/FileInfoVO.java | 2 +- .../software/manage/pojo/resp/TagListVO.java | 2 - .../manage/service/EdFileInfoService.java | 17 +- .../manage/service/EdFileRelationService.java | 4 +- .../software/manage/service/EdPrjService.java | 1 - .../manage/service/EdTagLibraryService.java | 14 +- .../service/FileTagRelationService.java | 6 +- .../manage/service/PermissionService.java | 13 +- .../manage/service/RolePermissionService.java | 9 +- .../manage/service/UserAccessLogService.java | 1 + .../software/manage/service/UserService.java | 5 +- .../service/serviceimpl/CommonService.java | 113 +++++----- .../serviceimpl/EdFileInfoServiceImpl.java | 33 +-- .../EdFileRelationServiceImpl.java | 16 +- .../service/serviceimpl/EdPrjServiceImpl.java | 2 +- .../serviceimpl/EdTagLibraryServiceImpl.java | 35 +-- .../serviceimpl/FileBackLogServiceImpl.java | 2 +- .../serviceimpl/FileFormatService.java | 4 + .../serviceimpl/FileFormatServiceImpl.java | 10 +- .../serviceimpl/FileRecycleServiceImpl.java | 11 +- .../FileTagRelationServiceImpl.java | 10 +- .../serviceimpl/PermissionServiceImpl.java | 28 ++- .../RolePermissionServiceImpl.java | 13 +- .../service/serviceimpl/RoleServiceImpl.java | 16 +- .../serviceimpl/UserAccessLogServiceImpl.java | 1 - .../service/serviceimpl/UserServiceImpl.java | 7 +- .../software/manage/tasks/BackupTask.java | 7 +- .../src/main/resources/application.properties | 9 - .../resources/sqlmapper/EdFileInfoMapper.xml | 2 +- .../sqlmapper/RolePermissionMapper.xml | 28 +-- .../enums/ElectromagneticErrorEnum.java | 203 ------------------ .../software/common/enums/FilePermission.java | 14 +- .../software/common/enums/FileRepeatEnum.java | 2 +- .../software/common/enums/TagTypeEnum.java | 4 +- .../common/enums/UserOperationModuleEnum.java | 2 +- .../software/common/parse/ExcelParse.java | 2 +- .../software/common/parse/FileParse.java | 2 +- .../software/common/parse/PptParse.java | 2 +- .../software/common/parse/TextParse.java | 1 - .../software/common/pojo/TreeNode.java | 1 - .../software/common/util/EleCommonUtil.java | 16 +- .../industry/software/common/util/EleLog.java | 44 ++-- .../util/ElectromagneticResultUtil.java | 1 - .../software/common/util/OfficeFileUtil.java | 9 +- .../software/common/util/UserThreadLocal.java | 8 +- 72 files changed, 413 insertions(+), 568 deletions(-) delete mode 100644 electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java diff --git a/electrmangnetic-backup/pom.xml b/electrmangnetic-backup/pom.xml index d848fd8..d588344 100644 --- a/electrmangnetic-backup/pom.xml +++ b/electrmangnetic-backup/pom.xml @@ -1,6 +1,6 @@ - 4.0.0 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 ee44bd9..ec800bf 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 @@ -5,8 +5,8 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil; import com.electromagnetic.industry.software.backup.pojo.BackupPro; -import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.backup.service.FileService; +import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import lombok.extern.slf4j.Slf4j; diff --git a/electrmangnetic-backup/src/main/resources/application.yml b/electrmangnetic-backup/src/main/resources/application.yml index 5b018b1..923c49a 100644 --- a/electrmangnetic-backup/src/main/resources/application.yml +++ b/electrmangnetic-backup/src/main/resources/application.yml @@ -1,4 +1,3 @@ - ele: backup: saveFolder: "/szsd/ele/data/backup/" diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java index 156c9e4..fcfe105 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/FilePermissionCheckAspect.java @@ -15,7 +15,6 @@ import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; import javax.annotation.Resource; -import java.util.Map; @Aspect @Component @@ -27,7 +26,7 @@ public class FilePermissionCheckAspect { EdFileInfoService edFileInfoService; @Around("@annotation(requiredPermission)") - public Object requirePermission(ProceedingJoinPoint joinPoint, RequiredPermission requiredPermission) throws Throwable{ + public Object requirePermission(ProceedingJoinPoint joinPoint, RequiredPermission requiredPermission) throws Throwable { Object[] args = joinPoint.getArgs(); if (args.length == 0) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java index 2014c75..8ca194c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/aop/ServiceAspect.java @@ -34,7 +34,7 @@ public class ServiceAspect { String methodInfo = jp.getTarget().getClass().getSimpleName() + "." + jp.getSignature().getName(); Object[] args = jp.getArgs(); - String[] argNames = ((MethodSignature)jp.getSignature()).getParameterNames(); + String[] argNames = ((MethodSignature) jp.getSignature()).getParameterNames(); String paramInfo = ""; if (args != null && args.length > 0) { Map map = new HashMap<>(); @@ -80,7 +80,7 @@ public class ServiceAspect { UserThreadLocal.setRes(ElectromagneticResultUtil.success("")); return rvt; } - UserThreadLocal.setRes((ElectromagneticResult)rvt); + UserThreadLocal.setRes((ElectromagneticResult) rvt); String returnInfo = JSONUtil.toJsonStr(rvt); log.info("请求接口结束:{},返回参数:{},接口耗时:{}", methodInfo, returnInfo, (System.currentTimeMillis() - startTime) + "毫秒"); 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 de1398f..260ab04 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 @@ -38,6 +38,30 @@ public class LoginInterceptor implements HandlerInterceptor { @Resource private UserAccessLogMapper userAccessLogMapper; + private static String getRealIp(HttpServletRequest request) { + String ipAddress = request.getHeader("X-Forwarded-For"); + if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { + // 回退到X-Real-IP或直接RemoteAddr + ipAddress = request.getHeader("X-Real-IP"); + } + if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { + ipAddress = request.getRemoteAddr(); + } + // 处理多级代理的情况(取第一个IP) + if (ipAddress.contains(",")) { + ipAddress = ipAddress.split(",")[0].trim(); + } + return ipAddress; + } + + private static String parseIpFromUrl(String url) { + + int start = url.indexOf("//"); + url = url.substring(start + 2); + int end = url.indexOf("/"); + return url.substring(0, end); + } + @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { request.getSession().setAttribute("accessStartTime", System.currentTimeMillis()); @@ -104,7 +128,7 @@ public class LoginInterceptor implements HandlerInterceptor { return; } - long accessStartTime = (long)request.getSession().getAttribute("accessStartTime"); + long accessStartTime = (long) request.getSession().getAttribute("accessStartTime"); long accessEndTime = System.currentTimeMillis(); UserOperation userOperation = ((HandlerMethod) handler).getMethod().getAnnotation(UserOperation.class); String reqArgs = UserThreadLocal.getReqArgs(); @@ -150,28 +174,4 @@ public class LoginInterceptor implements HandlerInterceptor { return token != null && now.before(token.getExpireAt()); } - private static String getRealIp(HttpServletRequest request) { - String ipAddress = request.getHeader("X-Forwarded-For"); - if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { - // 回退到X-Real-IP或直接RemoteAddr - ipAddress = request.getHeader("X-Real-IP"); - } - if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { - ipAddress = request.getRemoteAddr(); - } - // 处理多级代理的情况(取第一个IP) - if (ipAddress.contains(",")) { - ipAddress = ipAddress.split(",")[0].trim(); - } - return ipAddress; - } - - private static String parseIpFromUrl(String url) { - - int start = url.indexOf("//"); - url = url.substring(start + 2); - int end = url.indexOf("/"); - return url.substring(0, end); - } - } 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 0674958..22eb44c 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 @@ -166,11 +166,12 @@ public class EdFileInfoController { /** * 添加进收藏夹 + * * @param id 文件id * @return */ @GetMapping("/collection") - @UserOperation(value="收藏了文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "收藏了文件", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult addFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); @@ -178,11 +179,12 @@ public class EdFileInfoController { /** * 从收藏夹移除 + * * @param id 文件id * @return */ @GetMapping("/removeCollection") - @UserOperation(value="从收藏夹移除了文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "从收藏夹移除了文件", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult removeFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); @@ -190,10 +192,11 @@ public class EdFileInfoController { /** * 展示当前用户收藏夹文件 + * * @return */ @PostMapping("/listCollection") - @UserOperation(value="查看了收藏夹", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看了收藏夹", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.findFavorite(userId, fileInfoQueryDTO)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java index 57feed5..ecb89f9 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java @@ -30,7 +30,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/create", method = RequestMethod.POST) - @UserOperation(value="创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult createRelation(@RequestBody EdFileRelation relation) { return ElectromagneticResultUtil.success(edFileRelationService.createRelation(relation)); } @@ -42,7 +42,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/update", method = RequestMethod.POST) - @UserOperation(value="更新了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "更新了文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult updateRelation(@RequestBody UpdateRelationDTO updateRelation) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdFileRelation::getId, updateRelation.getRelationId()).set(EdFileRelation::getRelationship, updateRelation.getRelationship()); @@ -60,7 +60,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/cancel/{relationId}", method = RequestMethod.GET) - @UserOperation(value="取消了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "取消了文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult cancelRelation(@PathVariable("relationId") String relationId) { return ElectromagneticResultUtil.success(edFileRelationService.cancelRelation(relationId)); } @@ -69,7 +69,7 @@ public class EdFileRelationController { * 展示文件关系 */ @RequestMapping(value = "listRelations/{id}", method = RequestMethod.GET) - @UserOperation(value="查看了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看了文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult listRelations(@PathVariable("id") String id) { return ElectromagneticResultUtil.success(edFileRelationService.listRelations(id)); } @@ -78,7 +78,7 @@ public class EdFileRelationController { * 检验文件名是否唯一 */ @RequestMapping(value = "/checkFileNameExist", method = RequestMethod.POST) - @UserOperation(value="校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult checkFileNameExist(@RequestBody CheckNameUniqueRequest checkNameUniqueRequest) { return ElectromagneticResultUtil.success(edFileRelationService.checkNameExist(checkNameUniqueRequest)); } @@ -87,7 +87,7 @@ public class EdFileRelationController { * 本地上传并建立关系 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) - @UserOperation(value="上传了文件并创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "上传了文件并创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult uploadRelation(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @RequestParam("description") String description, diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java index 0b2c473..569ef0d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java @@ -9,6 +9,7 @@ import com.electromagnetic.industry.software.manage.pojo.req.TagCreateDTO; import com.electromagnetic.industry.software.manage.service.EdTagLibraryService; import com.electromagnetic.industry.software.manage.service.FileTagRelationService; import org.springframework.web.bind.annotation.*; + import javax.annotation.Resource; import java.util.List; @@ -24,7 +25,7 @@ public class EdTagLibraryController { // 新建标签组 @GetMapping("/createGroup") - @UserOperation(value="创建了标签组", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "创建了标签组", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult createTagGroup(@RequestParam String tagName) { String createdBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edTagLibraryService.createTagGroup(tagName, createdBy)); @@ -32,7 +33,7 @@ public class EdTagLibraryController { // 在标签组下新建标签 @GetMapping("/createTag") - @UserOperation(value="创建了标签", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "创建了标签", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult createTag(@RequestParam String parentId, @RequestParam String tagName) { String createdBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edTagLibraryService.createTag(parentId, tagName, createdBy)); @@ -40,58 +41,58 @@ public class EdTagLibraryController { // 拖拽修改排序/分组 @GetMapping("/updateOrder") - @UserOperation(value="修改了标签顺序", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "修改了标签顺序", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult updateTagOrder(@RequestParam String tagId, @RequestParam String newTagId, @RequestParam String newParentId, @RequestParam Integer newOrderBy) { String updatedBy = UserThreadLocal.getUserId(); - return ElectromagneticResultUtil.success(edTagLibraryService.updateTagOrder(tagId, newTagId, newParentId, newOrderBy,updatedBy)); + return ElectromagneticResultUtil.success(edTagLibraryService.updateTagOrder(tagId, newTagId, newParentId, newOrderBy, updatedBy)); } // 发布标签 @PostMapping("/batchPublish") - @UserOperation(value="发布了标签组", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "发布了标签组", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult publishTag(@RequestBody List tagIds) { return ElectromagneticResultUtil.success(edTagLibraryService.batchPublishTagGroups(tagIds)); } // 废除标签 @GetMapping("/delete") - @UserOperation(value="废除了标签组/标签", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "废除了标签组/标签", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult deleteTag(@RequestParam String tagId) { return ElectromagneticResultUtil.success(edTagLibraryService.deleteTagOrGroup(tagId)); } //获取标签数据 @GetMapping("/list") - @UserOperation(value="查看了标签数据", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "查看了标签数据", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult listTags() { return ElectromagneticResultUtil.success(edTagLibraryService.listTagsWithGroups()); } // 修改标签组/标签 - @GetMapping ("/updateTag") - @UserOperation(value="修改了标签组/标签", modelName = UserOperationModuleEnum.TAG) + @GetMapping("/updateTag") + @UserOperation(value = "修改了标签组/标签", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult updateTag(@RequestParam String tagId, @RequestParam String tagName) { String updatedBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edTagLibraryService.updateTagInfo(tagId, tagName, updatedBy)); } // 查看标签树 - @GetMapping ("/tree") - @UserOperation(value="查看了标签树", modelName = UserOperationModuleEnum.TAG) + @GetMapping("/tree") + @UserOperation(value = "查看了标签树", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult listTagTree() { return ElectromagneticResultUtil.success(edTagLibraryService.listTagTree()); } // 查看所有标签 - @GetMapping ("/listAllTags") - @UserOperation(value="查看了所有标签", modelName = UserOperationModuleEnum.TAG) + @GetMapping("/listAllTags") + @UserOperation(value = "查看了所有标签", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult listAllTags() { return ElectromagneticResultUtil.success(edTagLibraryService.listAllTags()); } // 批量添加标签到文件 @PostMapping("/addTagsToFile") - @UserOperation(value="批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult addTagsToFile(@RequestBody TagCreateDTO dto) { String createdBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(fileTagRelationService.addTagsToFile(dto.getFileId(), dto.getTagIds(), createdBy)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java index c7bf5f1..7d1aa28 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java @@ -18,7 +18,7 @@ public class FileBackupLogController { private FileBackLogService fileBackLogService; @RequestMapping(value = "list") - @UserOperation(value="查询备份日志", modelName = UserOperationModuleEnum.BACKUP_FILE) + @UserOperation(value = "查询备份日志", modelName = UserOperationModuleEnum.BACKUP_FILE) public ElectromagneticResult list(@RequestParam int pageNum, @RequestParam int pageSize) { return fileBackLogService.query(pageNum, pageSize); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java index bd4d424..6d1ba2c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java @@ -5,7 +5,10 @@ import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnu import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.manage.service.serviceimpl.FileFormatService; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/PermissionController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/PermissionController.java index bc0af8f..87676ce 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/PermissionController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/PermissionController.java @@ -6,7 +6,6 @@ import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.service.PermissionService; -import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -22,7 +21,7 @@ public class PermissionController { private PermissionService permissionService; @GetMapping(value = "/{id}") - @UserOperation(value="查询了在当前目录的功能权限", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "查询了在当前目录的功能权限", modelName = UserOperationModuleEnum.PERMISSION) public ElectromagneticResult getUserPermission(@PathVariable("id") String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(permissionService.getUserPermission(userId, id, false)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java index bbc623d..b636724 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RoleController.java @@ -21,56 +21,56 @@ public class RoleController { private RoleService roleService; @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="新建角色", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "新建角色", modelName = UserOperationModuleEnum.PERMISSION) @RequestMapping(value = "/createRole", method = RequestMethod.POST) public ElectromagneticResult createRole(@RequestBody RoleDTO roleDTO) { return ElectromagneticResultUtil.success(roleService.createRole(roleDTO)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="更新角色", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "更新角色", modelName = UserOperationModuleEnum.PERMISSION) @RequestMapping(value = "/updateRole", method = RequestMethod.POST) public ElectromagneticResult updateRole(@RequestBody RoleDTO roleDTO) { return ElectromagneticResultUtil.success(roleService.updateRole(roleDTO)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="删除角色", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "删除角色", modelName = UserOperationModuleEnum.PERMISSION) @GetMapping(value = "/deleteRole/{roleId}") public ElectromagneticResult deleteRole(@PathVariable("roleId") String roleId) { return ElectromagneticResultUtil.success(roleService.deleteRole(roleId)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="查看指定角色", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "查看指定角色", modelName = UserOperationModuleEnum.PERMISSION) @GetMapping(value = "/getSingleRole/{roleId}") public ElectromagneticResult getRole(@PathVariable("roleId") String roleId) { return ElectromagneticResultUtil.success(roleService.getRole(roleId)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="查看角色", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "查看角色", modelName = UserOperationModuleEnum.PERMISSION) @RequestMapping(value = "/list", method = RequestMethod.POST) public ElectromagneticResult getRoles(@RequestBody RolePageDTO rolePageDTO) { return ElectromagneticResultUtil.success(roleService.getRoles(rolePageDTO)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="查看某一角色的权限", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "查看某一角色的权限", modelName = UserOperationModuleEnum.PERMISSION) @GetMapping(value = "/getRoleByName") public ElectromagneticResult getRoleByName(@RequestParam("roleName") String roleName) { return ElectromagneticResultUtil.success(roleService.getRoleByName(roleName)); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="获取角色名列表", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "获取角色名列表", modelName = UserOperationModuleEnum.PERMISSION) @GetMapping(value = "/getRoleNames") public ElectromagneticResult getRoleNames() { return ElectromagneticResultUtil.success(roleService.getAllRoleNames()); } @RequiredRole(AdminTypeEnum.SECURITY) - @UserOperation(value="获取角色配置模版", modelName = UserOperationModuleEnum.PERMISSION) + @UserOperation(value = "获取角色配置模版", modelName = UserOperationModuleEnum.PERMISSION) @GetMapping(value = "/getRoleTemplate") public ElectromagneticResult getRoleTemplate() { return ElectromagneticResultUtil.success(roleService.getRoleTemplate()); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java index 4a30123..07fae9f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserController.java @@ -10,7 +10,6 @@ import com.electromagnetic.industry.software.common.util.ElectromagneticResultUt import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.pojo.req.*; import com.electromagnetic.industry.software.manage.service.UserService; -import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -24,68 +23,68 @@ public class UserController { private UserService userService; @PostMapping("/login") - @UserOperation(value="登陆", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "登陆", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult login(@RequestBody UserLoginRequest loginRequest) { return userService.login(loginRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) @PostMapping("/createUser") - @UserOperation(value="新增用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "新增用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult createUser(@RequestBody UserRequest userRequest) { return userService.createUser(userRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) @PutMapping("/updateUser") - @UserOperation(value="编辑用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "编辑用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult updateUser(@RequestBody UserModiRequest userModiRequest) { return userService.modifyUser(userModiRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) @RequestMapping(value = "/publish", method = RequestMethod.POST) - @UserOperation(value="发布用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "发布用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult publishUser(@RequestBody UserPublishRequest userPublishRequest) { return userService.publishUser(userPublishRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) @RequestMapping(value = "/getInfo", method = RequestMethod.GET) - @UserOperation(value="获取某一用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "获取某一用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult getSingleUser(GetSingleUserRequest getSingleUserRequest) { return userService.getSingleUser(getSingleUserRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) - @UserOperation(value="查询用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "查询用户信息", modelName = UserOperationModuleEnum.USER) @RequestMapping(value = "/list", method = RequestMethod.POST) public ElectromagneticResult searchUser(@RequestBody SearchUserRequest searchUserRequest) { return userService.searchUser(searchUserRequest); } @RequestMapping(value = "/validateWorkNumber", method = RequestMethod.POST) - @UserOperation(value="校验工号唯一性", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "校验工号唯一性", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult validateWorkNum(@RequestBody UserWorkNumRequest userWorkNumRequest) { return userService.validateWorkNum(userWorkNumRequest); } @RequiredRole(AdminTypeEnum.SYSTEM) @PostMapping(value = "/deleteUser") - @UserOperation(value="删除用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "删除用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult deleteUser(@RequestBody UserDeleteRequest userDeleteRequest) { return userService.deleteUser(userDeleteRequest); } @RequestMapping(value = "/logout", method = RequestMethod.POST) - @UserOperation(value="登出", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "登出", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult logout(@RequestHeader("Authorization") String token) { return userService.logout(token); } @RequiredRole(AdminTypeEnum.SECURITY) @RequestMapping(value = "/bindRole/list", method = RequestMethod.POST) - @UserOperation(value="查询用户信息", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "查询用户信息", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult getPublishedUsers(@RequestBody SearchUserRequest searchUserRequest) { searchUserRequest.setIsPublished(PublishEnum.PUBLISHED.getCode().toString()); return userService.searchUser(searchUserRequest); @@ -93,7 +92,7 @@ public class UserController { @RequiredRole(AdminTypeEnum.SECURITY) @RequestMapping(value = "/bindRoles", method = RequestMethod.POST) - @UserOperation(value="绑定人员与角色", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "绑定人员与角色", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult bindRoles(@RequestBody List list) { if (userService.bindRoles(list)) { return ElectromagneticResultUtil.success(true); @@ -104,28 +103,29 @@ public class UserController { @RequiredRole(AdminTypeEnum.SYSTEM) @PutMapping("/changePassword") - @UserOperation(value="修改用户密码", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "修改用户密码", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult changePassword(@RequestBody ChangePasswordRequest request) { return userService.changePassword(request.getUserId(), request.getNewPassword()); } @RequiredRole(AdminTypeEnum.SECURITY) @GetMapping(value = "/resetPassword/{userId}") - @UserOperation(value="重置密码", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "重置密码", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult resetPassword(@PathVariable("userId") String userId) { return ElectromagneticResultUtil.success(userService.resetPassword(userId)); } @GetMapping(value = "/getAdminType") - @UserOperation(value="获取当前用户的管理员类型", modelName = UserOperationModuleEnum.USER) + @UserOperation(value = "获取当前用户的管理员类型", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult getAdminType() { String adminType = UserThreadLocal.getAdminType(); if (adminType == null || adminType.isEmpty()) { - return ElectromagneticResultUtil.fail("500","当前用户未登录"); + return ElectromagneticResultUtil.fail("500", "当前用户未登录"); } else { return ElectromagneticResultUtil.success(adminType); } } + @PostMapping("/validateOldPassword") @UserOperation(value = "校验原始密码", modelName = UserOperationModuleEnum.USER) public ElectromagneticResult validateOldPassword(@RequestBody ValidateOldPasswordRequest request) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java index b22d6a9..2e0a2f3 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java @@ -31,31 +31,31 @@ public class UserEdFileInfoController { @Resource private EdFileFavoriteService edFileFavoriteService; - @UserOperation(value = "查看工程树", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查看工程树", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("tree") public ElectromagneticResult tree() { return edFileInfoService.tree(PrjQuerySource.USER_DB.value); } - @UserOperation(value = "创建文件夹", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("createFolder") public ElectromagneticResult createFolder(@RequestBody CreateFolderDTO createFolderDTO) { return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "作废文件夹", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "作废文件夹", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("delete") public ElectromagneticResult delete(@RequestParam String id) { return edFileInfoService.delete(id, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "查询文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查询文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("info") public ElectromagneticResult info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "上传文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "上传文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("upload") public ElectromagneticResult upload(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @@ -63,7 +63,7 @@ public class UserEdFileInfoController { return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "下载文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("download") public ResponseEntity download(@RequestParam String id, HttpServletResponse response) { return edFileInfoService.download(id, response, DataOwnEnum.USER_FILE.code); @@ -95,13 +95,13 @@ public class UserEdFileInfoController { return edFileInfoService.checkChunkExist(fileChunkDTO); } - @UserOperation(value = "更新文件信息", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("updateFileInfo") public ElectromagneticResult updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) { return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "移动文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "移动文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("moveFile") public ElectromagneticResult moveFile(@RequestParam("id") String id, @RequestParam("targetFolderId") String targetFolderId, @@ -109,7 +109,7 @@ public class UserEdFileInfoController { return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "复制文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "复制文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("copyFile") public ElectromagneticResult copyFile(@RequestParam("id") String id, @RequestParam("targetFolderId") String targetFolderId, @@ -117,37 +117,37 @@ public class UserEdFileInfoController { return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "查看文件历史版本信息", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查看文件历史版本信息", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("versionView") public ElectromagneticResult versionView(@RequestParam String fileId) { return edFileInfoService.versionView(fileId); } - @UserOperation(value = "回退版本", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "回退版本", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping("versionBack") public ElectromagneticResult versionBack(@RequestParam String fileId, @RequestParam int targetVersion) { return edFileInfoService.versionBack(fileId, targetVersion); } - @UserOperation(value = "查询发布管理", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "查询文件详细信息", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查询文件详细信息", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping(value = "/fileDetail", method = RequestMethod.GET) public ElectromagneticResult detail(@RequestParam String id) { return edFileInfoService.detail(id); } - @UserOperation(value = "查询子文件集", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "查询子文件集", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) public ElectromagneticResult queryChildFolder(@RequestParam String parentId) { return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.USER_FILE.code); } - @UserOperation(value = "预览文件", modelName =UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "预览文件", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping(value = "preview", method = RequestMethod.GET) public ResponseEntity preview(@RequestParam String id, HttpServletResponse response) { return edFileInfoService.preview(id, response, DataOwnEnum.USER_FILE.code); @@ -155,11 +155,12 @@ public class UserEdFileInfoController { /** * 添加进收藏夹 + * * @param id 文件id * @return */ @GetMapping("/collection") - @UserOperation(value="收藏文件", modelName = UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "收藏文件", modelName = UserOperationModuleEnum.USER_PRJ) public ElectromagneticResult addFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); @@ -167,11 +168,12 @@ public class UserEdFileInfoController { /** * 从收藏夹移除 + * * @param id 文件id * @return */ @GetMapping("/removeCollection") - @UserOperation(value="从收藏夹移除文件", modelName = UserOperationModuleEnum.USER_PRJ) + @UserOperation(value = "从收藏夹移除文件", modelName = UserOperationModuleEnum.USER_PRJ) public ElectromagneticResult removeFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java index 50c8e84..8791ae5 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java @@ -30,7 +30,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/create", method = RequestMethod.POST) - @UserOperation(value="创建文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "创建文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult createRelation(@RequestBody EdFileRelation relation) { return ElectromagneticResultUtil.success(edFileRelationService.createRelation(relation)); } @@ -42,7 +42,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/update", method = RequestMethod.POST) - @UserOperation(value="更新文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "更新文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult updateRelation(@RequestBody UpdateRelationDTO updateRelation) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdFileRelation::getId, updateRelation.getRelationId()).set(EdFileRelation::getRelationship, updateRelation.getRelationship()); @@ -60,7 +60,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/cancel/{relationId}", method = RequestMethod.GET) - @UserOperation(value="取消文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "取消文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult cancelRelation(@PathVariable("relationId") String relationId) { return ElectromagneticResultUtil.success(edFileRelationService.cancelRelation(relationId)); } @@ -69,7 +69,7 @@ public class UserEdFileRelationController { * 展示文件关系 */ @RequestMapping(value = "listRelations/{id}", method = RequestMethod.GET) - @UserOperation(value="查看文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult listRelations(@PathVariable("id") String id) { return ElectromagneticResultUtil.success(edFileRelationService.listRelations(id)); } @@ -78,7 +78,7 @@ public class UserEdFileRelationController { * 检验文件名是否唯一 */ @RequestMapping(value = "/checkFileNameExist", method = RequestMethod.POST) - @UserOperation(value="校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult checkFileNameExist(@RequestBody CheckNameUniqueRequest checkNameUniqueRequest) { return ElectromagneticResultUtil.success(edFileRelationService.checkNameExist(checkNameUniqueRequest)); } @@ -87,7 +87,7 @@ public class UserEdFileRelationController { * 本地上传并建立关系 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) - @UserOperation(value="上传了文件并创建文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "上传了文件并创建文件关系", modelName = UserOperationModuleEnum.DATABASE) public ElectromagneticResult uploadRelation(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @RequestParam("description") String description, diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileTagController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileTagController.java index 8edd2bb..77a1a48 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileTagController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileTagController.java @@ -23,7 +23,7 @@ public class UserEdFileTagController { // 批量添加标签到文件 @PostMapping("/addTagsToFile") - @UserOperation(value="批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) + @UserOperation(value = "批量添加了标签到文件", modelName = UserOperationModuleEnum.TAG) public ElectromagneticResult addTagsToFile(@RequestBody TagCreateDTO dto) { String createdBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(fileTagRelationService.addTagsToFile(dto.getFileId(), dto.getTagIds(), createdBy)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java index 882ba2a..d0efa7d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdFileInfoMapper.java @@ -18,14 +18,15 @@ public interface EdFileInfoMapper extends BaseMapper { /** * 收藏页 数据查询 + * * @param page * @param ids * @param queryDTO * @return */ - IPage queryFileList (Page page, - @Param("ids")List ids, - @Param("pars") FileInfoQueryDTO queryDTO, - @Param("saveStatus") int saveStatus, - @Param("effectFlag") int effectFlag); + IPage queryFileList(Page page, + @Param("ids") List ids, + @Param("pars") FileInfoQueryDTO queryDTO, + @Param("saveStatus") int saveStatus, + @Param("effectFlag") int effectFlag); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdTagLibraryMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdTagLibraryMapper.java index 19ba44f..dbc37e9 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdTagLibraryMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/EdTagLibraryMapper.java @@ -1,7 +1,6 @@ package com.electromagnetic.industry.software.manage.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.electromagnetic.industry.software.common.enums.TagTypeEnum; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileFormatMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileFormatMapper.java index 72a667e..1576909 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileFormatMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/FileFormatMapper.java @@ -3,7 +3,6 @@ package com.electromagnetic.industry.software.manage.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.electromagnetic.industry.software.manage.pojo.models.FileFormat; import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Select; @Mapper public interface FileFormatMapper extends BaseMapper { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/TokenMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/TokenMapper.java index 303b6d1..729ed85 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/TokenMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/TokenMapper.java @@ -13,6 +13,7 @@ public interface TokenMapper extends BaseMapper { * @param token * @return */ + @Override int insert(Token token); /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/UserMapper.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/UserMapper.java index c07d0cc..1532b49 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/UserMapper.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/mapper/UserMapper.java @@ -18,6 +18,7 @@ public interface UserMapper extends BaseMapper { * @param user * @return */ + @Override int insert(User user); /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java index 065060d..3b4b931 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java @@ -116,7 +116,9 @@ public class EdFileInfo extends BaseModel { @TableField(value = "prj_dir") private Integer dataOwn; - /** 当一个文件作废时,其所有的历史文件也会跟着作废,此时该文件及其历史文件的all_deleted=true**/ + /** + * 当一个文件作废时,其所有的历史文件也会跟着作废,此时该文件及其历史文件的all_deleted=true + **/ @TableField(value = "all_deleted") private Boolean allDeleted; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java index 8055022..40167af 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdTagLibrary.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; + import java.util.Date; @Data diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileFormat.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileFormat.java index 2f76d88..e1ed0c1 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileFormat.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/FileFormat.java @@ -1,11 +1,9 @@ package com.electromagnetic.industry.software.manage.pojo.models; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; - @EqualsAndHashCode(callSuper = true) @Data @TableName("ed_file_format") diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java index 5935dfa..6781c75 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/RolePermission.java @@ -7,8 +7,6 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.AllArgsConstructor; import lombok.Data; -import java.util.UUID; - @Data @TableName("ed_role_permission") @AllArgsConstructor 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 44e93df..8b937df 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 @@ -1,7 +1,6 @@ package com.electromagnetic.industry.software.manage.pojo.models; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Builder; import lombok.Data; import lombok.experimental.Accessors; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java index bb7098c..72286bf 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/other/FileInfoVO.java @@ -56,5 +56,5 @@ public class FileInfoVO { private Integer isPersonal; // 文件权限 - private Map permissions; + private Map permissions; } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/TagListVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/TagListVO.java index 20ad512..fe6f491 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/TagListVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/TagListVO.java @@ -1,10 +1,8 @@ package com.electromagnetic.industry.software.manage.pojo.resp; -import com.baomidou.mybatisplus.annotation.TableId; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import lombok.Data; -import java.util.Date; import java.util.List; @Data diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java index 56163b2..ab539d6 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java @@ -3,8 +3,8 @@ package com.electromagnetic.industry.software.manage.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; -import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; +import com.electromagnetic.industry.software.manage.pojo.other.FileInfoVO; 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.FileInfoQueryDTO; @@ -161,10 +161,11 @@ public interface EdFileInfoService { /** * 获取文件的层级Id */ - String getCategoryId (String id); + String getCategoryId(String id); /** * 根据父id查询其下自定义的文件夹 + * * @param parentId * @return */ @@ -173,6 +174,7 @@ public interface EdFileInfoService { /** * 文件预览 + * * @param id * @param response */ @@ -180,21 +182,24 @@ public interface EdFileInfoService { /** * 收藏页 数据查询 + * * @param page * @param ids * @param queryDTO * @return */ - IPage queryFileList (Page page, List ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag); + IPage queryFileList(Page page, List ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag); /** * 处理重名文件,文件名后+_1 + * * @param fileInfo */ void resetFileInfoName(EdFileInfo fileInfo); /** * 判断是否是文件夹 + * * @param id * @return */ @@ -202,6 +207,7 @@ public interface EdFileInfoService { /** * 添加收藏 + * * @param userId * @param fileId * @return @@ -210,6 +216,7 @@ public interface EdFileInfoService { /** * 判断是否已收藏 + * * @param userId * @param fileId * @return @@ -218,6 +225,7 @@ public interface EdFileInfoService { /** * 移除收藏 + * * @param userId * @param fileId * @return @@ -226,7 +234,8 @@ public interface EdFileInfoService { /** * 查询当前用户收藏文件信息 - * @param userId 用户id + * + * @param userId 用户id * @param fileInfoQueryDTO 分页信息 * @return */ diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileRelationService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileRelationService.java index e9c3d8c..d1e4594 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileRelationService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileRelationService.java @@ -43,9 +43,9 @@ public interface EdFileRelationService { * 文件上传并建立关系 * * @param parentId - * @param id 主文件Id + * @param id 主文件Id * @param file - * @param desc 关系描述 + * @param desc 关系描述 * @return */ ElectromagneticResult uploadFileAndRelation(String parentId, String id, MultipartFile file, String desc, int dataOwnCode); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java index cc56443..3ccb755 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdPrjService.java @@ -1,6 +1,5 @@ package com.electromagnetic.industry.software.manage.service; -import com.electromagnetic.industry.software.common.enums.DataOwnEnum; 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.QueryPublishStatus; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java index 900d97e..cd8b162 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java @@ -6,14 +6,13 @@ import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; -import javax.swing.text.html.HTML; import java.util.List; -import java.util.Map; public interface EdTagLibraryService extends IService { /** * 新建分组 + * * @param tagName * @param createdBy */ @@ -21,6 +20,7 @@ public interface EdTagLibraryService extends IService { /** * 新建标签 + * * @param parentId * @param tagName * @param createdBy @@ -29,6 +29,7 @@ public interface EdTagLibraryService extends IService { /** * 拖拽标签顺序 + * * @param tagId * @param newOrderBy */ @@ -36,11 +37,14 @@ public interface EdTagLibraryService extends IService { /** * 发布标签 + * * @param tagGroupIds */ Boolean batchPublishTagGroups(List tagGroupIds); - /** 废除标签 + /** + * 废除标签 + * * @param tagId * @return */ @@ -48,12 +52,14 @@ public interface EdTagLibraryService extends IService { /** * 标签数据 + * * @return */ List listTagsWithGroups(); /** * 更新标签信息 + * * @param tagId * @param tagName * @return 更新结果 @@ -62,12 +68,14 @@ public interface EdTagLibraryService extends IService { /** * 构建标签树 + * * @return */ List listTagTree(); /** * 获取所有标签 + * * @return */ List listAllTags(); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java index 6364771..e9406a0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileTagRelationService.java @@ -3,7 +3,6 @@ package com.electromagnetic.industry.software.manage.service; import com.baomidou.mybatisplus.extension.service.IService; import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; -import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import java.util.List; @@ -11,6 +10,7 @@ public interface FileTagRelationService extends IService { /** * 批量添加标签到文件 + * * @param fileId * @param tagIds * @param createdBy @@ -20,13 +20,15 @@ public interface FileTagRelationService extends IService { /** * 获取文件标签 + * * @param fileId * @return */ - List getFileTags (String fileId); + List getFileTags(String fileId); /** * 根据标签id获取文件id + * * @param tagIds * @return */ diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/PermissionService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/PermissionService.java index b2a6bcf..253b223 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/PermissionService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/PermissionService.java @@ -1,7 +1,5 @@ package com.electromagnetic.industry.software.manage.service; -import com.electromagnetic.industry.software.common.enums.FilePermission; - import java.util.List; import java.util.Map; @@ -9,6 +7,7 @@ public interface PermissionService { /** * 用户对个人数据拥有所有权限 + * * @return */ Map getPersonalPermission(); @@ -48,6 +47,7 @@ public interface PermissionService { /** * 过滤有导出权限的文件id + * * @param ids */ Map filterExportIds(String[] ids); @@ -55,14 +55,15 @@ public interface PermissionService { /** * 同步权限 */ - void syncPermissions (String prjId); + void syncPermissions(String prjId); /** * 判断用户有无权限 + * * @param permissionCode 权限 - * @param userId 用户编码 - * @param fileId 文件编码 + * @param userId 用户编码 + * @param fileId 文件编码 * @return */ - boolean isPermitted (String permissionCode, String userId, String fileId); + boolean isPermitted(String permissionCode, String userId, String fileId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RolePermissionService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RolePermissionService.java index 3b94260..d192465 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RolePermissionService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/RolePermissionService.java @@ -4,8 +4,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.RolePermission; import com.electromagnetic.industry.software.manage.pojo.req.PublishedFileDTO; -import org.apache.ibatis.annotations.Param; -import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -13,13 +11,15 @@ public interface RolePermissionService extends IService { /** * 同步新权限 + * * @param currentPermission * @param infoId */ - void syncNewPermissions (List currentPermission, String infoId); + void syncNewPermissions(List currentPermission, String infoId); /** * 获取新权限 + * * @param publishedFileDTO * @return */ @@ -27,7 +27,8 @@ public interface RolePermissionService extends IService { /** * 在树形结构变动后同步权限 + * * @param prjId */ - void syncPermissionsAfterTreeUpdate (List files, String prjId); + void syncPermissionsAfterTreeUpdate(List files, String prjId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserAccessLogService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserAccessLogService.java index 74e6ac1..8938d7d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserAccessLogService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserAccessLogService.java @@ -7,6 +7,7 @@ public interface UserAccessLogService { /** * 分页查询操作记录(审计) + * * @param accessLogQueryDTO * @return */ diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java index 86f6af8..bf10a58 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/UserService.java @@ -93,8 +93,7 @@ public interface UserService { Boolean resetPassword(String userId); /** - * - * @param userId 用户ID + * @param userId 用户ID * @param newPassword * @return */ @@ -103,7 +102,7 @@ public interface UserService { /** * 校验原始密码是否正确 * - * @param userId 用户ID + * @param userId 用户ID * @param oldInputPassword 输入的原始密码 * @return 如果密码正确返回成功结果,否则返回失败结果 */ 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 d4ffc58..2ea0c88 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 @@ -58,6 +58,58 @@ public class CommonService { @Resource private FileFormatService fileFormatService; + private static String createTree(List edFileInfos, Object object) { + + TreeNodeConfig config = new TreeNodeConfig(); + if (object instanceof ProjectVO) { + // 转换为树 + config.setIdKey(EdFileInfo.Fields.id); + config.setParentIdKey(EdFileInfo.Fields.parentId); + config.setWeightKey(EdFileInfo.Fields.sort); + List> trees = TreeUtil.build(edFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { + treeNode.putExtra(ProjectVO.Fields.id, obj.getId()); + treeNode.putExtra(ProjectVO.Fields.parentId, obj.getParentId()); + treeNode.putExtra(ProjectVO.Fields.sort, obj.getSort()); + treeNode.putExtra(ProjectVO.Fields.fileName, obj.getFileName()); + treeNode.putExtra(ProjectVO.Fields.title, obj.getFileName()); + treeNode.putExtra(ProjectVO.Fields.dataStatus, obj.getDataStatus()); + })); + return JSONUtil.toJsonStr(trees); + } + + config.setIdKey(FileProjectVO.Fields.categoryId); + config.setParentIdKey(FileProjectVO.Fields.parentId); + config.setWeightKey(FileProjectVO.Fields.sort); + List> fileTrees = TreeUtil.build(edFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { + treeNode.putExtra(FileProjectVO.Fields.categoryId, obj.getId()); + treeNode.putExtra(FileProjectVO.Fields.parentId, obj.getParentId()); + treeNode.putExtra(FileProjectVO.Fields.sort, obj.getSort()); + treeNode.putExtra(FileProjectVO.Fields.categoryName, obj.getFileName()); + treeNode.putExtra(FileProjectVO.Fields.dataStatus, obj.getDataStatus()); + })); + return JSONUtil.toJsonStr(fileTrees); + + } + + private static List getLeafNodes(FileProjectVO root) { + List leafNodes = new ArrayList<>(); + if (root == null) { + return leafNodes; + } + findLeafNodes(root, leafNodes); + return leafNodes; + } + + private static void findLeafNodes(FileProjectVO node, List leafNodes) { + if (node.getChildren().isEmpty()) { + leafNodes.add(node); + } else { + for (FileProjectVO child : node.getChildren()) { + findLeafNodes(child, leafNodes); + } + } + } + public String getEleDataPath(int dataOwnCode) { return PATH_MAP.get(dataOwnCode); } @@ -160,7 +212,7 @@ public class CommonService { List paths = CollUtil.newArrayList(edFileInfo.getFilePath().split(MYSQL_FILE_PATH_SPLIT)); if (maxLengthCheck) { if (paths.size() >= prjFolderMaxLength) { - String info = StrFormatter.format( "当前子集已达到最大层级,禁止创建子集,{} 创建失败。", folderName); + String info = StrFormatter.format("当前子集已达到最大层级,禁止创建子集,{} 创建失败。", folderName); log.error(info); return ElectromagneticResultUtil.fail("-1", info); } @@ -204,10 +256,10 @@ public class CommonService { } } - /** * 1.询管理员从层级定义处查。2.用户从数据库管理界面查询。 - * @param querySource 0:询管理员从层级定义处查。 2.用户从数据库管理界面查询。 + * + * @param querySource 0:询管理员从层级定义处查。 2.用户从数据库管理界面查询。 * @param accessibleIds * @param obj * @return @@ -310,40 +362,6 @@ public class CommonService { return map; } - private static String createTree(List edFileInfos, Object object) { - - TreeNodeConfig config = new TreeNodeConfig(); - if (object instanceof ProjectVO) { - // 转换为树 - config.setIdKey(EdFileInfo.Fields.id); - config.setParentIdKey(EdFileInfo.Fields.parentId); - config.setWeightKey(EdFileInfo.Fields.sort); - List> trees = TreeUtil.build(edFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { - treeNode.putExtra(ProjectVO.Fields.id, obj.getId()); - treeNode.putExtra(ProjectVO.Fields.parentId, obj.getParentId()); - treeNode.putExtra(ProjectVO.Fields.sort, obj.getSort()); - treeNode.putExtra(ProjectVO.Fields.fileName, obj.getFileName()); - treeNode.putExtra(ProjectVO.Fields.title, obj.getFileName()); - treeNode.putExtra(ProjectVO.Fields.dataStatus, obj.getDataStatus()); - })); - return JSONUtil.toJsonStr(trees); - } - - config.setIdKey(FileProjectVO.Fields.categoryId); - config.setParentIdKey(FileProjectVO.Fields.parentId); - config.setWeightKey(FileProjectVO.Fields.sort); - List> fileTrees = TreeUtil.build(edFileInfos, PRJ_PARENT_ID, config, ((obj, treeNode) -> { - treeNode.putExtra(FileProjectVO.Fields.categoryId, obj.getId()); - treeNode.putExtra(FileProjectVO.Fields.parentId, obj.getParentId()); - treeNode.putExtra(FileProjectVO.Fields.sort, obj.getSort()); - treeNode.putExtra(FileProjectVO.Fields.categoryName, obj.getFileName()); - treeNode.putExtra(FileProjectVO.Fields.dataStatus, obj.getDataStatus()); - })); - return JSONUtil.toJsonStr(fileTrees); - - } - - public ElectromagneticResult deleteFolder(String id, int dataOwnCode) { // 如果文件夹下存在文件(包括文件夹和已经逻辑删除的文件),则不允许删除。后面管理员选择会有物理删除文件夹和文件的功能,此时MySQL和文件系统则会进行物理删除该文件。 EdFileInfo srcFileInfo = edFileInfoMapper.selectById(id); @@ -432,7 +450,7 @@ public class CommonService { Set res = new HashSet<>(); List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? - querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value): + querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value) : queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).get(PrjQuerySource.USER_DB.value); prjInfo.forEach(e -> { @@ -443,25 +461,6 @@ public class CommonService { return res; } - private static List getLeafNodes(FileProjectVO root) { - List leafNodes = new ArrayList<>(); - if (root == null) { - return leafNodes; - } - findLeafNodes(root, leafNodes); - return leafNodes; - } - - private static void findLeafNodes(FileProjectVO node, List leafNodes) { - if (node.getChildren().isEmpty()) { - leafNodes.add(node); - } else { - for (FileProjectVO child : node.getChildren()) { - findLeafNodes(child, leafNodes); - } - } - } - public void deletePrjSysDir(List paths) { for (String path : paths) { String preDirName = new File(path).getParentFile().getName(); 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 a41dad8..2562fdb 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 @@ -20,7 +20,6 @@ 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.*; -import com.electromagnetic.industry.software.common.enums.FilePermission; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.exception.PermissionDeniedException; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; @@ -99,7 +98,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getSaveStatus, EleDataSaveStatusEnum.SUCCESS.code) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getParentId, pars.getParentId()) @@ -180,7 +179,6 @@ public class EdFileInfoServiceImpl extends ServiceImpl importVersionRelation = getVersionRelation(deepCopyV); Map dbVersionRelation = getVersionRelation(deepCopyDb); @@ -666,7 +664,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl maps = new HashMap<>(); for (String id : ids) { Map edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) - .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT)) + .like(EdFileInfo::getFilePath, MYSQL_FILE_PATH_SPLIT + id + MYSQL_FILE_PATH_SPLIT)) .stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); maps.putAll(edFileInfos); } @@ -830,7 +828,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl{},错误信息--->{}", id,e.getMessage()); + String info = StrFormatter.format("文件预览错误,文件id是--->{},错误信息--->{}", id, e.getMessage()); log.error(info, e); throw new BizException(info); } @@ -1329,18 +1328,20 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryFileList (Page page, List ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag) { + public IPage queryFileList(Page page, List ids, FileInfoQueryDTO queryDTO, int saveStatus, int effectFlag) { return this.baseMapper.queryFileList(page, ids, queryDTO, saveStatus, effectFlag); } /** * 判断是否是文件夹 + * * @param id * @return */ @@ -1353,6 +1354,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl List needSavePaths = new ArrayList<>(); // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。 for (int i = 1; i <= prjFolderMaxLength; ++i) { - List targetEdFileInfos = commonService.selectAllAdminFolder(targetId, null, dataOwnCode); + List targetEdFileInfos = commonService.selectAllAdminFolder(targetId, null, dataOwnCode); // 先查找source第i层下有那些子集 final int count = i; // 取source当前层 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java index 3c72a11..8814db2 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java @@ -29,6 +29,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl() .eq(EdTagLibrary::getTagId, newTagId)); - Assert.notNull(tag,"此标签/标签组不存在"); + Assert.notNull(tag, "此标签/标签组不存在"); Assert.notNull(newTag, "无法将标签/标签组移动到此位置"); // 若标签挪到空标签组下,newTagId为新标签组Id @@ -119,11 +122,11 @@ public class EdTagLibraryServiceImpl extends ServiceImpl() + boolean isUpdated = this.update(new LambdaUpdateWrapper() .eq(EdTagLibrary::getTagId, tagId) .set(EdTagLibrary::getParentId, newParentId) .set(EdTagLibrary::getOrderBy, newOrderBy) @@ -144,6 +147,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl().eq(EdTagLibrary::getParentId, tagId)); } // 删除本身 - boolean isDeleted = this.removeById(tagId); + boolean isDeleted = this.removeById(tagId); if (isDeleted) { UserThreadLocal.setSuccessInfo("", tagId, StrFormatter.format("删除了标签 {} ", tag.getTagName())); } @@ -188,6 +193,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(EdTagLibrary::getTagId, tagId) .set(EdTagLibrary::getTagName, tagName) @@ -263,6 +270,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl()) .build(); - } else if(tag.getType().equals(TagTypeEnum.TAG.getCode())) { + } else if (tag.getType().equals(TagTypeEnum.TAG.getCode())) { node = TreeNode.builder() .title(tag.getTagName()) .key(tag.getTagId()) @@ -308,6 +316,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl { /** * 创建文件格式 + * * @param suffixName * @return */ @@ -17,6 +18,7 @@ public interface FileFormatService extends IService { /** * 删除文件格式 + * * @param id * @return */ @@ -24,12 +26,14 @@ public interface FileFormatService extends IService { /** * 查询文件格式列表 + * * @return */ List getList(); /** * 更新文件格式 + * * @param fileFormat * @return */ diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileFormatServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileFormatServiceImpl.java index 4e943a5..e60a688 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileFormatServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileFormatServiceImpl.java @@ -21,6 +21,7 @@ public class FileFormatServiceImpl extends ServiceImpllambdaUpdate().eq(FileFormat::getId, id).set(FileFormat::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)); - UserThreadLocal.setSuccessInfo("","", StrFormatter.format("废除了文件格式,id {} ", id)); + UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("废除了文件格式,id {} ", id)); return true; } /** * 查询了文件格式列表 + * * @return */ @Override public List getList() { List fileFormats = this.baseMapper.selectList(Wrappers.lambdaQuery().eq(FileFormat::getEffectFlag, EffectFlagEnum.EFFECT.code).orderByDesc(FileFormat::getCreatedTime)); List fileFormatVOS = BeanUtil.copyToList(fileFormats, FileFormatVO.class); - UserThreadLocal.setSuccessInfo("","", "查询了文件格式列表"); + UserThreadLocal.setSuccessInfo("", "", "查询了文件格式列表"); return fileFormatVOS; } /** * 更新文件格式 + * * @param fileFormat * @return */ diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 3dff2ea..f319296 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -9,7 +9,10 @@ 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.electromagnetic.industry.software.common.enums.*; +import com.electromagnetic.industry.software.common.enums.AdminTypeEnum; +import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; +import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; +import com.electromagnetic.industry.software.common.enums.FileBackupSource; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; @@ -66,7 +69,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { public ElectromagneticResult list(RecycleFileQueryDTO pars) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getAllDeleted, true) .eq(EdFileInfo::getPermanentDeleted, false) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) @@ -125,7 +128,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { // 备份该文件 List edFileInfos = this.edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getFileId, fileId)); List fileSysPaths = new ArrayList<>(); for (EdFileInfo edFileInfo : edFileInfos) { @@ -208,7 +211,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { public ElectromagneticResult recover(String fileId) { List edFileInfos = this.edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .orderByDesc(EdFileInfo::getUpdatedTime) .eq(EdFileInfo::getFileId, fileId) .last("limit 1")); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java index 5787b28..363d981 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileTagRelationServiceImpl.java @@ -1,4 +1,5 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; + import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -10,11 +11,9 @@ import com.electromagnetic.industry.software.manage.mapper.FileTagRelationMapper import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import com.electromagnetic.industry.software.manage.pojo.models.FileTagRelation; import com.electromagnetic.industry.software.manage.pojo.resp.FileTagInfo; -import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; import com.electromagnetic.industry.software.manage.service.FileTagRelationService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -26,6 +25,7 @@ import java.util.stream.Collectors; public class FileTagRelationServiceImpl extends ServiceImpl implements FileTagRelationService { @Autowired private EdTagLibraryMapper edTagLibraryMapper; + private boolean addTagToFile(String fileId, String tagId, String createdBy) { // 检查标签是否存在并且已发布 EdTagLibrary tag = edTagLibraryMapper.selectOne(new LambdaQueryWrapper() @@ -48,6 +48,7 @@ public class FileTagRelationServiceImpl extends ServiceImpl getFileTags (String fileId) { + @Override + public List getFileTags(String fileId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(FileTagRelation::getFileId, fileId); List relations = this.list(queryWrapper); @@ -88,6 +91,7 @@ public class FileTagRelationServiceImpl extends ServiceImpl roleIds = getRoles(userId); - if (roleIds ==null || roleIds.isEmpty()) { + if (roleIds == null || roleIds.isEmpty()) { return new ArrayList<>(); } @@ -148,16 +152,17 @@ public class PermissionServiceImpl implements PermissionService { /** * 过滤有导出权限的文件id + * * @param ids */ @Override public Map filterExportIds(String[] ids) { Map map = new HashMap<>(); - if (ids.length==0) { + if (ids.length == 0) { return map; } - String userId=UserThreadLocal.getUserId(); + String userId = UserThreadLocal.getUserId(); List roleIds = getRoles(userId); for (String id : ids) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -165,10 +170,10 @@ public class PermissionServiceImpl implements PermissionService { .eq(RolePermission::getPermissionCode, FilePermission.EXPORT.getCode()) .in(RolePermission::getRoleId, roleIds); long count = rolePermissionService.count(queryWrapper); - map.put(id, count>0); + map.put(id, count > 0); // 添加父节点 - if ( count>0 ) { + if (count > 0) { EdFileInfo file = edFileInfoMapper.selectById(id); String[] parentIds = file.getFilePath().split("_"); for (String parentId : parentIds) { @@ -184,7 +189,7 @@ public class PermissionServiceImpl implements PermissionService { * 同步权限 */ @Override - public void syncPermissions (String prjId) { + public void syncPermissions(String prjId) { // 获取当前项目所有已逻辑删除的节点,删除其权限 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -213,13 +218,14 @@ public class PermissionServiceImpl implements PermissionService { /** * 判断用户有无权限 + * * @param permissionCode 权限 - * @param userId 用户编码 - * @param fileId 文件编码 + * @param userId 用户编码 + * @param fileId 文件编码 * @return */ @Override - public boolean isPermitted (String permissionCode, String userId, String fileId) { + public boolean isPermitted(String permissionCode, String userId, String fileId) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(UserRole::getUserId, userId); List roleIds = Optional.ofNullable(userRoleMapper.selectList(queryWrapper)) @@ -234,6 +240,6 @@ public class PermissionServiceImpl implements PermissionService { queryWrapper1.eq(RolePermission::getPermissionCode, permissionCode) .eq(RolePermission::getFileId, fileId) .in(RolePermission::getRoleId, roleIds); - return rolePermissionService.count(queryWrapper1)>0; + return rolePermissionService.count(queryWrapper1) > 0; } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java index cc17801..c4768ae 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RolePermissionServiceImpl.java @@ -27,12 +27,13 @@ public class RolePermissionServiceImpl extends ServiceImpl currentPermission, String infoId) { + public void syncNewPermissions(List currentPermission, String infoId) { if (currentPermission == null) { throw new IllegalArgumentException("currentPermission must not be null"); @@ -50,7 +51,7 @@ public class RolePermissionServiceImpl extends ServiceImpl !newPermissionSet.contains(p.getRoleId() + "_" + p.getPermissionCode())) .collect(Collectors.toList()); - log.info ("删除旧权限: {}", permissionsToDelete); + log.info("删除旧权限: {}", permissionsToDelete); // 删除不需要的权限 if (!permissionsToDelete.isEmpty()) { @@ -77,6 +78,7 @@ public class RolePermissionServiceImpl extends ServiceImpl files, String prjId) { + public void syncPermissionsAfterTreeUpdate(List files, String prjId) { log.info("开始同步项目权限:{}", prjId); @@ -102,13 +105,13 @@ public class RolePermissionServiceImpl extends ServiceImpl new ArrayList<>()).add(file); } - System.out.println("levelMap:"+levelMap); + System.out.println("levelMap:" + levelMap); // 获取叶子节点 int maxLen = levelMap.lastKey(); // 从最底层的叶子节点的上级节点开始遍历,更新权限 - for (int i=maxLen-1; i>0;i--) { + for (int i = maxLen - 1; i > 0; i--) { for (EdFileInfo fileInfo : levelMap.get(i)) { String infoId = fileInfo.getId(); if (isLeafNode(infoId, files)) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java index ae5926c..c693761 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/RoleServiceImpl.java @@ -63,7 +63,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro @Override public Boolean createRole(RoleDTO roleDTO) { - Assert.isTrue(checkRoleNameUnique(roleDTO),StrFormatter.format("角色名称 {} 已存在" , roleDTO.getRoleName())); + Assert.isTrue(checkRoleNameUnique(roleDTO), StrFormatter.format("角色名称 {} 已存在", roleDTO.getRoleName())); // 创建角色 Role role = new Role(); @@ -96,7 +96,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro @Override public Boolean updateRole(RoleDTO roleDTO) { - Assert.isTrue(checkRoleNameUnique(roleDTO),StrFormatter.format("角色名称 {} 已存在" , roleDTO.getRoleName())); + Assert.isTrue(checkRoleNameUnique(roleDTO), StrFormatter.format("角色名称 {} 已存在", roleDTO.getRoleName())); // 更新角色信息 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); @@ -184,12 +184,12 @@ public class RoleServiceImpl extends ServiceImpl implements Ro dataAuth.put("data", false); rolePermissionDTO.setDataAuth(dataAuth); } - rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes,false)); + rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes, false)); nodes.add(rolePermissionDTO); } roleDTO.setData(buildTree(nodes)); - UserThreadLocal.setSuccessInfo("",roleId,"查询了角色详情"); + UserThreadLocal.setSuccessInfo("", roleId, "查询了角色详情"); return roleDTO; } @@ -229,14 +229,14 @@ public class RoleServiceImpl extends ServiceImpl implements Ro if (StringUtils.isNotBlank(rolePageDTO.getRoleName())) { queryWrapper.eq("r.role_name", rolePageDTO.getRoleName()); } - IPage result = roleMapper.getPageRoleDTO(page, queryWrapper); + IPage result = roleMapper.getPageRoleDTO(page, queryWrapper); for (RoleDTO roleDTO : result.getRecords()) { - if (roleDTO.getAllowedActions() != null ) { + if (roleDTO.getAllowedActions() != null) { String chineseString = Arrays.stream(roleDTO.getAllowedActions().split(",")).map(FilePermission::toDescription).collect(Collectors.joining(",")); roleDTO.setAllowedActions(chineseString); } } - UserThreadLocal.setSuccessInfo("","", "查询了角色列表"); + UserThreadLocal.setSuccessInfo("", "", "查询了角色列表"); return result; } @@ -285,7 +285,7 @@ public class RoleServiceImpl extends ServiceImpl implements Ro dataAuth.put("data", false); rolePermissionDTO.setDataAuth(dataAuth); - rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes,false)); + rolePermissionDTO.setPermission(permissionService.transToMap(permissionCodes, false)); nodes.add(rolePermissionDTO); } roleDTO.setData(buildTree(nodes)); 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 62d0f65..b70453c 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 @@ -16,7 +16,6 @@ import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog; import com.electromagnetic.industry.software.manage.pojo.req.AccessLogQueryDTO; import com.electromagnetic.industry.software.manage.pojo.resp.AccessLogQueryVO; import com.electromagnetic.industry.software.manage.pojo.resp.RespPageVO; -import com.electromagnetic.industry.software.manage.service.PermissionService; import com.electromagnetic.industry.software.manage.service.UserAccessLogService; import org.springframework.stereotype.Service; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 0a3c2c7..236e162 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -10,7 +10,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.electromagnetic.industry.software.common.cons.UserConstants; import com.electromagnetic.industry.software.common.enums.ActiveEnum; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; -import com.electromagnetic.industry.software.common.enums.ElectromagneticErrorEnum; import com.electromagnetic.industry.software.common.enums.PublishEnum; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.pojo.UserLoginInfo; @@ -168,7 +167,7 @@ public class UserServiceImpl implements UserService { PublishParam model = UserMappers.INSTANCE.getUserPublishRequestToModel(userPublishRequest); model.setModifier(UserThreadLocal.getUserId()); model.setModifierName(UserThreadLocal.getUsername()); - UserThreadLocal.setSuccessInfo("","",StrFormatter.format("批量发布了用户")); + UserThreadLocal.setSuccessInfo("", "", StrFormatter.format("批量发布了用户")); return ElectromagneticResultUtil.success(userMapper.publish(model) > 0); } @@ -293,7 +292,7 @@ public class UserServiceImpl implements UserService { /** * 修改用户密码 * - * @param userId 用户ID + * @param userId 用户ID * @param newPassword 新密码 * @return 修改结果 */ @@ -365,7 +364,7 @@ public class UserServiceImpl implements UserService { User user = userMapper.getSingleUser(userId); Assert.notNull(user, StrFormatter.format("用户不存在,ID为 {}", userId)); String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY); - Assert.isTrue(matchPassword(user,decodeOldPwd), StrFormatter.format("旧密码错误,ID为 {}", userId)); + Assert.isTrue(matchPassword(user, decodeOldPwd), StrFormatter.format("旧密码错误,ID为 {}", userId)); return ElectromagneticResultUtil.success(true); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index 59b9d31..f536337 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; import cn.hutool.core.text.StrFormatter; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -62,7 +63,7 @@ public class BackupTask { List failBackFailFileIds = getFailBackFile(); for (String id : failBackFailFileIds) { EdFileInfo fileInfo = this.edFileInfoMapper.selectOne(Wrappers.lambdaQuery() - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getId, id)); String sysFilePath = commonService.getFileSysPath(fileInfo.getFilePath(), fileInfo.getDataOwn()); long startTime = System.currentTimeMillis(); @@ -83,7 +84,7 @@ public class BackupTask { fileMaxCreateTime = DateUtil.offsetHour(fileMaxCreateTime, -1); // 需要备份的文件 List edFileInfos = edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) - .select(EdFileInfo.class, file -> !file.getColumn().equals("file_content")) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code) .gt(EdFileInfo::getCreatedTime, fileMaxCreateTime)); for (EdFileInfo edFileInfo : edFileInfos) { @@ -128,7 +129,7 @@ public class BackupTask { return fileBackupLogs.stream().map(FileBackupLog::getFileId).collect(Collectors.toList()); } -// @Scheduled(cron = "0 0 3 * * ?") + // @Scheduled(cron = "0 0 3 * * ?") public void deleteTmpFile() { DateTime backDaysTime = DateUtil.offsetDay(new Date(), -elePropertyConfig.getTmpFileStoreDays()); FileFilter filter = file -> file.lastModified() < backDaysTime.getTime(); diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index ce3fbcc..0f2a33f 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -4,7 +4,6 @@ spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://139.196.179.195:3306/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true spring.datasource.username=em_user_dev spring.datasource.password=Szsd#2O25$dev - spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource mybatis-plus.mapper-locations=classpath:sqlmapper/*.xml @@ -13,35 +12,27 @@ spring.servlet.multipart.max-file-size=500MB spring.servlet.multipart.max-request-size=500MB pagehelper.helperDialect=mysql pagehelper.reasonable=false - server.port=12396 #windows文件存储目录,用于测试 data.windows.path=D:/tmp/szsd/data/eleData/dev/project/ data.upload.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/upload/ data.download.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/download/ data.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/tmp - data.windows.user.path=D:/tmp/szsd/data/eleData/dev/user_project/ data.upload.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/user_upload/ data.download.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/usr_download/ data.windows.usere.tmp.path=D:/tmp/szsd/data/eleData/dev/user_tmp - data.linux.path=/szsd/data/eleData/dev/project/ data.upload.linux.tmp.path=/szsd/data/eleData/dev/upload/ data.download.linux.tmp.path=/szsd/data/eleData/dev/download/ data.linux.tmp.path=/szsd/data/eleData/dev/tmp - # user path data.linux.user.path=/szsd/data/eleData/dev/user_project/ data.upload.linux.user.tmp.path=/szsd/data/eleData/dev/user_upload/ data.download.linux.user.tmp.path=/szsd/data/eleData/dev/usr_download/ data.linux.user.tmp.path=/szsd/data/eleData/dev/user_tmp - prj.folder.max.length=6 - spring.jackson.time-zone=GMT+8 - tmp.file.store.days=7 - backup.remote.host=127.0.0.1 backup.remote.port=1111 \ No newline at end of file diff --git a/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml index b1aadb0..b22cb22 100644 --- a/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml +++ b/electrmangnetic/src/main/resources/sqlmapper/EdFileInfoMapper.xml @@ -29,7 +29,7 @@ where length(id) = 6 - SELECT *, LEFT(file_code, 6 ) as category_id FROM ed_file_info diff --git a/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml index b3e7d4e..15ea916 100644 --- a/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml +++ b/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml @@ -9,23 +9,23 @@ - + SELECT f.parent_id as file_id, rp.permission_code, rp.role_id FROM ed_role_permission rp - JOIN ed_file_info f ON rp.file_id = f.id + JOIN ed_file_info f ON rp.file_id = f.id WHERE f.parent_id = #{fileId} - AND f.prj_dir = #{prjDir} - AND f.data_status = #{dataStatus} - AND f.effect_flag = #{effectFlag} + AND f.prj_dir = #{prjDir} + AND f.data_status = #{dataStatus} + AND f.effect_flag = #{effectFlag} GROUP BY rp.role_id, rp.permission_code - HAVING COUNT(f.id) = ( - SELECT COUNT(f2.id) - FROM ed_file_info f2 - WHERE f2.parent_id = #{fileId} - AND f2.prj_dir = #{prjDir} - AND f2.data_status = #{dataStatus} - AND f2.effect_flag = #{effectFlag} - ) + HAVING COUNT(f.id) = (SELECT COUNT(f2.id) + FROM ed_file_info f2 + WHERE f2.parent_id = #{fileId} + AND f2.prj_dir = #{prjDir} + AND f2.data_status = #{dataStatus} + AND f2.effect_flag = #{effectFlag}) \ No newline at end of file diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java deleted file mode 100644 index 259be3c..0000000 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ElectromagneticErrorEnum.java +++ /dev/null @@ -1,203 +0,0 @@ -package com.electromagnetic.industry.software.common.enums; - -import lombok.Getter; - -@Getter -public enum ElectromagneticErrorEnum implements ErrorEnum { - /** - * 系统 - */ - SYSTEM_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "000", "SYSTEM_ERROR", "系统异常"), - PARAMS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "001", "PARAMS_ERROR", "参数异常"), - /*****************业务级*****************/ - - - //111 - INPUT_PARAMETER_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53001", "INPUT_PARAMETER_IS_EMPTY", "入参为空"), - NAME_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53002", "NAME_IS_EMPTY", "名字为空"), - CREATOR_IS_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "53003", "CREATOR_IS_EMPTY", "创建人不能为空"), - NAME_IS_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53004", "NAME_IS_REPEAT", "名字重复"), - NAME_FORM_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53005", "NAME_FORM_ERROR", "名字格式不正确"), - PARENT_CATEGORY_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53006", "PARENT_CATEGORY_NOT_EXIST", "父类目不存在"), - DEPT_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53007", "DEPT_NOT_EXIST", "属主部门不存在"), - - CATEGORY_BUILD_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53008", "CATEGORY_BUILD_ERROR", "类目代码生成失败"), - CATEGORY_INSERT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53009", "CATEGORY_INSERT_ERROR", "类目新增异常"), - CATEGORY_NOT_EXIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53010", "CATEGORY_NOT_EXIST_ERROR", "类目不存在"), - CATEGORY_DELETE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53011", "CATEGORY_DELETE_ERROR", "类目删除异常"), - REPORT_STATUS_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53012", "REPORT_STATUS_CREATE", "新建状态可以编辑"), - REPORT_STATUS_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53013", "REPORT_STATUS_CREATE", "新建状态可以删除"), - REPORT_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53014", "REPORT_DELETE", "删除失败"), - REPORT_UPDATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53015", "REPORT_UPDATE", "更新失败"), - REPORT_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53016", "REPORT_CREATE", "创建失败"), - REPORT_STATUS(ErrorLevels.ERROR, ErrorTypes.BIZ, "53017", "REPORT_STATUS", - "传入对应更新状态:●状态为“新增”,可操作“上架:3”;●状态为“使用中”,可传入“下架:4”;●状态为“将下架”,可操作“取消下架:6”"), - REPORT_GINSENG_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53018", "REPORT_GINSENG_NULL", "入参为空"), - REPORT_CHECK_NAME(ErrorLevels.ERROR, ErrorTypes.BIZ, "53019", "REPORT_GINSENG_NULL", "名称重复,请重新输入"), - GETSEQUENCEID_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53020", "GETSEQUENCEID_ERROR", "序列化ID生成错误"), - GET_DEPT_CODE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53020", "GET_DEPT_CODE_ERROR", "部门编码获取异常"), - REPORT_NO_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53021", "REPORT_NO_ERROR", "ID生成不能为空"), - DEPT_INSERT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53022", "DEPT_INSERT_ERROR", "新增异常"), - DEPT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53023", "DEPT_EXIST", "属主部门已存在"), - DEPT_ENUM_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53024", "DEPT_ENUM_NOT_EXIST", "属主部门枚举映射不存在"), - DEPT_DELETE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53025", "DEPT_DELETE_ERROR", "部门删除异常"), - REPORT_UN_SHELVE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53026", "REPORT_UN_SHELVE_ERROR", "下架數據为空"), - - REPORT_ID_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53027", "REPORT_ID_NULL", "ID对应数据不存在"), - REPORT_UN_SHELVE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53028", "REPORT_ID_NULL", "沒有下架數據"), - REPORT_CATEOGRYLV1_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53029", "REPORT_ID_NULL", "一級類目为空"), - REPORT_CATEOGRYLV2_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53030", "REPORT_ID_NULL", "二級類目为空"), - CATEGORY_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53031", "CATEGORY_EXIST", "类目已存在"), - CATEGORY_EXIST_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53032", "CATEGORY_EXIST_REPORT", "类目下已挂在数据"), - REPORT_URL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53033", "REPORT_URL_ERROR", "FR报表地址错误"), - REPORT_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53034", "REPORT_URL_ERROR", "下架原因不能为空"), - REPORT_CANCEL_OFF_DESC_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53035", "REPORT_URL_ERROR", "取消下架原因不能为空"), - DEPT_EXIST_REPORT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53036", "DEPT_EXIST_REPORT", "部门下已挂在数据"), - FINE_CREATE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53037", "FINE_CREATE_USER_ERROR", "创建用户失败"), - FINE_CONNECT_LIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53038", "FINE_CONNECT_LIST_ERROR", "获取finebi数据库连接列表错误"), - FINE_CONNECT_TABLE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53039", "FINE_CONNECT_TABLE_ERROR", "获取finebi数据库对应表列表错误"), - FINE_ADD_GROUP_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53040", "FINE_ADD_GROUP_ERROR", "添加分组报错"), - FINE_ADD_PACK_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53041", "FINE_ADD_PACK_ERROR", "添加业务包报错"), - FINE_DELETE_USER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53042", "FINE_DELETE_USER_ERROR", "删除用户失败"), - FINE_ADD_DB_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53043", "FINE_ADD_DB_ERROR", "数据集已存在,请不要重复添加"), - FINE_GET_TABLE_INFO_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53044", "FINE_GET_TABLE_INFO_ERROR", "数据集表信息错误"), - LABEL_OBJNAME_IS_CHINESE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53045", "LABEL_OSS_ANALYSIS_FAIL", "名称不能包含特殊字符(下划线,横杠,加号 除外)"), - MEASURE_EXCEL_READ_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53046", "MEASURE_EXCEL_READ_ERROR", "文件读取失败,请按照模板重新上传!(是否有空值或重复数据或数据超过指定长度)"), - MEASURE_UPDATE_STATUS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53047", "MEASURE_UPDATE_STATUS_ERROR", "当前状态不允许更新指标"), - FINE_ADD_TABLE_ROW_AUTHORITY_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53048", "FINE_ADD_TABLE_ROW_AUTHORITY_ERROR", "数据集添加行权限错误"), - FINE_GET_ENTRY_TREE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53049", "fine_get_entry_tree_error", "bi获取目录报错"), - FINE_ENTRY_AUTH_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "FINE_ENTRY_AUTH_ERROR", "目录授权失败"), - OAR_ORG_AUTH_LIST_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53051", "oar_org_auth_list_repeat", "适用机构重复"), - - ACCOUNT_INFO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "调用运营支撑域获取信息为空"), - ROLE_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "用户对应角色为空"), - ROLE_ORG_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630005", "ACCOUNT_INFO_BY_ACC_ID_NULL", "工作组对应組员为空"), - USER_ROLE_ORG_CODE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630008", "ACCOUNT_INFO_BY_ACC_ID_NULL", "角色对应机构为空"), - OSS_ANALYSIS_FAIL(ErrorLevels.ERROR, ErrorTypes.BIZ, "50", "OSS_ANALYSIS_FAIL", "excel不能为空"), - OAR_OFFLINE_CONFIG_NAME_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_NAME_REPEAT", "名称重复"), - OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR1(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR1", "统计报表维度和度量不能为空"), - OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR2(ErrorLevels.ERROR, ErrorTypes.BIZ, "630009", "OAR_OFFLINE_CONFIG_DIMENSION_MEASURE_ERROR2", "清单报表维度和度量至少一个不能为空"), - OAR_OFFLINE_CONFIG_CONDITION_VALUE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "6300010", "OAR_OFFLINE_CONFIG_CONDITION_VALUE_NULL", "筛选条件值不能为空"), - OAR_OFFLINE_CONFIG_NAME_NOT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630006", "OAR_OFFLINE_CONFIG_NAME_NOT_NULL", "任务名称不能为空"), - OAR_OFFLINET_SQL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "6300013", "OAR_OFFLINET_SQL_ERROR", "离线任务运行报错"), - - OFFLINE_ERRORL(ErrorLevels.ERROR, ErrorTypes.BIZ, "630011", "OFFLINE_ERRORL", "更新失敗"), - SEND_MESSAGE(ErrorLevels.ERROR, ErrorTypes.BIZ, "630012", "SEND_MESSAGE", "获取对应wrapper 异常"), - OAR_OFFLINE_CONFIG_DETAIL_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "630014", "oar_offline_config_detail_repeat", "该模板所选字段并无更改,请通过原模板 \"离线取数\" 功能提交离线任务!"), - - EXCEL_TYPE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "100", "EXCEL_TYPE_ERROR", "报表类型不正确"), - EXCEL_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "101", "EXCEL_DELETE", "行业数据删除失败"), - DATA_EXCEL_DELETE(ErrorLevels.ERROR, ErrorTypes.BIZ, "102", "DATA_EXCEL_DELETE", "业务数据删除失败"), - IMPORT_DATA_EXCEL(ErrorLevels.ERROR, ErrorTypes.BIZ, "103", "IMPORT_DATA_EXCEL", "业务数据导入失败"), - UPDATE_DATA_EXCEL(ErrorLevels.ERROR, ErrorTypes.BIZ, "104", "UPDATE_DATA_EXCEL", "业务数据更新失败"), - INSTITUTION_CODE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "105", "INSTITUTION_CODE_ERROR", "行机构编码错误!"), - DATA_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "106", "DATA_EMPTY", "模板存在空值,请检查并补充完整;"), - NUMBER_EMPTY(ErrorLevels.ERROR, ErrorTypes.BIZ, "107", "NUMBER_EMPTY", "电融(万元)&网销(万元)&车商(万元)&线下(万元)&中介(万元)&重客(万元)总和不等于该行合计值"), - DATA_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "108", "DATA_EXIST", "模板存在重复项,请检查更新!"), - VELOCITY_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "109", "VELOCITY_ERROR", "模板转换失败"), - PLAN_TYPE_DATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "110", "PLAN_TYPE_DATE", "计划周期格式错误!"), - WEEK_XUN_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "111", "WEEK_XUN_ERROR", "你所传的文件不是周旬报"), - TOPIC_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "112", "TOPIC_ERROR", "主题不匹配"), - CALIBER_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "113", "CALIBER_ERROR", "指标口径不匹配"), - DATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "114", "DATA_ERROR", "报表缺失月份数据"), - DATA_IS_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "115", "DATA_IS_EXIST", "数据已存在"), - - DEPT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53049", "DEPT_NULL", "当前该账户尚未授权,请联系管理员申请权限!"), - MEMBER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "MEMBER_NULL", "对应组员为空"), - ORG_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53050", "MEMBER_NULL", "用戶对应机构权限为空"), - DATA_AUTHRIZATION(ErrorLevels.ERROR, ErrorTypes.BIZ, "53051", "DATA_AUTHRIZATION", "数据集授权"), - GROUP_FLAG(ErrorLevels.ERROR, ErrorTypes.BIZ, "53052", "DATA_AUTHRIZATION", "工作组失效"), - DATA_USER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53053", "DATA_AUTHRIZATION", "数据为空"), - DATA_UPDATE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53054", "DATA_AUTHRIZATION", "数据为空。"), - DATA_COLLECT_AUTH_IS(ErrorLevels.ERROR, ErrorTypes.BIZ, "53055", "DATA_COLLECT_AUTH_IS", "对应数据集和仪表板已经授权完成"), - DATA_COLLECT_AUTH_IS_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53056", "DATA_COLLECT_AUTH_IS_NULL", "对应数据为空"), - DATA_PRODUCT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53057", "DATA_PRODUCT_NULL", "产品权限为空"), - IMPORT_DATA_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53058", "IMPORT_DATA_NULL", "导入数据为空"), - IMPORT_DATA_IS_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53059", "IMPORT_DATA_IS_NULL", "对应数据为空"), - IMPORT_REPEAT_DATA(ErrorLevels.ERROR, ErrorTypes.BIZ, "53060", "IMPORT_REPEAT_DATA", "重复数据"), - DATA_IS_INVALID(ErrorLevels.ERROR, ErrorTypes.BIZ, "53061", "DATA_IS_INVALID", "对应清单失效,请创建新的模板"), - DATA_AUTH_USER_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53062", "data_auth_user_null", "用户组没有匹配到有权限的数据集"), - FILE_NOT_EXIST(ErrorLevels.ERROR, ErrorTypes.BIZ, "53063", "FILE_NOT_EXIST", "字段文件下载失败"), - EXCEL_FIELD_ANALYTICS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53066", "EXCEL_FIELD_ANALYTICS_ERROR", "excel解析异常,请检查内容"), - TASK_TIME_ROLE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53067", "TASK_TIME_ROLE", "请设置定时任务日期滚动规则后再提交"), - TASK_TEMPLATE_CREATE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53067", "TASK_TIME_ROLE", "支持1~50个字符!"), - IMPORT_DATA_LENGTH(ErrorLevels.ERROR, ErrorTypes.BIZ, "53068", "IMPORT_DATA_LENGTH", "字段说明长度支持100个字符!"), - FILE_NAME_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53069", "FILE_NAME_ERROR", "文件命名错误"), - FILE_NAME_REPEAT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53070", "FILE_NAME_REPEAT", "存在相同命名的文件,请检查后重更新上传!"), - INDICATORCARD_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53071", "INDICATORCARD_NULL", "指标卡为空!"), - INDICATORCARD_DATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53072", "INDICATORCARD_DATA_ERROR", "指标数据请求异常!"), - ANALYSISITEMPLATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53073", "ANALYSISITEMPLATE_ERROR", "模板创建DB失败!"), - INDICATORCARD_DB_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53074", "INDICATORCARD_DB_ERROR", "指标卡DB操作异常!"), - INDICATORCARD_WARNING_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53075", "INDICATORCARD_WARNING_NULL", "预警已存在!"), - RESOURCE_NO_GENERATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53076", "RESOURCE_NO_GENERATE_ERROR", "业务编码生成异常,请联系管理员"), - INDICATOR_DATASERVICE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53077", "INDICATOR_DATASERVICE_NO_NULL", "服务编码不能为空!"), - INDICATOR_DT_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53078", "INDICATOR_DT_NULL", "指标数据DT时间为空!"), - INDICATOR_HOST_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53079", "INDICATOR_HOST_NULL", "主指标不能为空!"), - INDICATOR_CARD_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53080", "INDICATOR_CARD_NO_NULL", "指标卡编码不能为空!"), - INDICATOR_CARD_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53081", "INDICATOR_CARD_NULL", "无匹配的指标卡!"), - INDICATOR_DATAFILE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53082", "INDICATOR_DATAFILE_NULL", "返回数据中没有指标字段!"), - INDICATOR_DT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53083", "INDICATOR_DT_ERROR", "请选择正确的DT或者服务编码!"), - DRILLINGCONFIG_INDICATOR_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53084", "DRILLINGCONFIG_INDICATOR_NULL", "下钻配置字段未匹配到指标字段!"), - DUTIES_UPDATE_IDS_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53085", "DUTIES_UPDATE_IDS_ERROR", "入参ids不能为空"), - DUTIES_MEASURES_UPDATE_LIST_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53086", "DUTIES_MEASURES_UPDATE_LIST_ERROR", "举措信息不能为空"), - INDICATOR_WARN_CREATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53087", "INDICATOR_WARN_CREATE_ERROR", "保存指标预警规则失败"), - INDICATOR_WARN_UPDATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53088", "INDICATOR_WARN_UPDATE_ERROR", "指标预警规则更新失败"), - INDICATOR_WARN_RESULT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53089", "INDICATOR_WARN_RESULT_ERROR", "指标预警结果查询失败"), - INDICATOR_WARN_DEL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53090", "INDICATOR_WARN_DEL_ERROR", "指标预警删除失败"), - INDICATOR_WARN_NULL_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53091", "INDICATOR_WARN_NULL_ERROR", "请求预警中心参数为空"), - MESSAGE_DING_PUSH_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53092", "MESSAGE_DING_PUSH_ERROR", "钉钉消息推送失败"), - INDICATORCARD_UPDATESTATUSOREFFECT_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53093", "INDICATORCARD_UPDATESTATUSOREFFECT_ERROR", "指标卡状态更新或删除失败"), - INDICATORCARD_INVALID_OPERATION(ErrorLevels.ERROR, ErrorTypes.BIZ, "53094", "INDICATORCARD_INVALID_OPERATION", "指标卡状态更新或删除无效的操作"), - DUTIES_CREATE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53095", "DUTIES_CREATE_ERROR", "一键通知失败!"), - DUTIES_MEASURES_SOLVETIME_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53096", "DUTIES_MEASURES_SOLVETIME_ERROR", "请选择正确的举措时间"), - USER_INFO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53097", "USER_INFO_NULL", "用户信息不能为空!"), - EXIST_GOAL_CONFIG(ErrorLevels.ERROR, ErrorTypes.BIZ, "53098", "EXIST_GOAL_CONFIG", "已存在该年度的目标计划!"), - DATASERVICE_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53099", "DATASERVICE_NULL", "数据服务不存在!"), - DATASERVICE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53100", "DATASERVICE_NO_NULL", "服务编码不存在!"), - ANALYSISTEMPLATE_NO_NULL(ErrorLevels.ERROR, ErrorTypes.BIZ, "53101", "ANALYSISTEMPLATE_NO_NULL", "模板不存在!"), - INDICATORCARWRAINGONE(ErrorLevels.ERROR, ErrorTypes.BIZ, "53102", "INDICATORCARWRAINGONE", "一个指标卡只支持一个预警指标!"), - TESTDRILLINGDATA_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53103", "TESTDRILLINGDATA_ERROR", "下钻服务测试失败!"), - DRILLINGCONFIG_ORGLEVE_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53104", " DRILLINGCONFIG_ORGLEVE_ERROR", "下钻机构权限勾选不正确!"), - BRANCH_ORGANIZATION_ERROR(ErrorLevels.ERROR, ErrorTypes.BIZ, "53105", "BRANCH_ORGANIZATION_ERROR", "获取用户配置机构信息!"), - USER_NOT_FOUND(ErrorLevels.ERROR, ErrorTypes.BIZ, "53106", "USER_NOT_FOUND", "用户不存在"), - OLD_PASSWORD_INCORRECT(ErrorLevels.ERROR, ErrorTypes.BIZ, "53107", "OLD_PASSWORD_INCORRECT", "旧密码不正确"), - ; - - - private String codeType; - - private String codeLevel; - - private String code; - - private String errorMessage; - - private String errorDesc; - - /** - * DataplatformLabelErrorEnum - * - * @param codeLevel - * @param codeType - * @param code - * @param errorMessage - * @param errorDesc - */ - ElectromagneticErrorEnum(String codeLevel, String codeType, String code, String errorMessage, String errorDesc) { - - this.codeType = codeType; - this.codeLevel = codeLevel; - this.code = code; - this.errorMessage = errorMessage; - this.errorDesc = errorDesc; - } - - public void setErrorDesc(String errorDesc) { - this.errorDesc = errorDesc; - } - - public ElectromagneticErrorEnum changeErrorDesc(String str) { - this.setErrorDesc(str); - return this; - } -} \ No newline at end of file diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FilePermission.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FilePermission.java index 2003b35..d05f00d 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FilePermission.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FilePermission.java @@ -1,5 +1,7 @@ package com.electromagnetic.industry.software.common.enums; +import cn.hutool.core.util.StrUtil; + import java.util.ArrayList; import java.util.List; @@ -48,13 +50,18 @@ public enum FilePermission { public static List getAllCodesExcludeView() { List codes = new ArrayList<>(); for (FilePermission permission : FilePermission.values()) { - if (!permission.getCode().equals("view")) { + if (StrUtil.equals(permission.getCode(), "view")) { codes.add(permission.getCode()); }// 获取每个枚举实例的 code } return codes; } + // 转换成权限描述 + public static String toDescription(String code) { + return fromCode(code).getDescription(); + } + // 获取权限代码 public String getCode() { return code; @@ -64,10 +71,5 @@ public enum FilePermission { public String getDescription() { return description; } - - // 转换成权限描述 - public static String toDescription(String code) { - return fromCode(code).getDescription(); - } } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java index f3706f6..7070350 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java @@ -6,7 +6,7 @@ import lombok.AllArgsConstructor; public enum FileRepeatEnum { IGNORE(1, "跳过所有冲突文件"), - VERSION(2, "所有冲突文件版本更新"), + VERSION(2, "所有冲突文件版本更新"), NEW(3, "重命名所有冲突文件, 文件后加“_1”"); public int code; public String desc; diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/TagTypeEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/TagTypeEnum.java index 96c5b81..8e41323 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/TagTypeEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/TagTypeEnum.java @@ -10,12 +10,12 @@ public enum TagTypeEnum { /** * 标签组 */ - GROUP (0), + GROUP(0), /** * 标签 */ - TAG (1); + TAG(1); private final Integer code; } 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 4323dc7..7d3fb9f 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 @@ -12,7 +12,7 @@ public enum UserOperationModuleEnum { DATABASE("database", "数据库管理"), USER("user", "人员管理"), USER_PRJ("userPrj", "个人数据"), - TAG("tag","标签管理"), + TAG("tag", "标签管理"), LOG("log", "操作记录审计"), TMP("tmp", "临时文件"), BACKUP_FILE("backupFile", "系统文件备份"), diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/ExcelParse.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/ExcelParse.java index e8aae31..a239fdc 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/ExcelParse.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/ExcelParse.java @@ -19,7 +19,7 @@ public class ExcelParse extends FileParse { } return OfficeFileUtil.parseXlsAllText(fileTmpPath); } catch (Exception e) { - log.error("解析{}格式的excel错误,具体为{}",fileType, e.getMessage(), e); + log.error("解析{}格式的excel错误,具体为{}", fileType, e.getMessage(), e); } finally { FileUtil.del(fileTmpPath); } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java index 41c4205..7757d69 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java @@ -13,7 +13,7 @@ public abstract class FileParse { public abstract String parseAllText(InputStream stream, String fileType); protected String createFileTmpPath(String fileType) { - tmpPath = FileUtil.getParent(tmpPath, 3) + File.separator + "tmp" + File.separator + IdUtil.simpleUUID() + "." + fileType; + tmpPath = FileUtil.getParent(tmpPath, 3) + File.separator + "tmp" + File.separator + IdUtil.simpleUUID() + "." + fileType; return tmpPath; } } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/PptParse.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/PptParse.java index 8eeb2a1..8ca225c 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/PptParse.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/PptParse.java @@ -17,7 +17,7 @@ public class PptParse extends FileParse { FileUtil.writeFromStream(stream, fileTmpPath); res = fileType.endsWith("pptx") ? OfficeFileUtil.parsePptxAllText(fileTmpPath) : OfficeFileUtil.parsePptAllText(fileTmpPath); } catch (Exception e) { - log.error("解析{}格式的ppt错误,具体为{}",fileType, e.getMessage(), e); + log.error("解析{}格式的ppt错误,具体为{}", fileType, e.getMessage(), e); } finally { FileUtil.del(fileTmpPath); } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/TextParse.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/TextParse.java index 8d61654..5f3ef8d 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/TextParse.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/TextParse.java @@ -27,5 +27,4 @@ public class TextParse extends FileParse { } - } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java index 818ebef..4907c52 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java @@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Builder; import lombok.Data; -import java.util.ArrayList; import java.util.List; @Data diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java index 3568c60..21a19a3 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleCommonUtil.java @@ -20,6 +20,12 @@ import java.util.regex.Pattern; public final class EleCommonUtil { private static final Map PARSE_MAP = new HashMap<>(); + // 正则表达式模式,匹配中文字符、下划线、连字符、加号、数字和英文字符 + private static final String PATTERN = "^[\\u4e00-\\u9fa5a-zA-Z0-9._\\-+]+$"; + private static final String TIME_FORMAT1 = "yyMMddHHmmssSSS"; + // 编译正则表达式 + private static final Pattern pattern = Pattern.compile(PATTERN); + private static EleLog log = new EleLog(EleCommonUtil.class); static { PARSE_MAP.put("doc", new WordParse()); @@ -39,16 +45,6 @@ public final class EleCommonUtil { PARSE_MAP.put("pdf", new PdfParse()); } - // 正则表达式模式,匹配中文字符、下划线、连字符、加号、数字和英文字符 - private static final String PATTERN = "^[\\u4e00-\\u9fa5a-zA-Z0-9._\\-+]+$"; - - private static final String TIME_FORMAT1 = "yyMMddHHmmssSSS"; - - // 编译正则表达式 - private static final Pattern pattern = Pattern.compile(PATTERN); - - private static EleLog log = new EleLog(EleCommonUtil.class); - public static boolean isFileNameValid(String fileFullName) { if (StrUtil.isEmpty(fileFullName) || fileFullName.length() > 32) { return false; diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java index b788b26..8a81d32 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/EleLog.java @@ -15,27 +15,6 @@ public class EleLog { this.logger = LoggerFactory.getLogger(clazz); } - public void info(String msg, Object... args) { - logger.info(format(msg, args)); - } - - public void debug(String msg, Object... args) { - logger.debug(format(msg, args)); - } - - public void warn(String msg, Object... args) { - logger.warn(format(msg, args)); - } - - public void error(String msg, Object... args) { - logger.error(format(msg, args)); - } - - public void error(String msg, Throwable e, Object... args) { - String info = format(msg, args); - logger.error(info, e); - } - private static String format(String strPattern, Object... argArray) { if (!StrUtil.isBlank(strPattern) && !StrUtil.isBlank(PLACE_HOLDER) && !ArrayUtil.isEmpty(argArray)) { int strPatternLength = strPattern.length(); @@ -43,7 +22,7 @@ public class EleLog { StringBuilder sbuf = new StringBuilder(strPatternLength + 50); int handledPosition = 0; - for(int argIndex = 0; argIndex < argArray.length; ++argIndex) { + for (int argIndex = 0; argIndex < argArray.length; ++argIndex) { int delimIndex = strPattern.indexOf(PLACE_HOLDER, handledPosition); if (delimIndex == -1) { if (handledPosition == 0) { @@ -78,4 +57,25 @@ public class EleLog { return strPattern; } } + + public void info(String msg, Object... args) { + logger.info(format(msg, args)); + } + + public void debug(String msg, Object... args) { + logger.debug(format(msg, args)); + } + + public void warn(String msg, Object... args) { + logger.warn(format(msg, args)); + } + + public void error(String msg, Object... args) { + logger.error(format(msg, args)); + } + + public void error(String msg, Throwable e, Object... args) { + String info = format(msg, args); + logger.error(info, e); + } } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java index 0b4914a..2ad98dd 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java @@ -30,5 +30,4 @@ public class ElectromagneticResultUtil { } - } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/OfficeFileUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/OfficeFileUtil.java index 6ea4a22..1850a5b 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/OfficeFileUtil.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/OfficeFileUtil.java @@ -24,7 +24,10 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Objects; @@ -37,8 +40,8 @@ public class OfficeFileUtil { if (EleCommonUtil.isWinOs()) { File inputWord = new File(wordPath); File outputFile = new File(pdfPath); - try(InputStream docxInputStream = Files.newInputStream(inputWord.toPath()); - OutputStream outputStream = Files.newOutputStream(outputFile.toPath())) { + try (InputStream docxInputStream = Files.newInputStream(inputWord.toPath()); + OutputStream outputStream = Files.newOutputStream(outputFile.toPath())) { IConverter build = LocalConverter.builder().build(); boolean execute = build.convert(docxInputStream) .as(DocumentType.DOCX) 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 6dc4dd0..68615a4 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 @@ -46,14 +46,14 @@ public class UserThreadLocal { return userThread.get().getResult(); } - public static void setReqArgs(String args) { - userThread.get().setReqArgs(args); - } - public static String getReqArgs() { return userThread.get().getReqArgs(); } + public static void setReqArgs(String args) { + userThread.get().setReqArgs(args); + } + public static void setSuccessInfo(String parentId, String dataId, String strPattern, Object... argArray) { parentId = StrUtil.isEmpty(parentId) ? "" : parentId; dataId = StrUtil.isEmpty(dataId) ? "" : dataId; From 5fa31e6a0fba91db4f7f9f9aad8bec2887d5045e Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 10:46:24 +0800 Subject: [PATCH 03/29] clean code --- .../software/common/enums/ErrorEnum.java | 14 ---------- .../software/common/enums/ErrorLevels.java | 28 ------------------- .../software/common/enums/ErrorTypes.java | 26 ----------------- .../util/ElectromagneticResultUtil.java | 10 ------- 4 files changed, 78 deletions(-) delete mode 100644 electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorEnum.java delete mode 100644 electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorLevels.java delete mode 100644 electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorTypes.java diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorEnum.java deleted file mode 100644 index 625cefa..0000000 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorEnum.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.electromagnetic.industry.software.common.enums; - -public interface ErrorEnum { - - String getCodeType(); - - String getCodeLevel(); - - String getCode(); - - String getErrorMessage(); - - String getErrorDesc(); -} diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorLevels.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorLevels.java deleted file mode 100644 index 2588fc5..0000000 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorLevels.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.electromagnetic.industry.software.common.enums; - -/** - * @author wsk - * @version $Id: ErrorLevels.java, v 0.1 2024-10-17 17:44 wsk - */ -public interface ErrorLevels { - - /** - * INFO级别 - */ - public static final String INFO = "1"; - - /** - * WARN级别 - */ - public static final String WARN = "3"; - - /** - * ERROR级别 - */ - public static final String ERROR = "5"; - - /** - * FATAL级别 - */ - public static final String FATAL = "7"; -} \ No newline at end of file diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorTypes.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorTypes.java deleted file mode 100644 index cab393c..0000000 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/ErrorTypes.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.electromagnetic.industry.software.common.enums; - -public interface ErrorTypes { - - /** - * 系统错误 - */ - public static final String SYSTEM = "0"; - - /** - * 业务错误 - */ - @Deprecated - public static final String BIZ = "1"; - - /** - * 第三方错误 - */ - @Deprecated - public static final String THIRD_PARTY = "2"; - - /** - * 业务错误,客户感知 - */ - public static final String BIZ_CUSTOMER = "9"; -} \ No newline at end of file diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java index 2ad98dd..7281986 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/util/ElectromagneticResultUtil.java @@ -1,6 +1,5 @@ package com.electromagnetic.industry.software.common.util; -import com.electromagnetic.industry.software.common.enums.ErrorEnum; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; public class ElectromagneticResultUtil { @@ -21,13 +20,4 @@ public class ElectromagneticResultUtil { return electromagneticResult; } - public static ElectromagneticResult fail(ErrorEnum errorEnum) { - ElectromagneticResult electromagneticResult = new ElectromagneticResult<>(); - electromagneticResult.setSuccess(false); - electromagneticResult.setErrorCode(errorEnum.getCode()); - electromagneticResult.setErrorMessage(errorEnum.getErrorMessage()); - return electromagneticResult; - } - - } From eac95e140fa58422cd8d2dd70d08d84b56cd5e51 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 11:42:19 +0800 Subject: [PATCH 04/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/EdFileInfoServiceImpl.java | 27 ++++++++++++------- .../software/common/enums/FileRepeatEnum.java | 11 +++++++- 2 files changed, 27 insertions(+), 11 deletions(-) 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 2562fdb..9750616 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 @@ -749,7 +749,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl upload(String parentId, MultipartFile file, Integer strategy, int dataOwnCode) { - + Assert.isTrue(FileRepeatEnum.contains(strategy), "解决重名文件参数错误"); String destPath = commonService.getDbPathById(parentId); String fileName = file.getOriginalFilename(); String strategyStr = FileRepeatEnum.getDesc(strategy); @@ -828,7 +828,13 @@ public class EdFileInfoServiceImpl extends ServiceImpl moveFile(String id, String targetFolderId, Integer strategy, int dataOwnCode) { + Assert.isTrue(FileRepeatEnum.contains(strategy), "解决重名文件参数错误"); // 获取原文件mysql模型 EdFileInfo srcFileInfo = this.baseMapper.selectById(id); String srcFilePath = commonService.getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode); @@ -903,9 +910,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl sameFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, targetFolderId) @@ -966,6 +973,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl copyFile(String id, String targetFolderId, Integer strategy, int dataOwnCode) { + Assert.isTrue(FileRepeatEnum.contains(strategy), "解决重名文件参数错误"); // 获取原文件mysql模型 EdFileInfo srcFileInfo = this.baseMapper.selectById(id); String srcFileDbPath = srcFileInfo.getFilePath(); @@ -1070,10 +1078,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getParentId, targetFolderId) @@ -1101,7 +1109,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl parentFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) @@ -1173,7 +1180,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Fri, 7 Mar 2025 13:46:44 +0800 Subject: [PATCH 05/29] =?UTF-8?q?=E4=BC=98=E5=8C=96=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 --- .../software/manage/service/serviceimpl/CommonService.java | 2 +- .../manage/service/serviceimpl/EdFileInfoServiceImpl.java | 3 +-- 2 files changed, 2 insertions(+), 3 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 2ea0c88..dc6475f 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 @@ -173,7 +173,7 @@ public class CommonService { } public String createFileCode(String parentId, String fileType, int version, String timeStr) { - if (fileType.equals(EleDataTypeEnum.FOLDER.desc)) { + if (fileType.equals(EleDataTypeEnum.FOLDER.desc) || StrUtil.isEmpty(fileType)) { return parentId + "00" + version + timeStr; } FileFormat fileFormat = fileFormatService.getBaseMapper().selectOne(Wrappers.lambdaQuery(FileFormat.class).eq(FileFormat::getSuffixName, fileType)); 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 9750616..c26f94b 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 @@ -1109,7 +1109,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Fri, 7 Mar 2025 14:20:40 +0800 Subject: [PATCH 06/29] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=BA=93=E6=96=87=E4=BB=B6=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EdFileInfoController.java | 42 ++-- .../controller/EdFileRelationController.java | 12 +- .../controller/FileFormatController.java | 6 +- .../controller/FileRecycleController.java | 6 +- .../manage/controller/ProjectController.java | 22 +- .../controller/RepoEdFileInfoController.java | 204 ++++++++++++++++++ .../manage/controller/RepoPrjController.java | 91 ++++++++ .../UserEdFileRelationController.java | 12 +- .../service/serviceimpl/CommonService.java | 53 ++++- .../serviceimpl/EdFileInfoServiceImpl.java | 13 +- .../service/serviceimpl/EdPrjServiceImpl.java | 15 +- .../software/common/enums/FileRepeatEnum.java | 1 + .../software/common/enums/PrjQuerySource.java | 4 +- .../common/enums/UserOperationModuleEnum.java | 16 +- 14 files changed, 424 insertions(+), 73 deletions(-) create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java 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 22eb44c..8f9a915 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 @@ -30,33 +30,33 @@ public class EdFileInfoController { @Resource private EdFileInfoService edFileInfoService; - @UserOperation(value = "查看工程树", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看工程树", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping("tree") public ElectromagneticResult tree() { return edFileInfoService.tree(PrjQuerySource.SYS_DB.value); } - @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping("createFolder") public ElectromagneticResult createFolder(@RequestBody CreateFolderDTO createFolderDTO) { return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "作废", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "作废", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DELETE) @RequestMapping("delete") public ElectromagneticResult delete(@RequestParam String id) { return edFileInfoService.delete(id, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "查询文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查询文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.VIEW) @RequestMapping("info") public ElectromagneticResult info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "上传文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "上传文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.UPLOAD) @RequestMapping("upload") public ElectromagneticResult upload(@RequestParam("parentId") String parentId, @@ -65,21 +65,21 @@ public class EdFileInfoController { return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DOWNLOAD) @RequestMapping("download") public ResponseEntity download(@RequestParam String id, HttpServletResponse response) { return edFileInfoService.download(id, response, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.EDIT) @RequestMapping("updateFileInfo") public ElectromagneticResult updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) { return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "移动文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "移动文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.MOVE) @RequestMapping("moveFile") public ElectromagneticResult moveFile(@RequestParam("id") String id, @@ -88,7 +88,7 @@ public class EdFileInfoController { return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "复制文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "复制文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.MOVE) @RequestMapping("copyFile") public ElectromagneticResult copyFile(@RequestParam("id") String id, @@ -97,27 +97,27 @@ public class EdFileInfoController { return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "查看文件历史版本信息", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看文件历史版本信息", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.VIEW) @RequestMapping("versionView") public ElectromagneticResult versionView(@RequestParam String fileId) { return edFileInfoService.versionView(fileId); } - @UserOperation(value = "回退版本", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "回退版本", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.EDIT) @RequestMapping("versionBack") public ElectromagneticResult versionBack(@RequestParam String fileId, @RequestParam int targetVersion) { return edFileInfoService.versionBack(fileId, targetVersion); } - @UserOperation(value = "导出数据库", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "导出数据库", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping("batchExport") public ResponseEntity batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { return edFileInfoService.batchExport(fileIds, response, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping(value = "/mergeChunks", method = RequestMethod.GET) public ElectromagneticResult mergeChunks(@RequestParam String identifier, @RequestParam String fileName, @@ -125,7 +125,7 @@ public class EdFileInfoController { return edFileInfoService.mergeChunks(identifier, fileName, totalChunks, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { return edFileInfoService.batchImport(fileChunkDTO); @@ -137,27 +137,27 @@ public class EdFileInfoController { return edFileInfoService.checkChunkExist(fileChunkDTO); } - @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "查询文件详细信息", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查询文件详细信息", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.VIEW) @RequestMapping(value = "/fileDetail", method = RequestMethod.GET) public ElectromagneticResult detail(@RequestParam String id) { return edFileInfoService.detail(id); } - @UserOperation(value = "查询子文件集", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查询子文件集", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.VIEW) @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) public ElectromagneticResult queryChildFolder(@RequestParam String parentId) { return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.SYS_FILE.code); } - @UserOperation(value = "预览文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "预览文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DOWNLOAD) @RequestMapping(value = "preview", method = RequestMethod.GET) public ResponseEntity preview(@RequestParam String id, HttpServletResponse response) { @@ -171,7 +171,7 @@ public class EdFileInfoController { * @return */ @GetMapping("/collection") - @UserOperation(value = "收藏了文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "收藏了文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult addFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); @@ -184,7 +184,7 @@ public class EdFileInfoController { * @return */ @GetMapping("/removeCollection") - @UserOperation(value = "从收藏夹移除了文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "从收藏夹移除了文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult removeFavorite(@RequestParam String id) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); @@ -196,7 +196,7 @@ public class EdFileInfoController { * @return */ @PostMapping("/listCollection") - @UserOperation(value = "查看了收藏夹", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看了收藏夹", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { String userId = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edFileInfoService.findFavorite(userId, fileInfoQueryDTO)); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java index ecb89f9..48fb8af 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java @@ -30,7 +30,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/create", method = RequestMethod.POST) - @UserOperation(value = "创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "创建了文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult createRelation(@RequestBody EdFileRelation relation) { return ElectromagneticResultUtil.success(edFileRelationService.createRelation(relation)); } @@ -42,7 +42,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/update", method = RequestMethod.POST) - @UserOperation(value = "更新了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "更新了文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult updateRelation(@RequestBody UpdateRelationDTO updateRelation) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdFileRelation::getId, updateRelation.getRelationId()).set(EdFileRelation::getRelationship, updateRelation.getRelationship()); @@ -60,7 +60,7 @@ public class EdFileRelationController { * @return */ @RequestMapping(value = "/cancel/{relationId}", method = RequestMethod.GET) - @UserOperation(value = "取消了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "取消了文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult cancelRelation(@PathVariable("relationId") String relationId) { return ElectromagneticResultUtil.success(edFileRelationService.cancelRelation(relationId)); } @@ -69,7 +69,7 @@ public class EdFileRelationController { * 展示文件关系 */ @RequestMapping(value = "listRelations/{id}", method = RequestMethod.GET) - @UserOperation(value = "查看了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看了文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult listRelations(@PathVariable("id") String id) { return ElectromagneticResultUtil.success(edFileRelationService.listRelations(id)); } @@ -78,7 +78,7 @@ public class EdFileRelationController { * 检验文件名是否唯一 */ @RequestMapping(value = "/checkFileNameExist", method = RequestMethod.POST) - @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult checkFileNameExist(@RequestBody CheckNameUniqueRequest checkNameUniqueRequest) { return ElectromagneticResultUtil.success(edFileRelationService.checkNameExist(checkNameUniqueRequest)); } @@ -87,7 +87,7 @@ public class EdFileRelationController { * 本地上传并建立关系 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) - @UserOperation(value = "上传了文件并创建了文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "上传了文件并创建了文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult uploadRelation(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @RequestParam("description") String description, diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java index 6d1ba2c..a9d28ab 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileFormatController.java @@ -20,19 +20,19 @@ public class FileFormatController { private FileFormatService fileFormatService; @GetMapping("/add") - @UserOperation(value = "新增文件格式", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "新增文件格式", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult addFileFormat(@RequestParam String suffixName) { return ElectromagneticResultUtil.success(fileFormatService.addFileFormat(suffixName)); } @GetMapping("/delete") - @UserOperation(value = "删除文件格式", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "删除文件格式", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult deleteFileFormat(@RequestParam String id) { return ElectromagneticResultUtil.success(fileFormatService.deleteFileFormat(id)); } @GetMapping("/list") - @UserOperation(value = "查询文件格式列表", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查询文件格式列表", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult list() { return ElectromagneticResultUtil.success(fileFormatService.getList()); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java index 0ee48a5..8c043ea 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java @@ -20,19 +20,19 @@ public class FileRecycleController { private FileRecycleService fileRecycleService; @RequestMapping("list") - @UserOperation(value = "查看回收站", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看回收站", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult list(@RequestBody RecycleFileQueryDTO pars) { return fileRecycleService.list(pars); } @RequestMapping("remove") - @UserOperation(value = "彻底清除文件", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "彻底清除文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult remove(@RequestParam String fileId) { return fileRecycleService.remove(fileId); } @RequestMapping("recover") - @UserOperation(value = "文件恢复", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "文件恢复", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult recover(@RequestParam String fileId) { return fileRecycleService.recover(fileId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java index 85f86f8..9206e3f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/ProjectController.java @@ -28,55 +28,55 @@ public class ProjectController { @Resource private PermissionService permissionService; - @UserOperation(value = "创建层级", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "创建层级", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("create") public ElectromagneticResult create(@RequestParam String prjName) { return edPrjService.createNewPrj(prjName, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "删除层级", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "删除层级", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("delete") public ElectromagneticResult delete(@RequestParam String prjId) { return edPrjService.delete(prjId, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "修改层级名", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "修改层级名", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("modify") public ElectromagneticResult modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) { return edPrjService.modifyPrjName(prjId, newPrjName, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "查询所有层级", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "查询所有层级", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("queryAll") public ElectromagneticResult queryAll() { return edPrjService.queryAllPrjInfo(PrjQuerySource.SYS_PRJ.value); } - @UserOperation(value = "添加子集", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "添加子集", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("addFolder") public ElectromagneticResult addFolder(@RequestParam String folderName, @RequestParam String parentId) { return edPrjService.addFolder(parentId, folderName, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "修改子集名称", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "修改子集名称", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("modifyFolder") public ElectromagneticResult modifyFolder(@RequestParam String newFolderName, @RequestParam String id) { return edPrjService.modifyFolder(id, newFolderName, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "废除子集", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "废除子集", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("deleteFolder") public ElectromagneticResult deleteFolder(@RequestParam String id) { return edPrjService.deleteFolder(id, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "更改层级顺序", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "更改层级顺序", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("folderResort") public ElectromagneticResult folderResort(@RequestBody List folderResortDTOList) { return edPrjService.folderResort(folderResortDTOList); } - @UserOperation(value = "发布层级", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "发布层级", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("publish") public ElectromagneticResult publish(@RequestParam String prjId) { edPrjService.publish(prjId, DataOwnEnum.SYS_PRJ.code); @@ -85,13 +85,13 @@ public class ProjectController { return ElectromagneticResultUtil.success(true); } - @UserOperation(value = "引用层级", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "引用层级", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("follow") public ElectromagneticResult follow(@RequestParam String sourceId, @RequestParam String targetId) { return edPrjService.follow(sourceId, targetId, DataOwnEnum.SYS_PRJ.code); } - @UserOperation(value = "查询层级发布状态", modelName = UserOperationModuleEnum.PRJ_SETTING) + @UserOperation(value = "查询层级发布状态", modelName = UserOperationModuleEnum.SYS_PRJ_SETTING) @RequestMapping("publishStatus") public ElectromagneticResult publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) { return edPrjService.publishStatus(queryPublishStatus, DataOwnEnum.SYS_PRJ.code); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java new file mode 100644 index 0000000..642b000 --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java @@ -0,0 +1,204 @@ +package com.electromagnetic.industry.software.manage.controller; + +import com.electromagnetic.industry.software.common.annotations.RequiredPermission; +import com.electromagnetic.industry.software.common.annotations.UserOperation; +import com.electromagnetic.industry.software.common.enums.DataOwnEnum; +import com.electromagnetic.industry.software.common.enums.FilePermission; +import com.electromagnetic.industry.software.common.enums.PrjQuerySource; +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.common.util.UserThreadLocal; +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.FileInfoQueryDTO; +import com.electromagnetic.industry.software.manage.pojo.req.UpdateFileInfoDTO; +import com.electromagnetic.industry.software.manage.service.EdFileInfoService; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@RestController +@RequestMapping("/data/ed/repo/file") +public class RepoEdFileInfoController { + + @Resource + private EdFileInfoService edFileInfoService; + + @UserOperation(value = "查看工程树", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping("tree") + public ElectromagneticResult tree() { + return edFileInfoService.tree(PrjQuerySource.REPO_DB.value); + } + + @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping("createFolder") + public ElectromagneticResult createFolder(@RequestBody CreateFolderDTO createFolderDTO) { + return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "作废", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.DELETE) + @RequestMapping("delete") + public ElectromagneticResult delete(@RequestParam String id) { + return edFileInfoService.delete(id, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "查询文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.VIEW) + @RequestMapping("info") + public ElectromagneticResult info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { + return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "上传文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.UPLOAD) + @RequestMapping("upload") + public ElectromagneticResult upload(@RequestParam("parentId") String parentId, + @RequestParam("file") MultipartFile file, + @RequestParam("strategy") Integer strategy) { + return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.DOWNLOAD) + @RequestMapping("download") + public ResponseEntity download(@RequestParam String id, HttpServletResponse response) { + return edFileInfoService.download(id, response, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.EDIT) + @RequestMapping("updateFileInfo") + public ElectromagneticResult updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) { + return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "移动文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.MOVE) + @RequestMapping("moveFile") + public ElectromagneticResult moveFile(@RequestParam("id") String id, + @RequestParam("targetFolderId") String targetFolderId, + @RequestParam("strategy") Integer strategy) { + return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "复制文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.MOVE) + @RequestMapping("copyFile") + public ElectromagneticResult copyFile(@RequestParam("id") String id, + @RequestParam("targetFolderId") String targetFolderId, + @RequestParam("strategy") Integer strategy) { + return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "查看文件历史版本信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.VIEW) + @RequestMapping("versionView") + public ElectromagneticResult versionView(@RequestParam String fileId) { + return edFileInfoService.versionView(fileId); + } + + @UserOperation(value = "回退版本", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.EDIT) + @RequestMapping("versionBack") + public ElectromagneticResult versionBack(@RequestParam String fileId, @RequestParam int targetVersion) { + return edFileInfoService.versionBack(fileId, targetVersion); + } + + @UserOperation(value = "导出数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping("batchExport") + public ResponseEntity batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { + return edFileInfoService.batchExport(fileIds, response, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping(value = "/mergeChunks", method = RequestMethod.GET) + public ElectromagneticResult mergeChunks(@RequestParam String identifier, + @RequestParam String fileName, + @RequestParam Integer totalChunks) { + return edFileInfoService.mergeChunks(identifier, fileName, totalChunks, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping(value = "/batchImport", method = RequestMethod.POST) + public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { + return edFileInfoService.batchImport(fileChunkDTO); + } + + @UserOperation(value = "批量上传数据库") + @RequestMapping(value = "/batchImport", method = RequestMethod.GET) + public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO) { + return edFileInfoService.checkChunkExist(fileChunkDTO); + } + + @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) + public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { + return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "查询文件详细信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.VIEW) + @RequestMapping(value = "/fileDetail", method = RequestMethod.GET) + public ElectromagneticResult detail(@RequestParam String id) { + return edFileInfoService.detail(id); + } + + @UserOperation(value = "查询子文件集", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.VIEW) + @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) + public ElectromagneticResult queryChildFolder(@RequestParam String parentId) { + return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.SYS_FILE.code); + } + + @UserOperation(value = "预览文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + @RequiredPermission(value = FilePermission.DOWNLOAD) + @RequestMapping(value = "preview", method = RequestMethod.GET) + public ResponseEntity preview(@RequestParam String id, HttpServletResponse response) { + return edFileInfoService.preview(id, response, DataOwnEnum.SYS_FILE.code); + } + + /** + * 添加进收藏夹 + * + * @param id 文件id + * @return + */ + @GetMapping("/collection") + @UserOperation(value = "收藏了文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + public ElectromagneticResult addFavorite(@RequestParam String id) { + String userId = UserThreadLocal.getUserId(); + return ElectromagneticResultUtil.success(edFileInfoService.addFavorite(userId, id)); + } + + /** + * 从收藏夹移除 + * + * @param id 文件id + * @return + */ + @GetMapping("/removeCollection") + @UserOperation(value = "从收藏夹移除了文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + public ElectromagneticResult removeFavorite(@RequestParam String id) { + String userId = UserThreadLocal.getUserId(); + return ElectromagneticResultUtil.success(edFileInfoService.removeFavorite(userId, id)); + } + + /** + * 展示当前用户收藏夹文件 + * + * @return + */ + @PostMapping("/listCollection") + @UserOperation(value = "查看了收藏夹", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) + public ElectromagneticResult listFavorite(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { + String userId = UserThreadLocal.getUserId(); + return ElectromagneticResultUtil.success(edFileInfoService.findFavorite(userId, fileInfoQueryDTO)); + } +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java new file mode 100644 index 0000000..395284b --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java @@ -0,0 +1,91 @@ +package com.electromagnetic.industry.software.manage.controller; + +import com.electromagnetic.industry.software.common.annotations.UserOperation; +import com.electromagnetic.industry.software.common.enums.DataOwnEnum; +import com.electromagnetic.industry.software.common.enums.PrjQuerySource; +import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum; +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.QueryPublishStatus; +import com.electromagnetic.industry.software.manage.service.EdPrjService; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +@RestController +@RequestMapping("/data/ed/repo/prj") +public class RepoPrjController { + + @Resource + private EdPrjService edPrjService; + + @UserOperation(value = "创建层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("create") + public ElectromagneticResult create(@RequestParam String prjName) { + return edPrjService.createNewPrj(prjName, DataOwnEnum.USER_PRJ.code); + } + + @UserOperation(value = "删除层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("delete") + public ElectromagneticResult delete(@RequestParam String prjId) { + return edPrjService.delete(prjId, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "修改层级名", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("modify") + public ElectromagneticResult modifyPrjName(@RequestParam String newPrjName, @RequestParam String prjId) { + return edPrjService.modifyPrjName(prjId, newPrjName, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "查询所有层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("queryAll") + public ElectromagneticResult queryAll() { + return edPrjService.queryAllPrjInfo(PrjQuerySource.REPO_PRJ.value); + } + + @UserOperation(value = "添加子集", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("addFolder") + public ElectromagneticResult addFolder(@RequestParam String folderName, @RequestParam String parentId) { + return edPrjService.addFolder(parentId, folderName, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "修改子集名称", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("modifyFolder") + public ElectromagneticResult modifyFolder(@RequestParam String newFolderName, @RequestParam String id) { + return edPrjService.modifyFolder(id, newFolderName, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "废除子集", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("deleteFolder") + public ElectromagneticResult deleteFolder(@RequestParam String id) { + return edPrjService.deleteFolder(id, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "更改层级顺序", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("folderResort") + public ElectromagneticResult folderResort(@RequestBody List folderResortDTOList) { + return edPrjService.folderResort(folderResortDTOList); + } + + @UserOperation(value = "发布层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("publish") + public ElectromagneticResult publish(@RequestParam String prjId) { + return edPrjService.publish(prjId, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "引用层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("follow") + public ElectromagneticResult follow(@RequestParam String sourceId, @RequestParam String targetId) { + return edPrjService.follow(sourceId, targetId, DataOwnEnum.REPO_PRJ.code); + } + + @UserOperation(value = "查询层级发布状态", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) + @RequestMapping("publishStatus") + public ElectromagneticResult publishStatus(@RequestBody QueryPublishStatus queryPublishStatus) { + return edPrjService.publishStatus(queryPublishStatus, DataOwnEnum.REPO_PRJ.code); + } +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java index 8791ae5..4e4566a 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileRelationController.java @@ -30,7 +30,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/create", method = RequestMethod.POST) - @UserOperation(value = "创建文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "创建文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult createRelation(@RequestBody EdFileRelation relation) { return ElectromagneticResultUtil.success(edFileRelationService.createRelation(relation)); } @@ -42,7 +42,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/update", method = RequestMethod.POST) - @UserOperation(value = "更新文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "更新文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult updateRelation(@RequestBody UpdateRelationDTO updateRelation) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdFileRelation::getId, updateRelation.getRelationId()).set(EdFileRelation::getRelationship, updateRelation.getRelationship()); @@ -60,7 +60,7 @@ public class UserEdFileRelationController { * @return */ @RequestMapping(value = "/cancel/{relationId}", method = RequestMethod.GET) - @UserOperation(value = "取消文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "取消文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult cancelRelation(@PathVariable("relationId") String relationId) { return ElectromagneticResultUtil.success(edFileRelationService.cancelRelation(relationId)); } @@ -69,7 +69,7 @@ public class UserEdFileRelationController { * 展示文件关系 */ @RequestMapping(value = "listRelations/{id}", method = RequestMethod.GET) - @UserOperation(value = "查看文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "查看文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult listRelations(@PathVariable("id") String id) { return ElectromagneticResultUtil.success(edFileRelationService.listRelations(id)); } @@ -78,7 +78,7 @@ public class UserEdFileRelationController { * 检验文件名是否唯一 */ @RequestMapping(value = "/checkFileNameExist", method = RequestMethod.POST) - @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "校验文件名唯一性", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult checkFileNameExist(@RequestBody CheckNameUniqueRequest checkNameUniqueRequest) { return ElectromagneticResultUtil.success(edFileRelationService.checkNameExist(checkNameUniqueRequest)); } @@ -87,7 +87,7 @@ public class UserEdFileRelationController { * 本地上传并建立关系 */ @RequestMapping(value = "/upload", method = RequestMethod.POST) - @UserOperation(value = "上传了文件并创建文件关系", modelName = UserOperationModuleEnum.DATABASE) + @UserOperation(value = "上传了文件并创建文件关系", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult uploadRelation(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @RequestParam("description") String description, 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 dc6475f..4f04c5b 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 @@ -261,10 +261,10 @@ public class CommonService { * * @param querySource 0:询管理员从层级定义处查。 2.用户从数据库管理界面查询。 * @param accessibleIds - * @param obj + * @param returnType * @return */ - public Map> querySysPrjTree(int querySource, List accessibleIds, Object obj) { + public Map> querySysPrjTree(int querySource, List accessibleIds, Object returnType) { /** * querySource=SYS_PRJ(从层级定义处查询) querySource=SYS_DB(从数据库界面处查询) @@ -308,7 +308,7 @@ public class CommonService { prjQueryWrapper.ne(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code); } List edFileInfos = edFileInfoMapper.selectList(prjQueryWrapper); - String jsonTree = createTree(edFileInfos, obj); + String jsonTree = createTree(edFileInfos, returnType); List list = map.getOrDefault(querySource, new ArrayList<>()); list.add(jsonTree); map.put(querySource, list); @@ -321,7 +321,7 @@ public class CommonService { return map; } - public Map> queryUserPrjTree(int querySource, Object object) { + public Map> queryUserPrjTree(int querySource, Object returnType) { Map> map = new HashMap<>(); try { @@ -329,6 +329,7 @@ public class CommonService { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo::getId) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getDataOwn, DataOwnEnum.USER_PRJ.code) .eq(EdFileInfo::getCreatedBy, UserThreadLocal.getUserId()) .eq(EdFileInfo::getParentId, PRJ_PARENT_ID); List prjIds = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); @@ -349,7 +350,49 @@ public class CommonService { } List edFileInfos = edFileInfoMapper.selectList(prjQueryWrapper); - String jsonTree = createTree(edFileInfos, object); + String jsonTree = createTree(edFileInfos, returnType); + List list = map.getOrDefault(querySource, new ArrayList<>()); + list.add(jsonTree); + map.put(querySource, list); + } + } catch (Exception e) { + String info = "查询用户层级信息失败"; + log.error(info, e); + throw new BizException(info); + } + return map; + } + + public Map> queryRepoPrjTree(int querySource, Object returnType) { + + Map> map = new HashMap<>(); + try { + // 首先查出所有的工程id + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) + .select(EdFileInfo::getId) + .eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getCreatedBy, UserThreadLocal.getUserId()) + .eq(EdFileInfo::getParentId, PRJ_PARENT_ID); + List prjIds = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); + + for (String id : prjIds) { + LambdaQueryWrapper prjQueryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) + .eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code) + .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) + .likeRight(EdFileInfo::getFilePath, id); + + if (querySource == PrjQuerySource.REPO_DB.value) { + prjQueryWrapper.and(qr -> qr.eq(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code) + .or() + .eq(EdFileInfo::getDataStatus, EleDataStatusEnum.PUBLISHED.code)); + } else { + prjQueryWrapper.ne(EdFileInfo::getDataStatus, EleDataStatusEnum.WAIT_DELETED.code); + } + + List edFileInfos = edFileInfoMapper.selectList(prjQueryWrapper); + String jsonTree = createTree(edFileInfos, returnType); List list = map.getOrDefault(querySource, new ArrayList<>()); list.add(jsonTree); map.put(querySource, list); 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 c26f94b..05c16c0 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 @@ -204,11 +204,14 @@ public class EdFileInfoServiceImpl extends ServiceImpl> map = (querySource == PrjQuerySource.SYS_DB.value) ? - commonService.querySysPrjTree(querySource, accessibleIds, new FileProjectVO()) : - commonService.queryUserPrjTree(querySource, new FileProjectVO()); - + Map> map; + if (querySource == PrjQuerySource.SYS_DB.value) { + map = commonService.querySysPrjTree(querySource, accessibleIds, new FileProjectVO()); + } else if (querySource == PrjQuerySource.USER_DB.value) { + map = commonService.queryUserPrjTree(querySource, new FileProjectVO()); + } else { + map = commonService.queryRepoPrjTree(querySource, new FileProjectVO()); + } List strings = map.getOrDefault(querySource, new ArrayList<>()); List res = new ArrayList<>(); strings.forEach(e -> { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index 2e72029..4f95a16 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -232,13 +232,16 @@ public class EdPrjServiceImpl extends ServiceImpl public ElectromagneticResult queryAllPrjInfo(int querySource) { /** - * querySource=SYS_PRJ(管理员从层级定义处查询) querySource=USER_PRJ(用户从自定义层级结构处查询 + * querySource=SYS_PRJ(管理员从层级定义处查询) querySource=USER_PRJ(用户从自定义层级结构处查询 querySource=REPO_PRJ */ - - Map> map = (querySource == PrjQuerySource.SYS_PRJ.value) ? - commonService.querySysPrjTree(querySource, null, new ProjectVO()) : - commonService.queryUserPrjTree(querySource, new ProjectVO()); - + Map> map; + if (querySource == PrjQuerySource.SYS_PRJ.value) { + map = commonService.querySysPrjTree(querySource, null, new ProjectVO()); + } else if (querySource == PrjQuerySource.USER_PRJ.value) { + map = commonService.queryUserPrjTree(querySource, new ProjectVO()); + } else { + map = commonService.queryRepoPrjTree(querySource, new ProjectVO()); + } List res = map.getOrDefault(querySource, new ArrayList<>()); List projectVOS = new ArrayList<>(); res.forEach(e -> { diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java index 90a405a..a9a9db2 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileRepeatEnum.java @@ -8,6 +8,7 @@ public enum FileRepeatEnum { IGNORE(1, "跳过所有冲突文件"), REVERSION(2, "所有冲突文件版本更新"), NEW(3, "重命名所有冲突文件, 文件后加“_1”"); + public int code; public String desc; diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java index 6b29c6f..4ca6028 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/PrjQuerySource.java @@ -8,7 +8,9 @@ public enum PrjQuerySource { SYS_PRJ(0), SYS_DB(1), USER_PRJ(2), - USER_DB(3); + USER_DB(3), + REPO_PRJ(4), + REPO_DB(5); public final int value; 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 7d3fb9f..921ecd8 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 @@ -7,22 +7,26 @@ import java.util.Objects; @AllArgsConstructor public enum UserOperationModuleEnum { - PRJ_SETTING("prjSetting", "层级定义"), + SYS_PRJ_SETTING("sys_prj_setting", "数据库层级定义"), + SYS_PRJ_DATABASE("sys_prj_database", "数据库管理"), + + REPO_PRJ_DATABASE("repo_prj_database", "库数据管理"), + REPO_PRJ_SETTING("repo_prj_setting", "库数据层级定义"), + + USER_PRJ("user_prj", "个人数据"), UNKNOWN("unknown", "未分组"), - DATABASE("database", "数据库管理"), + USER("user", "人员管理"), - USER_PRJ("userPrj", "个人数据"), + TAG("tag", "标签管理"), LOG("log", "操作记录审计"), TMP("tmp", "临时文件"), - BACKUP_FILE("backupFile", "系统文件备份"), + BACKUP_FILE("backup_file", "系统文件备份"), 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)) { From e119cf7d054c3af11dd45a111e63cc64d1ee9cab Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 15:07:20 +0800 Subject: [PATCH 07/29] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/manage/pojo/resp/AccessLogQueryVO.java | 2 +- .../manage/service/serviceimpl/UserAccessLogServiceImpl.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/AccessLogQueryVO.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/AccessLogQueryVO.java index 1de2228..c343d3d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/AccessLogQueryVO.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/resp/AccessLogQueryVO.java @@ -11,7 +11,7 @@ public class AccessLogQueryVO { private String userId; - private String username; + private String userName; // 进行的操作 private String action; 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 b70453c..edb9105 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 @@ -73,7 +73,7 @@ public class UserAccessLogServiceImpl extends ServiceImpl idNameMap = userMapper.selectList(wrapper).stream().collect(Collectors.toMap(User::getUserId, User::getUserName)); res.forEach(e -> { - e.setUsername(idNameMap.get(e.getUserId())); + e.setUserName(idNameMap.get(e.getUserId())); e.setOperationModule(UserOperationModuleEnum.getDesc(e.getOperationModule())); }); From fc56722ce580be3caecf5ab919fc6a24ebb1283b Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 15:51:28 +0800 Subject: [PATCH 08/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 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 4f04c5b..e37a69f 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 @@ -58,6 +58,14 @@ public class CommonService { @Resource private FileFormatService fileFormatService; + @PostConstruct + public void init() { + PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getPrjDir()); + PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getPrjDir()); + PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserDataPath()); + PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserDataPath()); + } + private static String createTree(List edFileInfos, Object object) { TreeNodeConfig config = new TreeNodeConfig(); @@ -114,14 +122,6 @@ public class CommonService { return PATH_MAP.get(dataOwnCode); } - @PostConstruct - public void init() { - PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getPrjDir()); - PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getPrjDir()); - PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserDataPath()); - PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserDataPath()); - } - /** * 检查同层级是否有同名的文件夹 */ @@ -492,10 +492,14 @@ public class CommonService { Set res = new HashSet<>(); - List prjInfo = (dataOwnCode == DataOwnEnum.SYS_FILE.code) ? - querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value) : - queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).get(PrjQuerySource.USER_DB.value); - + List prjInfo; + if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { + prjInfo = querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value); + } else if (dataOwnCode == DataOwnEnum.USER_FILE.code) { + prjInfo = queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).get(PrjQuerySource.USER_DB.value); + } else { + prjInfo = queryRepoPrjTree(PrjQuerySource.REPO_DB.value, new FileProjectVO()).get(PrjQuerySource.REPO_DB.value); + } prjInfo.forEach(e -> { FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); From aea1427eaa44a17ef9bfc25c294882bb4063981a Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 17:43:38 +0800 Subject: [PATCH 09/29] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BA=93=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD=E7=9A=84=E9=80=82?= =?UTF-8?q?=E9=85=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/ElePropertyConfig.java | 146 +++++++++++++++--- .../controller/EdFileInfoController.java | 4 +- .../controller/RepoEdFileInfoController.java | 28 ++-- .../controller/UserEdFileInfoController.java | 4 +- .../manage/service/EdFileInfoService.java | 4 +- .../service/serviceimpl/CommonService.java | 10 +- .../serviceimpl/EdFileInfoServiceImpl.java | 30 ++-- .../service/serviceimpl/EdPrjServiceImpl.java | 3 - .../serviceimpl/FileRecycleServiceImpl.java | 2 +- .../software/manage/tasks/BackupTask.java | 2 +- .../src/main/resources/application.properties | 32 ++-- .../software/common/enums/DataOwnEnum.java | 26 ++++ 12 files changed, 206 insertions(+), 85 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 7784ea0..0627a6b 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -1,47 +1,145 @@ package com.electromagnetic.industry.software.manage.config; -import cn.hutool.core.io.FileUtil; +import com.electromagnetic.industry.software.common.enums.DataOwnEnum; import com.electromagnetic.industry.software.common.util.EleCommonUtil; import lombok.Getter; import org.springframework.beans.factory.annotation.Value; -import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; -import javax.annotation.PostConstruct; -import javax.annotation.Resource; - @Component -@Getter public class ElePropertyConfig { - @Resource - private Environment environment; + @Value("${data.ele.tmp.path}") + private String eleTmpPath; - private String downloadDataDir = ""; - private String uploadDataDir = ""; - private String tmpDir = ""; - private String eleDataPath; - private String userDataPath; + @Value("${data.sys.prj.path}") + private String sysPrjPath; - private String prjDir; + @Value("${data.sys.upload.path}") + private String sysUploadPath; - @Value("${data.tmp.days:7}") + @Value("${data.sys.download.path}") + private String sysDownloadPath; + + @Value("${data.user.prj.path}") + private String userPrjPath; + + @Value("${data.user.upload.path}") + private String userUploadPath; + + @Value("${data.user.download.path}") + private String userDownloadPath; + + @Value("${data.repo.prj.path}") + private String repoPrjPath; + + @Value("${data.repo.upload.path}") + private String repoUploadPath; + + @Value("${data.repo.download.path}") + private String repoDownloadPath; + + @Getter + @Value("${tmp.file.store.days}") private int tmpFileStoreDays; + @Getter @Value("${backup.remote.host}") private String remoteHost = ""; + + @Getter @Value("${backup.remote.port}") private int remotePort; - @PostConstruct - public void init() { - uploadDataDir = EleCommonUtil.isWinOs() ? environment.getProperty("data.upload.windows.tmp.path") : environment.getProperty("data.upload.linux.tmp.path"); - downloadDataDir = EleCommonUtil.isWinOs() ? environment.getProperty("data.download.windows.tmp.path") : environment.getProperty("data.download.linux.tmp.path"); - tmpDir = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.tmp.path") : environment.getProperty("data.linux.tmp.path"); - eleDataPath = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.path") : environment.getProperty("data.linux.path"); - userDataPath = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.user.path") : environment.getProperty("data.linux.user.path"); - String tmp = EleCommonUtil.isWinOs() ? environment.getProperty("data.windows.path") : environment.getProperty("data.linux.path"); - prjDir = FileUtil.getParent(tmp, 1); + @Value("${winPrefix}") + private String winPrefix = ""; + + public String getEleTmpPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + eleTmpPath; + } + return eleTmpPath; + } + + public String getSysPrjPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + sysPrjPath; + } + return sysPrjPath; + } + + public String getSysUploadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + sysUploadPath; + } + return sysUploadPath; + } + + public String getSysDownloadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + sysDownloadPath; + } + return sysDownloadPath; + } + + public String getUserPrjPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + userPrjPath; + } + return userPrjPath; + } + + public String getUserUploadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + userUploadPath; + } + return userUploadPath; + } + + public String getUserDownloadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + userDownloadPath; + } + return userDownloadPath; + } + + public String getRepoPrjPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + repoPrjPath; + } + return repoPrjPath; + } + + public String getRepoUploadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + repoUploadPath; + } + return repoUploadPath; + } + + public String getRepoDownloadPath() { + if (EleCommonUtil.isWinOs()) { + return winPrefix + repoDownloadPath; + } + return repoDownloadPath; + } + + public String getUploadDataDir(int dataOwnCode) { + if (DataOwnEnum.isSysCode(dataOwnCode)) { + return getSysUploadPath(); + } else if (DataOwnEnum.isUserCode(dataOwnCode)) { + return getUserUploadPath(); + } + return getRepoUploadPath(); + } + + public String getDownloadDataDir(int dataOwnCode) { + if (DataOwnEnum.isSysCode(dataOwnCode)) { + return getSysDownloadPath(); + } else if (DataOwnEnum.isUserCode(dataOwnCode)) { + return getUserDownloadPath(); + } + return getRepoDownloadPath(); } } 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 8f9a915..8cd1aaf 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 @@ -128,13 +128,13 @@ public class EdFileInfoController { @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { - return edFileInfoService.batchImport(fileChunkDTO); + return edFileInfoService.batchImport(fileChunkDTO, DataOwnEnum.SYS_FILE.code); } @UserOperation(value = "批量上传数据库") @RequestMapping(value = "/batchImport", method = RequestMethod.GET) public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO) { - return edFileInfoService.checkChunkExist(fileChunkDTO); + return edFileInfoService.checkChunkExist(fileChunkDTO, DataOwnEnum.SYS_FILE.code); } @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java index 642b000..0be085e 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoEdFileInfoController.java @@ -39,21 +39,21 @@ public class RepoEdFileInfoController { @UserOperation(value = "创建文件夹", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequestMapping("createFolder") public ElectromagneticResult createFolder(@RequestBody CreateFolderDTO createFolderDTO) { - return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.createFolder(createFolderDTO, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "作废", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DELETE) @RequestMapping("delete") public ElectromagneticResult delete(@RequestParam String id) { - return edFileInfoService.delete(id, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.delete(id, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "查询文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequiredPermission(value = FilePermission.VIEW) @RequestMapping("info") public ElectromagneticResult info(@RequestBody FileInfoQueryDTO fileInfoQueryDTO) { - return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.queryEdFileInfo(fileInfoQueryDTO, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "上传文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -62,21 +62,21 @@ public class RepoEdFileInfoController { public ElectromagneticResult upload(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file, @RequestParam("strategy") Integer strategy) { - return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.upload(parentId, file, strategy, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "下载文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DOWNLOAD) @RequestMapping("download") public ResponseEntity download(@RequestParam String id, HttpServletResponse response) { - return edFileInfoService.download(id, response, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.download(id, response, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequiredPermission(value = FilePermission.EDIT) @RequestMapping("updateFileInfo") public ElectromagneticResult updateFileInfo(@RequestBody UpdateFileInfoDTO updateFileInfoDTO) { - return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.updateFileInfo(updateFileInfoDTO, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "移动文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -85,7 +85,7 @@ public class RepoEdFileInfoController { public ElectromagneticResult moveFile(@RequestParam("id") String id, @RequestParam("targetFolderId") String targetFolderId, @RequestParam("strategy") Integer strategy) { - return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.moveFile(id, targetFolderId, strategy, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "复制文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -94,7 +94,7 @@ public class RepoEdFileInfoController { public ElectromagneticResult copyFile(@RequestParam("id") String id, @RequestParam("targetFolderId") String targetFolderId, @RequestParam("strategy") Integer strategy) { - return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.copyFile(id, targetFolderId, strategy, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "查看文件历史版本信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -114,7 +114,7 @@ public class RepoEdFileInfoController { @UserOperation(value = "导出数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequestMapping("batchExport") public ResponseEntity batchExport(@RequestParam String fileIds, HttpServletResponse response) throws IOException { - return edFileInfoService.batchExport(fileIds, response, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.batchExport(fileIds, response, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -128,19 +128,19 @@ public class RepoEdFileInfoController { @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { - return edFileInfoService.batchImport(fileChunkDTO); + return edFileInfoService.batchImport(fileChunkDTO, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "批量上传数据库") @RequestMapping(value = "/batchImport", method = RequestMethod.GET) public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO) { - return edFileInfoService.checkChunkExist(fileChunkDTO); + return edFileInfoService.checkChunkExist(fileChunkDTO, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "查询发布管理", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequestMapping(value = "/uploadRecord", method = RequestMethod.GET) public ElectromagneticResult uploadRecord(@RequestParam int pageNum, @RequestParam int pageSize) { - return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.uploadRecord(pageNum, pageSize, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "查询文件详细信息", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @@ -154,14 +154,14 @@ public class RepoEdFileInfoController { @RequiredPermission(value = FilePermission.VIEW) @RequestMapping(value = "/queryChildFolder", method = RequestMethod.GET) public ElectromagneticResult queryChildFolder(@RequestParam String parentId) { - return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.queryChildFolder(parentId, DataOwnEnum.REPO_FILE.code); } @UserOperation(value = "预览文件", modelName = UserOperationModuleEnum.REPO_PRJ_DATABASE) @RequiredPermission(value = FilePermission.DOWNLOAD) @RequestMapping(value = "preview", method = RequestMethod.GET) public ResponseEntity preview(@RequestParam String id, HttpServletResponse response) { - return edFileInfoService.preview(id, response, DataOwnEnum.SYS_FILE.code); + return edFileInfoService.preview(id, response, DataOwnEnum.REPO_FILE.code); } /** diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java index 2e0a2f3..60c1795 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/UserEdFileInfoController.java @@ -86,13 +86,13 @@ public class UserEdFileInfoController { @UserOperation(value = "批量上传数据库", modelName = UserOperationModuleEnum.USER_PRJ) @RequestMapping(value = "/batchImport", method = RequestMethod.POST) public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO) { - return edFileInfoService.batchImport(fileChunkDTO); + return edFileInfoService.batchImport(fileChunkDTO, DataOwnEnum.USER_FILE.code); } @UserOperation(value = "批量上传数据库") @RequestMapping(value = "/batchImport", method = RequestMethod.GET) public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO) { - return edFileInfoService.checkChunkExist(fileChunkDTO); + return edFileInfoService.checkChunkExist(fileChunkDTO, DataOwnEnum.USER_FILE.code); } @UserOperation(value = "更新文件信息", modelName = UserOperationModuleEnum.USER_PRJ) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java index ab539d6..c8d24ab 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdFileInfoService.java @@ -79,7 +79,7 @@ public interface EdFileInfoService { * @param fileChunkDTO * @return */ - ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO); + ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO, int dataOwnCode); /** * 批量导入 @@ -87,7 +87,7 @@ public interface EdFileInfoService { * @param fileChunkDTO * @return */ - ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO); + ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO, int dataOwnCode); /** * 合并分片 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 e37a69f..602d160 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 @@ -60,10 +60,12 @@ public class CommonService { @PostConstruct public void init() { - PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getPrjDir()); - PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getPrjDir()); - PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserDataPath()); - PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserDataPath()); + PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getSysPrjPath()); + PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getSysPrjPath()); + PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserPrjPath()); + PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserPrjPath()); + PATH_MAP.put(DataOwnEnum.REPO_FILE.code, elePropertyConfig.getRepoPrjPath()); + PATH_MAP.put(DataOwnEnum.REPO_PRJ.code, elePropertyConfig.getRepoPrjPath()); } private static String createTree(List edFileInfos, Object object) { 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 05c16c0..c4315ff 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 @@ -376,9 +376,9 @@ public class EdFileInfoServiceImpl extends ServiceImpl checkChunkExist(FileChunkDTO fileChunkDTO) { + public ElectromagneticResult checkChunkExist(FileChunkDTO fileChunkDTO, int dataOwnCode) { String currentUserId = UserThreadLocal.getUserId(); - String userUploadFolder = elePropertyConfig.getUploadDataDir() + File.separator + currentUserId; + String userUploadFolder = elePropertyConfig.getUploadDataDir(dataOwnCode) + File.separator + currentUserId; String identifier = fileChunkDTO.getIdentifier(); List uploadedChunks = getUploadedChunks(identifier, userUploadFolder); return ElectromagneticResultUtil.success(new FileChunkResultDTO(false, new HashSet<>(uploadedChunks))); @@ -404,11 +404,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl batchImport(FileChunkDTO fileChunkDTO) { + public ElectromagneticResult batchImport(FileChunkDTO fileChunkDTO, int dataOwnCode) { String currentUserId = UserThreadLocal.getUserId(); String identifier = fileChunkDTO.getIdentifier(); // 首先检查该分片有没被上传,如果有则禁止上传 - String destPath = elePropertyConfig.getUploadDataDir() + File.separator + currentUserId + File.separator + identifier + File.separator + fileChunkDTO.getChunkNumber() + UPLOAD_FILE_CHUNK_SUFFIX; + String destPath = elePropertyConfig.getUploadDataDir(dataOwnCode) + File.separator + currentUserId + File.separator + identifier + File.separator + fileChunkDTO.getChunkNumber() + UPLOAD_FILE_CHUNK_SUFFIX; boolean exist = FileUtil.exist(destPath); if (exist) { return ElectromagneticResultUtil.fail("-1", "文件已经存在,请勿重复上传"); @@ -438,7 +438,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl mergeChunks(String identifier, String fileName, Integer totalChunks, int dataOwnCode) { String currentUserId = UserThreadLocal.getUserId(); - String destColibPath = doSysFileMerge(identifier, fileName, totalChunks); + String destColibPath = doSysFileMerge(identifier, fileName, totalChunks, dataOwnCode); String mainName = FileUtil.mainName(destColibPath); String parentDir = FileUtil.getParent(destColibPath, 1); String zipDirPath = parentDir + File.separator + mainName + ".zip"; @@ -454,7 +454,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl batchExport(String dataIdArr, HttpServletResponse response, int dataOwnCode) throws IOException { - String userDownloadDataDir = elePropertyConfig.getDownloadDataDir() + File.separator + UserThreadLocal.getUserId(); + String userDownloadDataDir = elePropertyConfig.getDownloadDataDir(dataOwnCode) + File.separator + UserThreadLocal.getUserId(); String[] ids = dataIdArr.split(","); if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { Map map = permissionService.filterExportIds(ids); @@ -676,7 +676,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl prjFolders = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .likeRight(EdFileInfo::getFilePath, prjId + MYSQL_FILE_PATH_SPLIT) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) - .eq(EdFileInfo::getDataOwn, dataOwnCode == DataOwnEnum.SYS_FILE.code ? DataOwnEnum.SYS_PRJ.code : DataOwnEnum.USER_PRJ.code) + .eq(EdFileInfo::getDataOwn, DataOwnEnum.getPrjCodeByFileCode(dataOwnCode)) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code)); EdFileInfo prjFileInfo = this.baseMapper.selectById(prjId); Map prjFoldersMap = prjFolders.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); @@ -693,7 +693,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult folderResort(List folderResortDTOList) { - Date now = new Date(); - String currentUserId = UserThreadLocal.getUserId(); try { for (FolderResortDTO folderResortDTO : folderResortDTOList) { LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(EdFileInfo.class) @@ -387,7 +385,6 @@ public class EdPrjServiceImpl extends ServiceImpl String newFolderId = String.valueOf(maxFolderId + 1); String nowTimeStr = EleCommonUtil.getNowTimeStr(); String fileCode = commonService.createFileCode(targetParentFile.getId(), EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr); - Date now = new Date(); targetFile.setId(newFolderId) .setFileId(newFolderId) .setFileName(sourceFile.getFileName()) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index f319296..83d3802 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -193,7 +193,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { // 移动到tmp目录,七天后删除 for (String fileSysPath : fileSysPaths) { - fileSystemService.moveFile(fileSysPath, elePropertyConfig.getTmpDir() + File.separator + new File(fileSysPath).getName()); + fileSystemService.moveFile(fileSysPath, elePropertyConfig.getEleTmpPath() + File.separator + new File(fileSysPath).getName()); } // 更新MySQL数据库 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index f536337..bf1c34f 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -133,7 +133,7 @@ public class BackupTask { public void deleteTmpFile() { DateTime backDaysTime = DateUtil.offsetDay(new Date(), -elePropertyConfig.getTmpFileStoreDays()); FileFilter filter = file -> file.lastModified() < backDaysTime.getTime(); - List files = FileUtil.loopFiles(elePropertyConfig.getTmpDir(), filter); + List files = FileUtil.loopFiles(elePropertyConfig.getEleTmpPath(), filter); for (File file : files) { fileSystemService.deleteFile(file.getAbsolutePath()); UserAccessLog userAccessLog = new UserAccessLog() diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index 0f2a33f..be0fe58 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -13,24 +13,22 @@ spring.servlet.multipart.max-request-size=500MB pagehelper.helperDialect=mysql pagehelper.reasonable=false server.port=12396 -#windows文件存储目录,用于测试 -data.windows.path=D:/tmp/szsd/data/eleData/dev/project/ -data.upload.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/upload/ -data.download.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/download/ -data.windows.tmp.path=D:/tmp/szsd/data/eleData/dev/tmp -data.windows.user.path=D:/tmp/szsd/data/eleData/dev/user_project/ -data.upload.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/user_upload/ -data.download.windows.user.tmp.path=D:/tmp/szsd/data/eleData/dev/usr_download/ -data.windows.usere.tmp.path=D:/tmp/szsd/data/eleData/dev/user_tmp -data.linux.path=/szsd/data/eleData/dev/project/ -data.upload.linux.tmp.path=/szsd/data/eleData/dev/upload/ -data.download.linux.tmp.path=/szsd/data/eleData/dev/download/ -data.linux.tmp.path=/szsd/data/eleData/dev/tmp + +winPrefix: D:/tmp +data.ele.tmp.path=/szsd/data/eleData/dev/tmp +# sys path +data.sys.prj.path=/szsd/data/eleData/dev/sys_project/ +data.sys.upload.path=/szsd/data/eleData/dev/sys_upload/ +data.sys.download.path=/szsd/data/eleData/dev/sys_download/ # user path -data.linux.user.path=/szsd/data/eleData/dev/user_project/ -data.upload.linux.user.tmp.path=/szsd/data/eleData/dev/user_upload/ -data.download.linux.user.tmp.path=/szsd/data/eleData/dev/usr_download/ -data.linux.user.tmp.path=/szsd/data/eleData/dev/user_tmp +data.user.prj.path=/szsd/data/eleData/dev/user_project/ +data.user.upload.path=/szsd/data/eleData/dev/user_upload/ +data.user.download.path=/szsd/data/eleData/dev/user_download/ +# repo path +data.repo.prj.path=/szsd/data/eleData/dev/repo_project/ +data.repo.upload.path=/szsd/data/eleData/dev/repo_upload/ +data.repo.download.path=/szsd/data/eleData/dev/repo_download/ + prj.folder.max.length=6 spring.jackson.time-zone=GMT+8 tmp.file.store.days=7 diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java index cfeae44..c20afc3 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/DataOwnEnum.java @@ -2,6 +2,9 @@ package com.electromagnetic.industry.software.common.enums; import lombok.AllArgsConstructor; +import java.util.HashMap; +import java.util.Map; + @AllArgsConstructor public enum DataOwnEnum { @@ -24,4 +27,27 @@ public enum DataOwnEnum { return code == SYS_FILE.code || code == USER_FILE.code || code == REPO_FILE.code; } + private static final Map FILE_PRJ_MAP = new HashMap<>(); + + static { + FILE_PRJ_MAP.put(DataOwnEnum.SYS_FILE.code, DataOwnEnum.SYS_PRJ.code); + FILE_PRJ_MAP.put(DataOwnEnum.USER_FILE.code, DataOwnEnum.USER_PRJ.code); + FILE_PRJ_MAP.put(DataOwnEnum.REPO_FILE.code, DataOwnEnum.REPO_PRJ.code); + } + + public static int getPrjCodeByFileCode(int fileCode) { + return FILE_PRJ_MAP.get(fileCode); + } + + public static boolean isSysCode(int code) { + return code == SYS_FILE.code || code == SYS_PRJ.code; + } + + public static boolean isUserCode(int code) { + return code == USER_FILE.code || code == USER_PRJ.code; + } + + public static boolean isRepoCode(int code) { + return code == REPO_FILE.code || code == REPO_PRJ.code; + } } \ No newline at end of file From 1df178b74df76a1566a001b90d151bbd63dc3951 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 7 Mar 2025 17:51:14 +0800 Subject: [PATCH 10/29] refactory properties --- .../src/main/resources/application.properties | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index be0fe58..8be42af 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -1,4 +1,4 @@ -#required +# spring framework spring.application.name=electromagnetic-data spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://139.196.179.195:3306/em_data_dev?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true @@ -6,12 +6,17 @@ spring.datasource.username=em_user_dev spring.datasource.password=Szsd#2O25$dev spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource -mybatis-plus.mapper-locations=classpath:sqlmapper/*.xml -mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +spring.jackson.time-zone=GMT+8 spring.servlet.multipart.max-file-size=500MB spring.servlet.multipart.max-request-size=500MB + +# mybatis +mybatis-plus.mapper-locations=classpath:sqlmapper/*.xml +mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl pagehelper.helperDialect=mysql pagehelper.reasonable=false + +# app server.port=12396 winPrefix: D:/tmp @@ -30,7 +35,8 @@ data.repo.upload.path=/szsd/data/eleData/dev/repo_upload/ data.repo.download.path=/szsd/data/eleData/dev/repo_download/ prj.folder.max.length=6 -spring.jackson.time-zone=GMT+8 + +# backup tmp.file.store.days=7 backup.remote.host=127.0.0.1 backup.remote.port=1111 \ No newline at end of file From efb061c5ad73d6dbb75084ea5199dd8166a91be7 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 10 Mar 2025 15:55:41 +0800 Subject: [PATCH 11/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=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 --- .../software/manage/service/serviceimpl/CommonService.java | 4 +++- .../manage/service/serviceimpl/EdFileInfoServiceImpl.java | 7 +++++-- .../service/serviceimpl/UserAccessLogServiceImpl.java | 4 ++++ 3 files changed, 12 insertions(+), 3 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 602d160..ca19b3d 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 @@ -192,8 +192,10 @@ public class CommonService { if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code); queryWrapper.in(EdFileInfo::getId, accessibleIds); - } else { + } else if(dataOwnCode == DataOwnEnum.USER_FILE.code){ queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.USER_PRJ.code); + } else { + queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code); } return edFileInfoMapper.selectList(queryWrapper); } 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 c4315ff..42d6006 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 @@ -215,8 +215,11 @@ public class EdFileInfoServiceImpl extends ServiceImpl strings = map.getOrDefault(querySource, new ArrayList<>()); List res = new ArrayList<>(); strings.forEach(e -> { - FileProjectVO fileProjectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); - res.add(fileProjectVO); + List list = JSONUtil.toList(e, FileProjectVO.class); + if (CollUtil.isNotEmpty(list)) { + FileProjectVO fileProjectVO = list.get(0); + res.add(fileProjectVO); + } }); res.sort(Comparator.comparing(FileProjectVO::getSort)); UserThreadLocal.setSuccessInfo("", "", "查询项目层级结构成功"); 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 edb9105..79c87ef 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.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -69,6 +70,9 @@ public class UserAccessLogServiceImpl extends ServiceImpl res) { List userIds = res.stream().map(AccessLogQueryVO::getUserId).collect(Collectors.toList()); + if (CollUtil.isEmpty(userIds)) { + return; + } 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)); From 830b0b484f8a918cb376f944a45c6fb7a936bbea Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 12 Mar 2025 09:44:10 +0800 Subject: [PATCH 12/29] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/pojo/req/AccessLogQueryDTO.java | 2 +- .../serviceimpl/UserAccessLogServiceImpl.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) 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 c900fb4..deec5d7 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,6 +11,6 @@ public class AccessLogQueryDTO { private int pageSize; - private String keyword; + 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 79c87ef..474f5ff 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 @@ -46,18 +46,18 @@ public class UserAccessLogServiceImpl extends ServiceImpl qr.like(UserAccessLog::getAction, pars.getKeyword()) + if (StrUtil.isNotEmpty(pars.getKeyWord())) { + queryWrapper.and(qr -> qr.like(UserAccessLog::getAction, pars.getKeyWord()) .or() - .like(UserAccessLog::getRequestUrl, pars.getKeyword()) + .like(UserAccessLog::getRequestUrl, pars.getKeyWord()) .or() - .like(UserAccessLog::getRequestIp, pars.getKeyword()) + .like(UserAccessLog::getRequestIp, pars.getKeyWord()) .or() - .like(UserAccessLog::getRemoteAddr, pars.getKeyword()) + .like(UserAccessLog::getRemoteAddr, pars.getKeyWord()) .or() - .like(UserAccessLog::getOperationMsg, pars.getKeyword()) + .like(UserAccessLog::getOperationMsg, pars.getKeyWord()) .or() - .like(UserAccessLog::getOperationModule, pars.getKeyword())); + .like(UserAccessLog::getOperationModule, pars.getKeyWord())); } Page logs = this.baseMapper.selectPage(new Page<>(pars.getPageNum(), pars.getPageSize()), queryWrapper); From 4be8e338ddfdcc67e9b4c15871310796812a2276 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 12 Mar 2025 10:26:39 +0800 Subject: [PATCH 13/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/service/serviceimpl/EdPrjServiceImpl.java | 1 + .../manage/service/serviceimpl/FileRecycleServiceImpl.java | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index 48edc81..c3b1543 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -86,6 +86,7 @@ public class EdPrjServiceImpl extends ServiceImpl EdFileInfo fileInfo = new EdFileInfo(); String nowTimeStr = EleCommonUtil.getNowTimeStr(); fileInfo.setId(newPrjId) + .setFileType("文件夹") .setFileId(newPrjId) .setFileName(prjName) .setFileVersion(FILE_START_VERSION) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 83d3802..86129ed 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -216,8 +216,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { .eq(EdFileInfo::getFileId, fileId) .last("limit 1")); EdFileInfo edFileInfo = edFileInfos.get(0); - edFileInfo.setEffectFlag(EffectFlagEnum.EFFECT.code); - this.edFileInfoMapper.update(edFileInfo, null); + this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code).eq(EdFileInfo::getId, edFileInfo.getId())); UserThreadLocal.setSuccessInfo(edFileInfo.getParentId(), edFileInfo.getId(), "还原文件 {} 成功,文件id为 {}", edFileInfo.getFileName() + "." + edFileInfo.getFileType(), fileId); return ElectromagneticResultUtil.success("还原文件成功"); } From ab8786be7fc9c632bad0e6261afb0382870d377f Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 12 Mar 2025 11:47:19 +0800 Subject: [PATCH 14/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/pojo/models/EdFileInfo.java | 2 +- .../service/serviceimpl/CommonService.java | 6 +++--- .../serviceimpl/EdFileInfoServiceImpl.java | 16 ++++++++++------ .../service/serviceimpl/EdPrjServiceImpl.java | 4 ++-- .../serviceimpl/FileRecycleServiceImpl.java | 13 ++++++++----- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java index 3b4b931..fe3a740 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/pojo/models/EdFileInfo.java @@ -113,7 +113,7 @@ public class EdFileInfo extends BaseModel { /** * 数据的归属:0-》上传的文件或者新建的文件夹 1-》系统管理员创建的层级 2-》用户自定义的层级 */ - @TableField(value = "prj_dir") + @TableField(value = "data_own") private Integer dataOwn; /** 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 ca19b3d..7958b92 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 @@ -183,16 +183,16 @@ public class CommonService { return parentId + fileFormat.getSuffixNo() + version + timeStr; } - public List selectAllAdminFolder(String id, List accessibleIds, int dataOwnCode) { + public List selectAllPrjFolder(String id, List accessibleIds, int dataOwnCode) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .likeRight(EdFileInfo::getFilePath, id); - if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { + if (dataOwnCode == DataOwnEnum.SYS_FILE.code || dataOwnCode == DataOwnEnum.SYS_PRJ.code) { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code); queryWrapper.in(EdFileInfo::getId, accessibleIds); - } else if(dataOwnCode == DataOwnEnum.USER_FILE.code){ + } else if (dataOwnCode == DataOwnEnum.USER_FILE.code || dataOwnCode == DataOwnEnum.USER_PRJ.code) { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.USER_PRJ.code); } else { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code); 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 42d6006..fa41239 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 @@ -91,10 +91,12 @@ public class EdFileInfoServiceImpl extends ServiceImpl queryEdFileInfo(FileInfoQueryDTO pars, int dataOwnCode) { - String parentId = pars.getParentId(); - List accessibleTree = permissionService.getAccessibleTree(); - if ((dataOwnCode != DataOwnEnum.USER_FILE.code) && (!accessibleTree.contains(parentId) && parentId.length() == PRJ_ID_LENGTH)) { - throw new PermissionDeniedException(); + if (DataOwnEnum.isSysCode(dataOwnCode)) { + String parentId = pars.getParentId(); + List accessibleTree = permissionService.getAccessibleTree(); + if ((dataOwnCode != DataOwnEnum.USER_FILE.code) && (!accessibleTree.contains(parentId) && parentId.length() == PRJ_ID_LENGTH)) { + throw new PermissionDeniedException(); + } } LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) @@ -187,7 +189,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl tree(int querySource) { /** - * 都是从用户界面处进来,一个是从数据库的用户界面(SYS_DB),一个是从用户自己的工程界面处(USER_DB)。 + * 都是从用户界面处进来,一个是从数据库的用户界面(SYS_DB),一个是从用户自己的工程界面处(USER_DB),一个是从库工程界面进入(REPO_DB)。 */ List accessibleIds; @@ -768,8 +770,10 @@ public class EdFileInfoServiceImpl extends ServiceImpl try { // 把source工程的层级结构copy到目标工程 // 查找source的全部目录 - List sourceEdFileInfos = commonService.selectAllAdminFolder(sourceId, null, dataOwnCode); + List sourceEdFileInfos = commonService.selectAllPrjFolder(sourceId, null, dataOwnCode); List needSavePaths = new ArrayList<>(); // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。 for (int i = 1; i <= prjFolderMaxLength; ++i) { - List targetEdFileInfos = commonService.selectAllAdminFolder(targetId, null, dataOwnCode); + List targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); // 先查找source第i层下有那些子集 final int count = i; // 取source当前层 diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 86129ed..69ad09e 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -9,10 +9,7 @@ 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.electromagnetic.industry.software.common.enums.AdminTypeEnum; -import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; -import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; -import com.electromagnetic.industry.software.common.enums.FileBackupSource; +import com.electromagnetic.industry.software.common.enums.*; import com.electromagnetic.industry.software.common.exception.BizException; import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; @@ -103,9 +100,10 @@ public class FileRecycleServiceImpl implements FileRecycleService { .or() .like(EdFileInfo::getFileContent, pars.getKeyword())); } - + // TODO 要考虑数据是个人数据还是库数据,如果是管理员,则展示全部数据,其他用户则展示有权限的系统数据+用户个人数据+库数据 if (!UserThreadLocal.getAdminType().equals(AdminTypeEnum.SYSTEM.getValue())) { List accessibleTree = permissionService.getAccessibleTree(); + queryWrapper.and(qr -> qr.eq(EdFileInfo::getCreatedBy, UserThreadLocal.getUserId()).eq(EdFileInfo::getDataOwn, DataOwnEnum.USER_FILE.code)); if (CollUtil.isNotEmpty(accessibleTree)) { for (String permission : accessibleTree) { queryWrapper.or().likeRight(EdFileInfo::getFileCode, permission); @@ -222,6 +220,11 @@ public class FileRecycleServiceImpl implements FileRecycleService { } private void resetRes(List records) { + + if (CollUtil.isEmpty(records)) { + return; + } + List userIds = records.stream().map(FileRecycleQueryVO::getUpdatedBy).collect(Collectors.toList()); Map idNameMap = userMapper.selectList(Wrappers.lambdaQuery().in(User::getId, userIds)).stream().collect(Collectors.toMap(User::getUserId, User::getUserName)); records.forEach(e -> { From 10ca9cd40376984847b3f9963e611f29147db7c3 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 12 Mar 2025 13:49:19 +0800 Subject: [PATCH 15/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/service/serviceimpl/CommonService.java | 4 +++- 1 file changed, 3 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 7958b92..4739263 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 @@ -178,7 +178,9 @@ public class CommonService { if (fileType.equals(EleDataTypeEnum.FOLDER.desc) || StrUtil.isEmpty(fileType)) { return parentId + "00" + version + timeStr; } - FileFormat fileFormat = fileFormatService.getBaseMapper().selectOne(Wrappers.lambdaQuery(FileFormat.class).eq(FileFormat::getSuffixName, fileType)); + FileFormat fileFormat = fileFormatService.getBaseMapper().selectOne(Wrappers.lambdaQuery(FileFormat.class) + .eq(FileFormat::getEffectFlag, EffectFlagEnum.EFFECT.code) + .eq(FileFormat::getSuffixName, fileType)); Assert.notNull(fileFormat, "不支持当前格式 {}", fileType); return parentId + fileFormat.getSuffixNo() + version + timeStr; } From 8213bbf18c518aa5720d0edd774db35d989c5d3d Mon Sep 17 00:00:00 2001 From: chenxudong Date: Wed, 12 Mar 2025 16:25:06 +0800 Subject: [PATCH 16/29] =?UTF-8?q?=E5=BC=80=E5=90=AF=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/controller/FileRecycleController.java | 5 +++++ .../manage/service/serviceimpl/FileRecycleServiceImpl.java | 1 + .../industry/software/manage/tasks/BackupTask.java | 6 ++++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java index 8c043ea..20aeced 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileRecycleController.java @@ -1,8 +1,11 @@ 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.RecycleFileQueryDTO; import com.electromagnetic.industry.software.manage.service.FileRecycleService; import org.springframework.web.bind.annotation.RequestBody; @@ -28,12 +31,14 @@ public class FileRecycleController { @RequestMapping("remove") @UserOperation(value = "彻底清除文件", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult remove(@RequestParam String fileId) { + Assert.isTrue(UserThreadLocal.getAdminType().equals(AdminTypeEnum.SYSTEM.getValue()), "当前用户没有删除文件权限"); return fileRecycleService.remove(fileId); } @RequestMapping("recover") @UserOperation(value = "文件恢复", modelName = UserOperationModuleEnum.SYS_PRJ_DATABASE) public ElectromagneticResult recover(@RequestParam String fileId) { + Assert.isTrue(UserThreadLocal.getAdminType().equals(AdminTypeEnum.SYSTEM.getValue()), "当前用户没有文件恢复权限"); return fileRecycleService.recover(fileId); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 69ad09e..c8c1a66 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -214,6 +214,7 @@ public class FileRecycleServiceImpl implements FileRecycleService { .eq(EdFileInfo::getFileId, fileId) .last("limit 1")); EdFileInfo edFileInfo = edFileInfos.get(0); + this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getAllDeleted, false).eq(EdFileInfo::getFileId, fileId)); this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code).eq(EdFileInfo::getId, edFileInfo.getId())); UserThreadLocal.setSuccessInfo(edFileInfo.getParentId(), edFileInfo.getId(), "还原文件 {} 成功,文件id为 {}", edFileInfo.getFileName() + "." + edFileInfo.getFileType(), fileId); return ElectromagneticResultUtil.success("还原文件成功"); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index bf1c34f..ab6a5ff 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -24,6 +24,7 @@ import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog; import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog; import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.serviceimpl.CommonService; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; @@ -56,7 +57,7 @@ public class BackupTask { return FileUtil.loopFiles(dir, filter); } - // @Scheduled(cron = "0 0 1 * * ?") + @Scheduled(cron = "0 0 1 * * ?") public void backup() { // 首先查看备份失败的文件 @@ -111,6 +112,7 @@ public class BackupTask { .setFileCreateTime(edFileInfo.getCreatedTime()) .setSource(FileBackupSource.SYS_BACKUP.code); fileBackupLogMapper.insert(backupLog); + } } @@ -129,7 +131,7 @@ public class BackupTask { return fileBackupLogs.stream().map(FileBackupLog::getFileId).collect(Collectors.toList()); } - // @Scheduled(cron = "0 0 3 * * ?") + @Scheduled(cron = "0 0 3 * * ?") public void deleteTmpFile() { DateTime backDaysTime = DateUtil.offsetDay(new Date(), -elePropertyConfig.getTmpFileStoreDays()); FileFilter filter = file -> file.lastModified() < backDaysTime.getTime(); From 1d37a302bee21729957588a0c82623bf16e25c15 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 13 Mar 2025 09:28:54 +0800 Subject: [PATCH 17/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../software/manage/config/EdMetaObjectHandler.java | 4 ++-- .../manage/controller/EdFileRelationController.java | 2 +- .../service/serviceimpl/EdFileRelationServiceImpl.java | 2 +- .../service/serviceimpl/FileRecycleServiceImpl.java | 2 +- .../industry/software/manage/tasks/BackupTask.java | 9 ++++++--- .../industry/software/common/util/UserThreadLocal.java | 2 -- 6 files changed, 11 insertions(+), 10 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/EdMetaObjectHandler.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/EdMetaObjectHandler.java index a3952fd..032c859 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/EdMetaObjectHandler.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/EdMetaObjectHandler.java @@ -29,7 +29,7 @@ public class EdMetaObjectHandler implements MetaObjectHandler { this.strictInsertFill(metaObject, "updatedAt", Date.class, new Date()); } if (metaObject.hasGetter("createdBy")) { - this.setFieldValByName("createdBy", Optional.of(UserThreadLocal.getUserId()).orElse(""), metaObject); + this.setFieldValByName("createdBy", Optional.ofNullable(UserThreadLocal.getUserId()).orElse(""), metaObject); } } @@ -45,7 +45,7 @@ public class EdMetaObjectHandler implements MetaObjectHandler { this.setFieldValByName("updatedTime", new Date(), metaObject); } if (metaObject.hasGetter("updatedBy")) { - this.setFieldValByName("updatedBy", Optional.of(UserThreadLocal.getUserId()).orElse(""), metaObject); + this.setFieldValByName("updatedBy", Optional.ofNullable(UserThreadLocal.getUserId()).orElse(""), metaObject); } } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java index 48fb8af..a7b9aa0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdFileRelationController.java @@ -46,7 +46,7 @@ public class EdFileRelationController { public ElectromagneticResult updateRelation(@RequestBody UpdateRelationDTO updateRelation) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(EdFileRelation::getId, updateRelation.getRelationId()).set(EdFileRelation::getRelationship, updateRelation.getRelationship()); - boolean isUpdated = edFileRelationService.update(wrapper); + boolean isUpdated = edFileRelationService.update(new EdFileRelation(), wrapper); if (isUpdated) { UserThreadLocal.setSuccessInfo("", updateRelation.getRelationId(), "更新了文件关系"); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java index 13b538b..d47de10 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdFileRelationServiceImpl.java @@ -161,7 +161,7 @@ public class EdFileRelationServiceImpl extends ServiceImpl fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.lambdaQuery().orderByDesc(FileBackupLog::getFileCreateTime).last("limit 1")); + List fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.lambdaQuery() + .eq(FileBackupLog::getSource, FileBackupSource.SYS_BACKUP.code) + .orderByDesc(FileBackupLog::getFileCreateTime) + .last("limit 1")); if (CollUtil.isNotEmpty(fileBackupLogs)) { return fileBackupLogs.get(0).getFileCreateTime(); } - return new Date(); + // 此处先写一个魔鬼字段值 + return DateUtil.parse("2000-1-1 01:00:00"); } public List getFailBackFile() { 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 68615a4..15e5de6 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 @@ -25,8 +25,6 @@ public class UserThreadLocal { } public static String getUserId() { - -// return "1876888149980930048"; return userThread.get().getUserId(); } From d58d78397911c39680959f1dda4a99c322fe389a Mon Sep 17 00:00:00 2001 From: chenxudong Date: Thu, 13 Mar 2025 17:24:02 +0800 Subject: [PATCH 18/29] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=96=87=E4=BB=B6=EF=BC=8C=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=96=87=E4=BB=B6=E7=9A=84=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backup/controller/FileController.java | 22 ++- .../software/backup/service/FileService.java | 8 +- .../backup/serviceimp/FileServiceImpl.java | 33 ++++- .../serviceimpl/FileRecycleServiceImpl.java | 130 ++++++++---------- .../serviceimpl/UserAccessLogServiceImpl.java | 2 + .../software/manage/tasks/BackupTask.java | 7 +- .../src/main/resources/application.properties | 4 +- 7 files changed, 126 insertions(+), 80 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 ec800bf..2cf19dd 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 @@ -10,6 +10,8 @@ import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; import lombok.extern.slf4j.Slf4j; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -29,10 +31,10 @@ public class FileController { private BackupPro backupPro; @RequestMapping("/upload") - public ElectromagneticResult upload(@RequestParam("file") MultipartFile file) { + public ElectromagneticResult upload(@RequestParam("file") MultipartFile file, @RequestParam("id") String id) { BackupFileResLog backupFileResLog = BackupFileResLog.builder().backupStartTime(new Date()).fileName(file.getOriginalFilename()).backupSuccess(true).build(); try { - fileService.upload(file); + fileService.upload(file, id); } catch (Exception e) { String details = ExceptionUtil.stacktraceToString(e); backupFileResLog.setBackupSuccess(false); @@ -50,4 +52,20 @@ public class FileController { FileUtil.appendUtf8String(info.toString(), backupPro.getLogPath()); return ElectromagneticResultUtil.success(JSONUtil.toJsonStr(backupFileResLog, jsonConfig)); } + + @RequestMapping("/remove") + public ElectromagneticResult remove(@RequestParam("id") String id) { + try { + fileService.remove(id); + } catch (Exception e) { + log.error("删除文件失败, id-->{},原因-->{}",id, e.getMessage(), e); + ElectromagneticResultUtil.fail("-1", e.getMessage()); + } + return ElectromagneticResultUtil.success(true); + } + + @RequestMapping("/download") + public ResponseEntity download(@RequestParam("id") String id) throws Exception { + return fileService.download(id); + } } 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 0e41156..3df8dc8 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 @@ -1,11 +1,17 @@ package com.electromagnetic.industry.software.backup.service; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; +import java.util.Map; public interface FileService { - void upload(MultipartFile file) throws IOException; + void upload(MultipartFile file, String id) throws IOException; + void remove(String id); + + ResponseEntity download(String id) throws Exception; } 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 138556a..fa88689 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 @@ -3,6 +3,10 @@ package com.electromagnetic.industry.software.backup.serviceimp; import cn.hutool.core.io.FileUtil; import com.electromagnetic.industry.software.backup.pojo.BackupPro; import com.electromagnetic.industry.software.backup.service.FileService; +import org.springframework.core.io.FileSystemResource; +import org.springframework.core.io.InputStreamResource; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -17,12 +21,33 @@ public class FileServiceImpl implements FileService { private BackupPro backupPro; @Override - public void upload(MultipartFile file) throws IOException { - String saveFolder = backupPro.getSaveFolder(); - String fileName = file.getOriginalFilename(); - String destPath = saveFolder + File.separator + File.separator + fileName; + public void upload(MultipartFile file, String id) throws IOException { + String destPath = getFileSysPathById(id); if (!FileUtil.exist(destPath)) { FileUtil.writeFromStream(file.getInputStream(), destPath); } } + + @Override + public void remove(String id) { + String destPath = getFileSysPathById(id); + FileUtil.del(destPath); + } + + @Override + public ResponseEntity download(String id) throws Exception { + String destPath = getFileSysPathById(id); + FileSystemResource fileSystemResource = new FileSystemResource(destPath); + return ResponseEntity + .ok() + .contentLength(fileSystemResource.contentLength()) + .contentType(MediaType.parseMediaType("application/octet-stream")) + .body(new InputStreamResource(fileSystemResource.getInputStream())); + } + + private String getFileSysPathById(String id) { + String saveFolder = backupPro.getSaveFolder(); + return saveFolder + File.separator + id; + } + } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index ed744c5..53443db 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -2,27 +2,21 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.ObjUtil; 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.electromagnetic.industry.software.common.enums.*; -import com.electromagnetic.industry.software.common.exception.BizException; -import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.EleCommonUtil; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; -import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.mapper.FileBackupLogMapper; import com.electromagnetic.industry.software.manage.mapper.UserMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; -import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog; import com.electromagnetic.industry.software.manage.pojo.models.User; import com.electromagnetic.industry.software.manage.pojo.req.RecycleFileQueryDTO; import com.electromagnetic.industry.software.manage.pojo.resp.FileRecycleQueryVO; @@ -36,8 +30,6 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.io.File; -import java.util.ArrayList; -import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -75,7 +67,6 @@ public class FileRecycleServiceImpl implements FileRecycleService { .orderByAsc(ObjUtil.equals(pars.getCreatedTime(), 0), EdFileInfo::getCreatedTime) .orderByDesc(ObjUtil.equals(pars.getCreatedTime(), 1), EdFileInfo::getCreatedTime) .orderByDesc(ObjUtil.isAllEmpty(pars.getCreatedTime(), pars.getVersionSort(), pars.getFileSizeSort(), pars.getFileNameSort(), pars.getUpdatedTime(), pars.getFileTypeSort()), EdFileInfo::getCreatedTime) - .orderByDesc(ObjUtil.isAllEmpty(pars.getCreatedTime(), pars.getVersionSort(), pars.getFileSizeSort(), pars.getFileNameSort(), pars.getUpdatedTime(), pars.getFileTypeSort()), EdFileInfo::getCreatedTime) .orderByAsc(ObjUtil.equals(pars.getVersionSort(), 0), EdFileInfo::getFileVersion) .orderByDesc(ObjUtil.equals(pars.getVersionSort(), 1), EdFileInfo::getFileVersion) @@ -117,7 +108,6 @@ public class FileRecycleServiceImpl implements FileRecycleService { resetRes(records); UserThreadLocal.setSuccessInfo("", "", "查询所有删除文件成功"); return ElectromagneticResultUtil.success(new RespPageVO<>(total, records)); - } @Override @@ -128,71 +118,73 @@ public class FileRecycleServiceImpl implements FileRecycleService { List edFileInfos = this.edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getFileId, fileId)); - List fileSysPaths = new ArrayList<>(); +// List fileSysPaths = new ArrayList<>(); for (EdFileInfo edFileInfo : edFileInfos) { String fileSysPath = commonService.getFileSysPath(edFileInfo.getFilePath(), edFileInfo.getDataOwn()); - FileBackupLog fileBackupLog = fileBackupLogMapper.selectOne(Wrappers.lambdaQuery(FileBackupLog.class).eq(FileBackupLog::getFileId, edFileInfo.getId())); + // 移动到tmp目录,七天后删除 + fileSystemService.moveFile(fileSysPath, elePropertyConfig.getEleTmpPath() + File.separator + new File(fileSysPath).getName()); +// FileBackupLog fileBackupLog = fileBackupLogMapper.selectOne(Wrappers.lambdaQuery(FileBackupLog.class).eq(FileBackupLog::getFileId, edFileInfo.getId())); +// +// String saveFileName = edFileInfo.getFileName() + "." + edFileInfo.getFileType() + "." + edFileInfo.getFileCode(); - String saveFileName = edFileInfo.getFileName() + "." + edFileInfo.getFileType() + "." + edFileInfo.getFileCode(); - - // 表示从没有备份过该文件 - if (fileBackupLog == null) { - long startTime = System.currentTimeMillis(); - BackupFileResLog backup = backupTask.backup(fileSysPath); - long endTime = System.currentTimeMillis(); - - FileBackupLog backupLog = new FileBackupLog() - .setId(IdWorker.getSnowFlakeIdString()) - .setFileId(edFileInfo.getId()) - .setStartTime(startTime) - .setEndTime(endTime) - .setDuration(endTime - startTime) - .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) - .setCreateTime(new Date()) - .setFileName(saveFileName) - .setFileCode(commonService.getFileCode(fileSysPath)) - .setFileCreateTime(edFileInfo.getCreatedTime()) - .setSource(FileBackupSource.REMOVE.code); - - if (backup.getBackupSuccess()) { - backupLog.setBackupSuccess(true); - fileBackupLogMapper.insert(backupLog); - } else { - backupLog.setBackupSuccess(false); - backupLog.setFailInfoDetail(backup.getFailInfoDetail()); - fileBackupLogMapper.insert(backupLog); - throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); - } - - } else { - long startTime = System.currentTimeMillis(); - BackupFileResLog backup = backupTask.backup(fileSysPath); - long endTime = System.currentTimeMillis(); - fileBackupLog.setStartTime(startTime) - .setEndTime(endTime) - .setDuration(endTime - startTime) - .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) - .setCreateTime(new Date()) - .setFileCode(commonService.getFileCode(fileSysPath)) - .setFileCreateTime(edFileInfo.getCreatedTime()) - .setFileName(saveFileName); - if (backup.getBackupSuccess()) { - fileBackupLog.setBackupSuccess(true); - fileBackupLogMapper.update(fileBackupLog, null); - } else { - fileBackupLog.setBackupSuccess(false); - fileBackupLog.setFailInfoDetail(backup.getFailInfoDetail()); - fileBackupLogMapper.update(fileBackupLog, null); - throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); - } - } - fileSysPaths.add(fileSysPath); +// // 表示从没有备份过该文件 +// if (fileBackupLog == null) { +// long startTime = System.currentTimeMillis(); +// BackupFileResLog backup = backupTask.backup(fileSysPath, edFileInfo.getId()); +// long endTime = System.currentTimeMillis(); +// +// FileBackupLog backupLog = new FileBackupLog() +// .setId(IdWorker.getSnowFlakeIdString()) +// .setFileId(edFileInfo.getId()) +// .setStartTime(startTime) +// .setEndTime(endTime) +// .setDuration(endTime - startTime) +// .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) +// .setCreateTime(new Date()) +// .setFileName(saveFileName) +// .setFileCode(commonService.getFileCode(fileSysPath)) +// .setFileCreateTime(edFileInfo.getCreatedTime()) +// .setSource(FileBackupSource.REMOVE.code); +// +// if (backup.getBackupSuccess()) { +// backupLog.setBackupSuccess(true); +// fileBackupLogMapper.insert(backupLog); +// } else { +// backupLog.setBackupSuccess(false); +// backupLog.setFailInfoDetail(backup.getFailInfoDetail()); +// fileBackupLogMapper.insert(backupLog); +// throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); +// } +// +// } else { +// long startTime = System.currentTimeMillis(); +// BackupFileResLog backup = backupTask.backup(fileSysPath, edFileInfo.getId()); +// long endTime = System.currentTimeMillis(); +// fileBackupLog.setStartTime(startTime) +// .setEndTime(endTime) +// .setDuration(endTime - startTime) +// .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) +// .setCreateTime(new Date()) +// .setFileCode(commonService.getFileCode(fileSysPath)) +// .setFileCreateTime(edFileInfo.getCreatedTime()) +// .setFileName(saveFileName); +// if (backup.getBackupSuccess()) { +// fileBackupLog.setBackupSuccess(true); +// fileBackupLogMapper.update(fileBackupLog, null); +// } else { +// fileBackupLog.setBackupSuccess(false); +// fileBackupLog.setFailInfoDetail(backup.getFailInfoDetail()); +// fileBackupLogMapper.update(fileBackupLog, null); +// throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); +// } +// } +// fileSysPaths.add(fileSysPath); } // 移动到tmp目录,七天后删除 - for (String fileSysPath : fileSysPaths) { - fileSystemService.moveFile(fileSysPath, elePropertyConfig.getEleTmpPath() + File.separator + new File(fileSysPath).getName()); - } +// for (String fileSysPath : fileSysPaths) { +// +// } // 更新MySQL数据库 this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class) 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 474f5ff..7eba49c 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 @@ -44,6 +44,8 @@ public class UserAccessLogServiceImpl extends ServiceImpl queryWrapper = Wrappers.lambdaQuery(UserAccessLog.class); if (!adminQuery) { queryWrapper.eq(UserAccessLog::getDataId, pars.getDataId()); + } else { + queryWrapper.ne(UserAccessLog::getOperationModule, UserOperationModuleEnum.TMP.key); } if (StrUtil.isNotEmpty(pars.getKeyWord())) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index ff88f2a..05f4f21 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -68,7 +68,7 @@ public class BackupTask { .eq(EdFileInfo::getId, id)); String sysFilePath = commonService.getFileSysPath(fileInfo.getFilePath(), fileInfo.getDataOwn()); long startTime = System.currentTimeMillis(); - BackupFileResLog resLog = backup(sysFilePath); + BackupFileResLog resLog = backup(sysFilePath, id); long endTime = System.currentTimeMillis(); fileBackupLogMapper.update(null, Wrappers.lambdaUpdate() .eq(FileBackupLog::getFileId, id) @@ -95,7 +95,7 @@ public class BackupTask { } String fileSysPath = commonService.getFileSysPath(edFileInfo.getFilePath(), edFileInfo.getDataOwn()); long startTime = System.currentTimeMillis(); - BackupFileResLog resLog = backup(fileSysPath); + BackupFileResLog resLog = backup(fileSysPath, edFileInfo.getId()); long endTime = System.currentTimeMillis(); FileBackupLog backupLog = new FileBackupLog() .setId(IdWorker.getSnowFlakeIdString()) @@ -163,9 +163,10 @@ public class BackupTask { } } - public BackupFileResLog backup(String filePath) { + public BackupFileResLog backup(String filePath, String id) { Map map = new HashMap<>(); map.put("file", new File(filePath)); + map.put("id", id); String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); String res = HttpUtil.post(url, map); ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index 8be42af..30d33df 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -39,4 +39,6 @@ prj.folder.max.length=6 # backup tmp.file.store.days=7 backup.remote.host=127.0.0.1 -backup.remote.port=1111 \ No newline at end of file +backup.remote.port=1111 + +backup.mysql.path=/workspace/mysqlbak/test \ No newline at end of file From 2e4f7eb099f176ee99c6c3b7d7045c8c6fb364f6 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 14 Mar 2025 10:52:20 +0800 Subject: [PATCH 19/29] =?UTF-8?q?1.=E6=96=B0=E5=A2=9E=E5=A4=87=E4=BB=BDSQL?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD=E3=80=82=202.=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=95=B0=E6=8D=AE=E5=BA=93=E6=81=A2=E5=A4=8D=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backup/controller/FileController.java | 23 +++++ .../software/backup/service/FileService.java | 2 + .../backup/serviceimp/FileServiceImpl.java | 20 +++- .../manage/config/ElePropertyConfig.java | 4 + .../controller/FileBackupLogController.java | 9 ++ .../manage/service/FileBackLogService.java | 1 + .../serviceimpl/FileBackLogServiceImpl.java | 29 ++++++ .../serviceimpl/FileRecycleServiceImpl.java | 93 ++++--------------- .../software/manage/tasks/BackupHandler.java | 57 ++++++++++++ .../software/manage/tasks/BackupTask.java | 84 ++++++++++++----- .../src/main/resources/application.properties | 2 +- .../common/enums/FileBackupSource.java | 3 +- 12 files changed, 228 insertions(+), 99 deletions(-) create mode 100644 electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java 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 2cf19dd..506602a 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 @@ -68,4 +68,27 @@ public class FileController { public ResponseEntity download(@RequestParam("id") String id) throws Exception { return fileService.download(id); } + + @RequestMapping("/backupSql") + public ElectromagneticResult backupSql(@RequestParam("file") MultipartFile file) { + BackupFileResLog backupFileResLog = BackupFileResLog.builder().backupStartTime(new Date()).fileName(file.getOriginalFilename()).backupSuccess(true).build(); + try { + fileService.backupSql(file); + } catch (Exception e) { + String details = ExceptionUtil.stacktraceToString(e); + backupFileResLog.setBackupSuccess(false); + backupFileResLog.setFailInfoDetail(details); + log.error("备份sql文件失败,原因--->{}", e.getMessage(), e); + } + JSONConfig jsonConfig = JSONConfig.create(); + jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); + backupFileResLog.setBackupEndTime(new Date()); + StringBuffer info = new StringBuffer() + .append("\n") + .append("#") + .append("\n") + .append(JSONUtil.toJsonStr(backupFileResLog, jsonConfig)); + FileUtil.appendUtf8String(info.toString(), backupPro.getLogPath()); + return ElectromagneticResultUtil.success(JSONUtil.toJsonStr(backupFileResLog, jsonConfig)); + } } 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 3df8dc8..25425d9 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 @@ -14,4 +14,6 @@ public interface FileService { void remove(String id); ResponseEntity download(String id) throws Exception; + + void backupSql(MultipartFile file) throws Exception; } 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 fa88689..656dfb0 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 @@ -1,8 +1,11 @@ package com.electromagnetic.industry.software.backup.serviceimp; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.crypto.SecureUtil; import com.electromagnetic.industry.software.backup.pojo.BackupPro; import com.electromagnetic.industry.software.backup.service.FileService; +import com.electromagnetic.industry.software.common.util.EleCommonUtil; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.InputStreamResource; import org.springframework.http.MediaType; @@ -14,6 +17,8 @@ import javax.annotation.Resource; import java.io.File; import java.io.IOException; +import static com.electromagnetic.industry.software.common.cons.ElectromagneticConstants.FILE_SEC_PASSWD; + @Service public class FileServiceImpl implements FileService { @@ -45,9 +50,22 @@ public class FileServiceImpl implements FileService { .body(new InputStreamResource(fileSystemResource.getInputStream())); } + @Override + public void backupSql(MultipartFile file) throws IOException { + String destPath = backupPro.getSaveFolder() + File.separator + "sqls" + File.separator + file.getOriginalFilename(); + if (!FileUtil.exist(destPath)) { + FileUtil.writeFromStream(file.getInputStream(), destPath); + } + int index = destPath.lastIndexOf("."); + String zipPath = destPath.substring(0, index) + ".zip"; + ZipUtil.zip(destPath, zipPath); + EleCommonUtil.encryptFile(zipPath, SecureUtil.aes(FILE_SEC_PASSWD.getBytes())); + FileUtil.del(destPath); + } + private String getFileSysPathById(String id) { String saveFolder = backupPro.getSaveFolder(); - return saveFolder + File.separator + id; + return saveFolder + File.separator + "prj_files" + File.separator + id; } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 0627a6b..7b31970 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -54,6 +54,10 @@ public class ElePropertyConfig { @Value("${winPrefix}") private String winPrefix = ""; + @Getter + @Value("${backup.mysql.path}") + private String sqlDirs; + public String getEleTmpPath() { if (EleCommonUtil.isWinOs()) { return winPrefix + eleTmpPath; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java index 7d1aa28..144b844 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/FileBackupLogController.java @@ -3,7 +3,9 @@ package com.electromagnetic.industry.software.manage.controller; 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.util.ElectromagneticResultUtil; import com.electromagnetic.industry.software.manage.service.FileBackLogService; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -22,4 +24,11 @@ public class FileBackupLogController { public ElectromagneticResult list(@RequestParam int pageNum, @RequestParam int pageSize) { return fileBackLogService.query(pageNum, pageSize); } + + @GetMapping(value = "restore") + @UserOperation(value = "系统恢复", modelName = UserOperationModuleEnum.BACKUP_FILE) + public ElectromagneticResult restore() { + fileBackLogService.restore(); + return ElectromagneticResultUtil.success(true); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileBackLogService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileBackLogService.java index 0fde271..1d7ea7c 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileBackLogService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/FileBackLogService.java @@ -6,4 +6,5 @@ public interface FileBackLogService { ElectromagneticResult query(Integer pageNumber, Integer pageSize); + void restore(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileBackLogServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileBackLogServiceImpl.java index 819e4d3..fb86a5d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileBackLogServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileBackLogServiceImpl.java @@ -3,25 +3,39 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.StrUtil; 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.EleDataTypeEnum; import com.electromagnetic.industry.software.common.enums.FileBackupSource; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; +import com.electromagnetic.industry.software.common.util.UserThreadLocal; +import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; import com.electromagnetic.industry.software.manage.mapper.FileBackupLogMapper; +import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog; import com.electromagnetic.industry.software.manage.pojo.resp.FileBackLogVO; import com.electromagnetic.industry.software.manage.pojo.resp.RespPageVO; import com.electromagnetic.industry.software.manage.service.FileBackLogService; +import com.electromagnetic.industry.software.manage.tasks.BackupHandler; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Service public class FileBackLogServiceImpl extends ServiceImpl implements FileBackLogService { + @Resource + private EdFileInfoMapper edFileInfoMapper; + @Resource + private BackupHandler backupHandler; + @Resource + private CommonService commonService; @Override public ElectromagneticResult query(Integer pageNumber, Integer pageSize) { @@ -41,6 +55,21 @@ public class FileBackLogServiceImpl extends ServiceImpl(total, list)); } + + @Override + public void restore() { + List edFileInfos = edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) + .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) + .eq(EdFileInfo::getPermanentDeleted, false) + .eq(EdFileInfo::getDataType, EleDataTypeEnum.FILE.code)); + for (EdFileInfo edFileInfo : edFileInfos) { + byte[] bytes = backupHandler.downloadFile(edFileInfo.getId()); + String destPath = commonService.getFileSysPath(edFileInfo.getFilePath(), edFileInfo.getDataOwn()); + FileUtil.writeBytes(bytes, destPath); + } + UserThreadLocal.setSuccessInfo("", "", "数据库恢复成功"); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 53443db..6e564e5 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -2,12 +2,14 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjUtil; 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.electromagnetic.industry.software.common.enums.*; +import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.EleCommonUtil; import com.electromagnetic.industry.software.common.util.ElectromagneticResultUtil; @@ -24,7 +26,9 @@ import com.electromagnetic.industry.software.manage.pojo.resp.RespPageVO; import com.electromagnetic.industry.software.manage.service.FileRecycleService; import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.PermissionService; +import com.electromagnetic.industry.software.manage.tasks.BackupHandler; import com.electromagnetic.industry.software.manage.tasks.BackupTask; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,9 +36,11 @@ import javax.annotation.Resource; import java.io.File; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.stream.Collectors; @Service +@Slf4j public class FileRecycleServiceImpl implements FileRecycleService { @Resource @@ -46,13 +52,11 @@ public class FileRecycleServiceImpl implements FileRecycleService { @Resource private CommonService commonService; @Resource - private FileBackupLogMapper fileBackupLogMapper; - @Resource private FileSystemService fileSystemService; @Resource private ElePropertyConfig elePropertyConfig; @Resource - private BackupTask backupTask; + private BackupHandler backupHandler; @Override public ElectromagneticResult list(RecycleFileQueryDTO pars) { @@ -113,86 +117,27 @@ public class FileRecycleServiceImpl implements FileRecycleService { @Override @Transactional(rollbackFor = Exception.class) public ElectromagneticResult remove(String fileId) { - // 备份该文件 List edFileInfos = this.edFileInfoMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class) .select(EdFileInfo.class, file -> !StrUtil.equals(file.getColumn(), "file_content")) .eq(EdFileInfo::getFileId, fileId)); -// List fileSysPaths = new ArrayList<>(); for (EdFileInfo edFileInfo : edFileInfos) { String fileSysPath = commonService.getFileSysPath(edFileInfo.getFilePath(), edFileInfo.getDataOwn()); // 移动到tmp目录,七天后删除 fileSystemService.moveFile(fileSysPath, elePropertyConfig.getEleTmpPath() + File.separator + new File(fileSysPath).getName()); -// FileBackupLog fileBackupLog = fileBackupLogMapper.selectOne(Wrappers.lambdaQuery(FileBackupLog.class).eq(FileBackupLog::getFileId, edFileInfo.getId())); -// -// String saveFileName = edFileInfo.getFileName() + "." + edFileInfo.getFileType() + "." + edFileInfo.getFileCode(); - -// // 表示从没有备份过该文件 -// if (fileBackupLog == null) { -// long startTime = System.currentTimeMillis(); -// BackupFileResLog backup = backupTask.backup(fileSysPath, edFileInfo.getId()); -// long endTime = System.currentTimeMillis(); -// -// FileBackupLog backupLog = new FileBackupLog() -// .setId(IdWorker.getSnowFlakeIdString()) -// .setFileId(edFileInfo.getId()) -// .setStartTime(startTime) -// .setEndTime(endTime) -// .setDuration(endTime - startTime) -// .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) -// .setCreateTime(new Date()) -// .setFileName(saveFileName) -// .setFileCode(commonService.getFileCode(fileSysPath)) -// .setFileCreateTime(edFileInfo.getCreatedTime()) -// .setSource(FileBackupSource.REMOVE.code); -// -// if (backup.getBackupSuccess()) { -// backupLog.setBackupSuccess(true); -// fileBackupLogMapper.insert(backupLog); -// } else { -// backupLog.setBackupSuccess(false); -// backupLog.setFailInfoDetail(backup.getFailInfoDetail()); -// fileBackupLogMapper.insert(backupLog); -// throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); -// } -// -// } else { -// long startTime = System.currentTimeMillis(); -// BackupFileResLog backup = backupTask.backup(fileSysPath, edFileInfo.getId()); -// long endTime = System.currentTimeMillis(); -// fileBackupLog.setStartTime(startTime) -// .setEndTime(endTime) -// .setDuration(endTime - startTime) -// .setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime()) -// .setCreateTime(new Date()) -// .setFileCode(commonService.getFileCode(fileSysPath)) -// .setFileCreateTime(edFileInfo.getCreatedTime()) -// .setFileName(saveFileName); -// if (backup.getBackupSuccess()) { -// fileBackupLog.setBackupSuccess(true); -// fileBackupLogMapper.update(fileBackupLog, null); -// } else { -// fileBackupLog.setBackupSuccess(false); -// fileBackupLog.setFailInfoDetail(backup.getFailInfoDetail()); -// fileBackupLogMapper.update(fileBackupLog, null); -// throw new BizException(StrFormatter.format("删除文件 {} 失败,原因 备份该文件出现错误,联系管理员查看日志", saveFileName)); -// } -// } -// fileSysPaths.add(fileSysPath); + // 更新MySQL数据库 + this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class) + .eq(EdFileInfo::getFileId, fileId) + .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) + .set(EdFileInfo::getPermanentDeleted, true) + .set(EdFileInfo::getAllDeleted, true)); + UserThreadLocal.setSuccessInfo("", "", "删除文件 {} 成功,文件id {}", edFileInfos.get(0).getFileName() + "." + edFileInfos.get(0).getFileType(), fileId); + BackupFileResLog resLog = backupHandler.deleteFile(edFileInfo.getId()); + if (!Optional.ofNullable(resLog).map(BackupFileResLog::getBackupSuccess).orElse(false)) { + log.warn("删除备份文件异常"); + } + return ElectromagneticResultUtil.success("删除文件成功"); } - - // 移动到tmp目录,七天后删除 -// for (String fileSysPath : fileSysPaths) { -// -// } - - // 更新MySQL数据库 - this.edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class) - .eq(EdFileInfo::getFileId, fileId) - .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code) - .set(EdFileInfo::getPermanentDeleted, true) - .set(EdFileInfo::getAllDeleted, true)); - UserThreadLocal.setSuccessInfo("", "", "删除文件 {} 成功,文件id {}", edFileInfos.get(0).getFileName() + "." + edFileInfos.get(0).getFileType(), fileId); return ElectromagneticResultUtil.success("删除文件成功"); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java new file mode 100644 index 0000000..01ead1e --- /dev/null +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java @@ -0,0 +1,57 @@ +package com.electromagnetic.industry.software.manage.tasks; + +import cn.hutool.core.text.StrFormatter; +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; +import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; +import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +@Component +public class BackupHandler { + + @Resource + private ElePropertyConfig elePropertyConfig; + + public BackupFileResLog backupFiles(String filePath, String id) { + Map map = new HashMap<>(); + map.put("file", new File(filePath)); + map.put("id", id); + String url = StrFormatter.format("http://{}:{}/data/file/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String res = HttpUtil.post(url, map); + ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); + String data = JSONUtil.toJsonStr(resObj.getData()); + return JSONUtil.toBean(data, BackupFileResLog.class); + } + + public BackupFileResLog backupSql(String filePath) { + Map map = new HashMap<>(); + map.put("file", new File(filePath)); + String url = StrFormatter.format("http://{}:{}/data/file/backupSql", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String res = HttpUtil.post(url, map); + ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); + String data = JSONUtil.toJsonStr(resObj.getData()); + return JSONUtil.toBean(data, BackupFileResLog.class); + } + + public BackupFileResLog deleteFile(String id) { + Map map = new HashMap<>(); + map.put("id", id); + String url = StrFormatter.format("http://{}:{}/data/file/remove", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String res = HttpUtil.get(url, map); + ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); + String data = JSONUtil.toJsonStr(resObj.getData()); + return JSONUtil.toBean(data, BackupFileResLog.class); + } + + public byte[] downloadFile(String id) { + String url = StrFormatter.format("http://{}:{}/data/file/download?id={}", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort(), id); + return HttpUtil.downloadBytes(url); + } +} diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index 05f4f21..a7b21ec 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -1,19 +1,17 @@ package com.electromagnetic.industry.software.manage.tasks; +import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; -import cn.hutool.core.text.StrFormatter; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; import com.electromagnetic.industry.software.common.enums.FileBackupSource; import com.electromagnetic.industry.software.common.enums.UserOperationModuleEnum; import com.electromagnetic.industry.software.common.pojo.BackupFileResLog; -import com.electromagnetic.industry.software.common.resp.ElectromagneticResult; import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; @@ -31,9 +29,7 @@ import javax.annotation.Resource; import java.io.File; import java.io.FileFilter; import java.util.Date; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; @Component @@ -51,11 +47,8 @@ public class BackupTask { private EdFileInfoMapper edFileInfoMapper; @Resource private CommonService commonService; - - private static List filter(long time, String dir) { - FileFilter filter = file -> file.lastModified() < time; - return FileUtil.loopFiles(dir, filter); - } + @Resource + private BackupHandler backupHandler; @Scheduled(cron = "0 0 1 * * ?") public void backup() { @@ -68,7 +61,7 @@ public class BackupTask { .eq(EdFileInfo::getId, id)); String sysFilePath = commonService.getFileSysPath(fileInfo.getFilePath(), fileInfo.getDataOwn()); long startTime = System.currentTimeMillis(); - BackupFileResLog resLog = backup(sysFilePath, id); + BackupFileResLog resLog = backupHandler.backupFiles(sysFilePath, id); long endTime = System.currentTimeMillis(); fileBackupLogMapper.update(null, Wrappers.lambdaUpdate() .eq(FileBackupLog::getFileId, id) @@ -95,7 +88,7 @@ public class BackupTask { } String fileSysPath = commonService.getFileSysPath(edFileInfo.getFilePath(), edFileInfo.getDataOwn()); long startTime = System.currentTimeMillis(); - BackupFileResLog resLog = backup(fileSysPath, edFileInfo.getId()); + BackupFileResLog resLog = backupHandler.backupFiles(fileSysPath, edFileInfo.getId()); long endTime = System.currentTimeMillis(); FileBackupLog backupLog = new FileBackupLog() .setId(IdWorker.getSnowFlakeIdString()) @@ -163,14 +156,61 @@ public class BackupTask { } } - public BackupFileResLog backup(String filePath, String id) { - Map map = new HashMap<>(); - map.put("file", new File(filePath)); - map.put("id", id); - String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); - String res = HttpUtil.post(url, map); - ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); - String data = JSONUtil.toJsonStr(resObj.getData()); - return JSONUtil.toBean(data, BackupFileResLog.class); + @Scheduled(cron = "0 0 * * * ?") + public void backupSql() { + String sqlDirs = elePropertyConfig.getSqlDirs(); + File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); + File maxModifyTimeFile = null; + long tmp = 0; + if (ArrayUtil.isEmpty(files)) { + return; + } + for (File file : files) { + if (file.lastModified() > tmp) { + tmp = file.lastModified(); + maxModifyTimeFile = file; + } + } + + if (maxModifyTimeFile == null) { + return; + } + String fileName = maxModifyTimeFile.getName(); + List fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.lambdaQuery() + .eq(FileBackupLog::getFileName, fileName) + .eq(FileBackupLog::getSource, FileBackupSource.SQL.code)); + List successBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(successBacks)) { + return; + } + long startTime = System.currentTimeMillis(); + BackupFileResLog resLog = backupHandler.backupSql(maxModifyTimeFile.getAbsolutePath()); + long endTime = System.currentTimeMillis(); + List failBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); + if (CollUtil.isEmpty(failBacks)) { + FileBackupLog backupLog = new FileBackupLog() + .setId(IdWorker.getSnowFlakeIdString()) + .setFileId(Base64.encode(fileName)) + .setFileCode(Base64.encode(fileName)) + .setBackupSuccess(resLog.getBackupSuccess()) + .setCreateTime(new Date()) + .setStartTime(startTime) + .setEndTime(endTime) + .setDuration(endTime - startTime) + .setFailInfoDetail(resLog.getFailInfoDetail()) + .setFileTime(FileUtil.lastModifiedTime(maxModifyTimeFile).getTime()) + .setFileName(fileName) + .setFileCreateTime(FileUtil.lastModifiedTime(maxModifyTimeFile)) + .setSource(FileBackupSource.SQL.code); + fileBackupLogMapper.insert(backupLog); + } else { + fileBackupLogMapper.update(new FileBackupLog(), Wrappers.lambdaUpdate() + .eq(FileBackupLog::getSource, FileBackupSource.SQL.code) + .eq(FileBackupLog::getFileName, fileName) + .set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail()) + .set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess())); + } + } + } diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index 30d33df..ab9e281 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -36,7 +36,7 @@ data.repo.download.path=/szsd/data/eleData/dev/repo_download/ prj.folder.max.length=6 -# backup +# backupFiles tmp.file.store.days=7 backup.remote.host=127.0.0.1 backup.remote.port=1111 diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileBackupSource.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileBackupSource.java index 18c783d..4d414c2 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileBackupSource.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/enums/FileBackupSource.java @@ -6,7 +6,8 @@ import lombok.AllArgsConstructor; public enum FileBackupSource { SYS_BACKUP(0, "系统备份"), - REMOVE(1, "删除文件"); + REMOVE(1, "删除文件"), + SQL(2, "sql文件"); public int code; public String desc; From d2b391a2eab418df6fd0a0d272e24bbda9e10781 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Fri, 14 Mar 2025 14:30:22 +0800 Subject: [PATCH 20/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/manage/controller/RepoPrjController.java | 2 +- .../software/manage/service/serviceimpl/CommonService.java | 1 - .../manage/service/serviceimpl/FileRecycleServiceImpl.java | 3 --- .../industry/software/common/parse/FileParse.java | 3 ++- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java index 395284b..b8d4fcd 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/RepoPrjController.java @@ -26,7 +26,7 @@ public class RepoPrjController { @UserOperation(value = "创建层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) @RequestMapping("create") public ElectromagneticResult create(@RequestParam String prjName) { - return edPrjService.createNewPrj(prjName, DataOwnEnum.USER_PRJ.code); + return edPrjService.createNewPrj(prjName, DataOwnEnum.REPO_PRJ.code); } @UserOperation(value = "删除层级", modelName = UserOperationModuleEnum.REPO_PRJ_SETTING) 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 4739263..956ebac 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 @@ -378,7 +378,6 @@ public class CommonService { .select(EdFileInfo::getId) .eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) - .eq(EdFileInfo::getCreatedBy, UserThreadLocal.getUserId()) .eq(EdFileInfo::getParentId, PRJ_PARENT_ID); List prjIds = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java index 6e564e5..a6ea1e8 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/FileRecycleServiceImpl.java @@ -2,7 +2,6 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.lang.Assert; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -16,7 +15,6 @@ import com.electromagnetic.industry.software.common.util.ElectromagneticResultUt import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.config.ElePropertyConfig; import com.electromagnetic.industry.software.manage.mapper.EdFileInfoMapper; -import com.electromagnetic.industry.software.manage.mapper.FileBackupLogMapper; import com.electromagnetic.industry.software.manage.mapper.UserMapper; import com.electromagnetic.industry.software.manage.pojo.models.EdFileInfo; import com.electromagnetic.industry.software.manage.pojo.models.User; @@ -27,7 +25,6 @@ import com.electromagnetic.industry.software.manage.service.FileRecycleService; import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.PermissionService; import com.electromagnetic.industry.software.manage.tasks.BackupHandler; -import com.electromagnetic.industry.software.manage.tasks.BackupTask; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java index 7757d69..ed90a6f 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/parse/FileParse.java @@ -5,10 +5,11 @@ import cn.hutool.core.util.IdUtil; import java.io.File; import java.io.InputStream; +import java.util.Objects; public abstract class FileParse { - private static String tmpPath = Thread.currentThread().getContextClassLoader().getResource("").getPath(); + private static String tmpPath = Objects.requireNonNull(Thread.currentThread().getContextClassLoader().getResource("")).getPath(); public abstract String parseAllText(InputStream stream, String fileType); From 6697cbdfcb45eeeea153c2d77322d7e985e546e5 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 17 Mar 2025 11:57:15 +0800 Subject: [PATCH 21/29] =?UTF-8?q?=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/manage/tasks/BackupHandler.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java index 01ead1e..86c7ea4 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupHandler.java @@ -23,7 +23,7 @@ public class BackupHandler { Map map = new HashMap<>(); map.put("file", new File(filePath)); map.put("id", id); - String url = StrFormatter.format("http://{}:{}/data/file/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String url = StrFormatter.format("http://{}:{}/data/file/backup/upload", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); String res = HttpUtil.post(url, map); ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); String data = JSONUtil.toJsonStr(resObj.getData()); @@ -33,7 +33,7 @@ public class BackupHandler { public BackupFileResLog backupSql(String filePath) { Map map = new HashMap<>(); map.put("file", new File(filePath)); - String url = StrFormatter.format("http://{}:{}/data/file/backupSql", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String url = StrFormatter.format("http://{}:{}/data/file/backup/backupSql", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); String res = HttpUtil.post(url, map); ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); String data = JSONUtil.toJsonStr(resObj.getData()); @@ -43,7 +43,7 @@ public class BackupHandler { public BackupFileResLog deleteFile(String id) { Map map = new HashMap<>(); map.put("id", id); - String url = StrFormatter.format("http://{}:{}/data/file/remove", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); + String url = StrFormatter.format("http://{}:{}/data/file/backup/remove", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort()); String res = HttpUtil.get(url, map); ElectromagneticResult resObj = JSONUtil.toBean(res, ElectromagneticResult.class); String data = JSONUtil.toJsonStr(resObj.getData()); @@ -51,7 +51,7 @@ public class BackupHandler { } public byte[] downloadFile(String id) { - String url = StrFormatter.format("http://{}:{}/data/file/download?id={}", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort(), id); + String url = StrFormatter.format("http://{}:{}/data/file/backup/download?id={}", elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort(), id); return HttpUtil.downloadBytes(url); } } From 1b71543cb66e96f7bc720e58ddb35f4d19f8920b Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 17 Mar 2025 14:38:25 +0800 Subject: [PATCH 22/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 16 ++++++++++------ 1 file changed, 10 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 956ebac..ea6da71 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 @@ -295,6 +295,9 @@ public class CommonService { // 如果是数据库界面查询,此处需要进行权限筛选 if (querySource == PrjQuerySource.SYS_DB.value) { + if (CollUtil.isEmpty(accessibleIds)) { + return map; + } queryWrapper.in(EdFileInfo::getId, accessibleIds); } List prjIds = edFileInfoMapper.selectList(queryWrapper).stream().map(EdFileInfo::getId).collect(Collectors.toList()); @@ -499,17 +502,18 @@ public class CommonService { List prjInfo; if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { - prjInfo = querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).get(PrjQuerySource.SYS_DB.value); + prjInfo = querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).getOrDefault(PrjQuerySource.SYS_DB.value, new ArrayList<>()); } else if (dataOwnCode == DataOwnEnum.USER_FILE.code) { - prjInfo = queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).get(PrjQuerySource.USER_DB.value); + prjInfo = queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).getOrDefault(PrjQuerySource.USER_DB.value, new ArrayList<>()); } else { - prjInfo = queryRepoPrjTree(PrjQuerySource.REPO_DB.value, new FileProjectVO()).get(PrjQuerySource.REPO_DB.value); + prjInfo = queryRepoPrjTree(PrjQuerySource.REPO_DB.value, new FileProjectVO()).getOrDefault(PrjQuerySource.REPO_DB.value, new ArrayList<>()); } - prjInfo.forEach(e -> { - FileProjectVO projectVO = JSONUtil.toList(e, FileProjectVO.class).get(0); + + for (String info : prjInfo) { + FileProjectVO projectVO = JSONUtil.toList(info, FileProjectVO.class).get(0); Set leafIds = getLeafNodes(projectVO).stream().map(FileProjectVO::getCategoryId).collect(Collectors.toSet()); res.addAll(leafIds); - }); + } return res; } From b840c659a05e8fabc7f226c1925811f8fb63cd05 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 17 Mar 2025 15:00:07 +0800 Subject: [PATCH 23/29] clean code --- .../backup/controller/FileController.java | 2 +- .../software/backup/service/FileService.java | 1 - .../service/serviceimpl/CommonService.java | 26 +++++++------------ .../serviceimpl/EdFileInfoServiceImpl.java | 2 +- .../serviceimpl/FileRecycleServiceImpl.java | 5 +++- .../src/main/resources/application.properties | 8 +----- .../software/common/enums/DataOwnEnum.java | 17 ++++++------ 7 files changed, 25 insertions(+), 36 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 506602a..ecfb04a 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 @@ -58,7 +58,7 @@ public class FileController { try { fileService.remove(id); } catch (Exception e) { - log.error("删除文件失败, id-->{},原因-->{}",id, e.getMessage(), e); + log.error("删除文件失败, id-->{},原因-->{}", id, e.getMessage(), e); ElectromagneticResultUtil.fail("-1", e.getMessage()); } return ElectromagneticResultUtil.success(true); 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 25425d9..a1df2dc 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 @@ -5,7 +5,6 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; -import java.util.Map; public interface FileService { 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 ea6da71..9b5aca5 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 @@ -58,16 +58,6 @@ public class CommonService { @Resource private FileFormatService fileFormatService; - @PostConstruct - public void init() { - PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getSysPrjPath()); - PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getSysPrjPath()); - PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserPrjPath()); - PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserPrjPath()); - PATH_MAP.put(DataOwnEnum.REPO_FILE.code, elePropertyConfig.getRepoPrjPath()); - PATH_MAP.put(DataOwnEnum.REPO_PRJ.code, elePropertyConfig.getRepoPrjPath()); - } - private static String createTree(List edFileInfos, Object object) { TreeNodeConfig config = new TreeNodeConfig(); @@ -120,6 +110,16 @@ public class CommonService { } } + @PostConstruct + public void init() { + PATH_MAP.put(DataOwnEnum.SYS_FILE.code, elePropertyConfig.getSysPrjPath()); + PATH_MAP.put(DataOwnEnum.SYS_PRJ.code, elePropertyConfig.getSysPrjPath()); + PATH_MAP.put(DataOwnEnum.USER_PRJ.code, elePropertyConfig.getUserPrjPath()); + PATH_MAP.put(DataOwnEnum.USER_FILE.code, elePropertyConfig.getUserPrjPath()); + PATH_MAP.put(DataOwnEnum.REPO_FILE.code, elePropertyConfig.getRepoPrjPath()); + PATH_MAP.put(DataOwnEnum.REPO_PRJ.code, elePropertyConfig.getRepoPrjPath()); + } + public String getEleDataPath(int dataOwnCode) { return PATH_MAP.get(dataOwnCode); } @@ -534,10 +534,4 @@ public class CommonService { return ""; } - public String getFileCode(String path) { - int index = path.lastIndexOf("."); - return path.substring(index + 1); - - } - } 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 fa41239..d9194dd 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 @@ -770,7 +770,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl FILE_PRJ_MAP = new HashMap<>(); + + static { + FILE_PRJ_MAP.put(DataOwnEnum.SYS_FILE.code, DataOwnEnum.SYS_PRJ.code); + FILE_PRJ_MAP.put(DataOwnEnum.USER_FILE.code, DataOwnEnum.USER_PRJ.code); + FILE_PRJ_MAP.put(DataOwnEnum.REPO_FILE.code, DataOwnEnum.REPO_PRJ.code); + } + public final int code; public final String desc; - public static boolean isPrjCode(int code) { return code == SYS_PRJ.code || code == USER_PRJ.code || code == REPO_PRJ.code; } @@ -27,14 +34,6 @@ public enum DataOwnEnum { return code == SYS_FILE.code || code == USER_FILE.code || code == REPO_FILE.code; } - private static final Map FILE_PRJ_MAP = new HashMap<>(); - - static { - FILE_PRJ_MAP.put(DataOwnEnum.SYS_FILE.code, DataOwnEnum.SYS_PRJ.code); - FILE_PRJ_MAP.put(DataOwnEnum.USER_FILE.code, DataOwnEnum.USER_PRJ.code); - FILE_PRJ_MAP.put(DataOwnEnum.REPO_FILE.code, DataOwnEnum.REPO_PRJ.code); - } - public static int getPrjCodeByFileCode(int fileCode) { return FILE_PRJ_MAP.get(fileCode); } From 56b5838177b198310449897aac598a0b0adee20a Mon Sep 17 00:00:00 2001 From: chenxudong Date: Mon, 17 Mar 2025 18:01:09 +0800 Subject: [PATCH 24/29] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86=E5=B7=A5?= =?UTF-8?q?=E7=A8=8B=E5=B1=82=E7=BA=A7=E6=B2=BF=E7=94=A8=EF=BC=8C=E5=BE=85?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 4 +- .../service/serviceimpl/EdPrjServiceImpl.java | 124 ++++++++++++++++-- 2 files changed, 117 insertions(+), 11 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 9b5aca5..69eb618 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 @@ -501,9 +501,9 @@ public class CommonService { Set res = new HashSet<>(); List prjInfo; - if (dataOwnCode == DataOwnEnum.SYS_FILE.code) { + if (DataOwnEnum.isSysCode(dataOwnCode)) { prjInfo = querySysPrjTree(PrjQuerySource.SYS_DB.value, null, new FileProjectVO()).getOrDefault(PrjQuerySource.SYS_DB.value, new ArrayList<>()); - } else if (dataOwnCode == DataOwnEnum.USER_FILE.code) { + } else if (DataOwnEnum.isUserCode(dataOwnCode)) { prjInfo = queryUserPrjTree(PrjQuerySource.USER_DB.value, new FileProjectVO()).getOrDefault(PrjQuerySource.USER_DB.value, new ArrayList<>()); } else { prjInfo = queryRepoPrjTree(PrjQuerySource.REPO_DB.value, new FileProjectVO()).getOrDefault(PrjQuerySource.REPO_DB.value, new ArrayList<>()); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index dca03a4..93c7310 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -1,5 +1,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.IdUtil; @@ -345,6 +347,108 @@ public class EdPrjServiceImpl extends ServiceImpl @Transactional(rollbackFor = Exception.class) public ElectromagneticResult follow(String sourceId, String targetId, int dataOwnCode) { + try { + // 把source工程的层级结构copy到目标工程 + // 查找source的全部目录 + List sourceEdFileInfos = commonService.selectAllPrjFolder(sourceId, null, dataOwnCode); + List targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); + // + Set sourceNames = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).map(EdFileInfo::getFileName).collect(Collectors.toSet()); + Set targetNames = targetEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).map(EdFileInfo::getFileName).collect(Collectors.toSet()); + + Collection intersection = CollectionUtil.intersection(sourceNames, targetNames); + if (CollUtil.isNotEmpty(intersection)) { + String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 存在相同子集", sourceId, targetId); + log.error(info); + return ElectromagneticResultUtil.fail("-1", info); + } + + Map idMaps = new HashMap<>(); + for (int i = 1; i <= prjFolderMaxLength; ++i) { + int layerIndex = i; + List currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).collect(Collectors.toList()); + if (layerIndex == 1) { + targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); + List targetChildLayerDirs = targetEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).collect(Collectors.toList()); + int size = targetChildLayerDirs.size(); + for (EdFileInfo edFileInfo : currentSourceLayerDirs) { + int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); + String newFolderId = String.valueOf(maxFolderId + 1); + String nowTimeStr = EleCommonUtil.getNowTimeStr(); + String fileCode = commonService.createFileCode(targetId, EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr); + EdFileInfo targetFile = new EdFileInfo().setId(newFolderId) + .setFileId(newFolderId) + .setFileName(edFileInfo.getFileName()) + .setFileVersion(FILE_START_VERSION) + .setDataOwn(dataOwnCode) + .setParentId(edFileInfo.getId()) + .setFileTime(nowTimeStr) + .setDataType(EleDataTypeEnum.FOLDER.code) + .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) + .setEffectFlag(EffectFlagEnum.EFFECT.code) + .setFileCode(fileCode) + .setFileType("文件夹") + .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) + .setFilePath(edFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) + .setSort(++size); + this.save(targetFile); + targetEdFileInfos.add(targetFile); + idMaps.put(edFileInfo.getFileId(), newFolderId); + } + } + else { + for (EdFileInfo edFileInfo : currentSourceLayerDirs) { + String targetDirParentId = idMaps.get(edFileInfo.getParentId()); + + int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); + String newFolderId = String.valueOf(maxFolderId + 1); + String nowTimeStr = EleCommonUtil.getNowTimeStr(); + + String fileCode = commonService.createFileCode(targetId, EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr); + EdFileInfo targetFile = new EdFileInfo().setId(newFolderId) + .setFileId(newFolderId) + .setFileName(edFileInfo.getFileName()) + .setFileVersion(FILE_START_VERSION) + .setDataOwn(dataOwnCode) + .setParentId(targetDirParentId) + .setFileTime(nowTimeStr) + .setDataType(EleDataTypeEnum.FOLDER.code) + .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) + .setEffectFlag(EffectFlagEnum.EFFECT.code) + .setFileCode(fileCode) + .setFileType("文件夹") + .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) + .setFilePath(edFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) + .setSort(edFileInfo.getSort()); + this.save(targetFile); + targetEdFileInfos.add(targetFile); + idMaps.put(edFileInfo.getFileId(), newFolderId); + } + } + } + UserThreadLocal.setSuccessInfo("", targetId, "层级沿用成功"); + return ElectromagneticResultUtil.success(true); + } catch (Exception e) { + String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 存在相同子集", sourceId, targetId); + log.error(info); + throw new BizException(info); + } + } + + + + + /** + * 层级沿用 + * + * @param sourceId + * @param targetId + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public ElectromagneticResult follow1(String sourceId, String targetId, int dataOwnCode) { + try { // 把source工程的层级结构copy到目标工程 // 查找source的全部目录 @@ -356,30 +460,32 @@ public class EdPrjServiceImpl extends ServiceImpl // 先查找source第i层下有那些子集 final int count = i; // 取source当前层 - List sourceTmpEdFiles = sourceEdFileInfos.stream() + List sourceCurrentLayerFiles = sourceEdFileInfos.stream() .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count) .collect(Collectors.toList()); // 取target父层 - List targetTmpEdFiles = targetEdFileInfos.stream() + List targetCurrentLayerFiles = targetEdFileInfos.stream() .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count - 1) .collect(Collectors.toList()); // 获取source名称的map - Map sourceFileNameMap = sourceTmpEdFiles.stream() - .collect(Collectors.toMap(EdFileInfo::getFileName, e -> e)); + Map sourceFileNameMap = sourceCurrentLayerFiles.stream() + .collect(Collectors.toMap(EdFileInfo::getId, e -> e)); // 获取target当前层级的子集名称 List targetFileNames = targetEdFileInfos.stream() .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count) .map(EdFileInfo::getFileName) .collect(Collectors.toList()); - int sort = targetTmpEdFiles.size(); - for (EdFileInfo edFileInfo : sourceTmpEdFiles) { + int sort = targetCurrentLayerFiles.size(); + for (EdFileInfo edFileInfo : sourceCurrentLayerFiles) { String sourceFileName = edFileInfo.getFileName(); String sourceFileParentName = sourceEdFileInfos.stream().filter(e -> e.getId().equals(edFileInfo.getParentId())).findFirst().get().getFileName(); - EdFileInfo targetParentFile = i == 1 ? targetTmpEdFiles.stream().filter(e -> e.getId().equals(targetId)).findFirst().get() : targetTmpEdFiles.stream().filter(e -> e.getFileName().equals(sourceFileParentName)).findFirst().get(); + EdFileInfo targetParentFile = i == 1 ? + targetCurrentLayerFiles.stream().filter(e -> e.getId().equals(targetId)).findFirst().get() : + targetCurrentLayerFiles.stream().filter(e -> e.getFileName().equals(sourceFileParentName)).findFirst().get(); // TODO BUGS if (!targetFileNames.contains(sourceFileName)) { - EdFileInfo sourceFile = sourceFileNameMap.get(sourceFileName); + EdFileInfo sourceFile = sourceFileNameMap.get(edFileInfo.getId()); EdFileInfo targetFile = new EdFileInfo(); int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); @@ -408,7 +514,7 @@ public class EdPrjServiceImpl extends ServiceImpl } else { String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 存在相同子集", sourceId, targetId); log.error(info); - throw new BizException(info); + return ElectromagneticResultUtil.fail("-1", info); } } } From 06844c7557c7994dac957b7420ee7eb816c5dd67 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 18 Mar 2025 10:30:54 +0800 Subject: [PATCH 25/29] =?UTF-8?q?=E9=87=8D=E5=86=99=E4=BA=86follow?= =?UTF-8?q?=E5=A4=84=E7=90=86=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E7=9A=84=E5=B7=B2=E7=9F=A5=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/CommonService.java | 32 ++--- .../service/serviceimpl/EdPrjServiceImpl.java | 121 +++--------------- .../sqlmapper/RolePermissionMapper.xml | 4 +- .../common/cons/ElectromagneticConstants.java | 2 +- 4 files changed, 38 insertions(+), 121 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 69eb618..d8bb5c7 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 @@ -1,6 +1,7 @@ package com.electromagnetic.industry.software.manage.service.serviceimpl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.lang.tree.TreeNodeConfig; @@ -185,16 +186,15 @@ public class CommonService { return parentId + fileFormat.getSuffixNo() + version + timeStr; } - public List selectAllPrjFolder(String id, List accessibleIds, int dataOwnCode) { + public List selectAllPrjFolder(String id, int dataOwnCode) { LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(EdFileInfo.class) .eq(EdFileInfo::getEffectFlag, EffectFlagEnum.EFFECT.code) .eq(EdFileInfo::getDataType, EleDataTypeEnum.FOLDER.code) .likeRight(EdFileInfo::getFilePath, id); - if (dataOwnCode == DataOwnEnum.SYS_FILE.code || dataOwnCode == DataOwnEnum.SYS_PRJ.code) { + if (DataOwnEnum.isSysCode(dataOwnCode)) { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_PRJ.code); - queryWrapper.in(EdFileInfo::getId, accessibleIds); - } else if (dataOwnCode == DataOwnEnum.USER_FILE.code || dataOwnCode == DataOwnEnum.USER_PRJ.code) { + } else if (DataOwnEnum.isUserCode(dataOwnCode)) { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.USER_PRJ.code); } else { queryWrapper.eq(EdFileInfo::getDataOwn, DataOwnEnum.REPO_PRJ.code); @@ -416,19 +416,17 @@ public class CommonService { public ElectromagneticResult deleteFolder(String id, int dataOwnCode) { // 如果文件夹下存在文件(包括文件夹和已经逻辑删除的文件),则不允许删除。后面管理员选择会有物理删除文件夹和文件的功能,此时MySQL和文件系统则会进行物理删除该文件。 EdFileInfo srcFileInfo = edFileInfoMapper.selectById(id); - String srcPrjName = srcFileInfo.getFileName(); String srcFilePath = getFileSysPath(srcFileInfo.getFilePath(), dataOwnCode); - EdFileInfo fileInfo = edFileInfoMapper.selectOne(Wrappers.lambdaQuery().eq(EdFileInfo::getId, id)); try { // 这里要分两种情况,1是删除层级目录,2是删除用户创建的文件夹 - String parentId = fileInfo.getParentId(); - if (fileInfo.getDataOwn().equals(DataOwnEnum.SYS_PRJ.code)) { // 删除的是层级目录 + String parentId = srcFileInfo.getParentId(); + if (DataOwnEnum.isPrjCode(srcFileInfo.getDataOwn())) { // 删除的是层级目录 long count = edFileInfoMapper.selectCount(Wrappers.lambdaQuery() .eq(EdFileInfo::getDataOwn, DataOwnEnum.SYS_FILE.code) .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("删除层级 {} 失败,目录非空。", srcFileInfo.getFileName()); log.info(info); return ElectromagneticResultUtil.fail("-1", info); } else { @@ -458,7 +456,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("删除文件夹 {} 失败,目录非空。", srcFileInfo.getFileName()); log.info(info); return ElectromagneticResultUtil.fail("-1", info); } else { @@ -466,14 +464,13 @@ public class CommonService { edFileInfoMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate() .eq(EdFileInfo::getId, id) .set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code)); - fileSystemService.renameFile(srcFilePath, srcPrjName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); + fileSystemService.renameFile(srcFilePath, srcFileInfo.getFileName() + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); } } -// fileSystemService.renameFile(srcFilePath, srcPrjName + "." + IdUtil.fastSimpleUUID() + DELETE_FLAG); - UserThreadLocal.setSuccessInfo(srcFileInfo.getParentId(), id, "删除目录 {} 成功", fileInfo.getFileName()); + UserThreadLocal.setSuccessInfo(srcFileInfo.getParentId(), id, "删除目录 {} 成功", srcFileInfo.getFileName()); return ElectromagneticResultUtil.success(true); } catch (Exception e) { - String info = StrFormatter.format("删除 {} 失败,原因 {}", fileInfo.getFileName(), e.getMessage()); + String info = StrFormatter.format("删除 {} 失败,原因 {}", srcFileInfo.getFileName(), e.getMessage()); log.error(info, e); throw new BizException(info); } @@ -519,8 +516,11 @@ public class CommonService { public void deletePrjSysDir(List paths) { for (String path : paths) { - String preDirName = new File(path).getParentFile().getName(); - fileSystemService.renameFile(path, preDirName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); + if (!FileUtil.exist(path)) { + continue; + } + String fileName = new File(path).getName(); + fileSystemService.renameFile(path, fileName + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java index 93c7310..3485419 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdPrjServiceImpl.java @@ -190,7 +190,7 @@ public class EdPrjServiceImpl extends ServiceImpl this.baseMapper.update(new EdFileInfo(), Wrappers.lambdaUpdate(EdFileInfo.class).set(EdFileInfo::getEffectFlag, EffectFlagEnum.NOT_EFFECTIVE.code).in(EdFileInfo::getId, ids)); // 对原文件进行处理 EdFileInfo prjFile = this.getById(prjId); - fileSystemService.renameFile(commonService.getFileSysPath(prjId, dataOwnCode), prjFile + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); + fileSystemService.renameFile(commonService.getFileSysPath(prjId, dataOwnCode), prjFile.getFileName() + "_" + IdUtil.fastSimpleUUID() + DELETE_FLAG); UserThreadLocal.setSuccessInfo("", prjId, "废除 {} 项目成功。", prjFile.getFileName()); return ElectromagneticResultUtil.success(true); } catch (Exception e) { @@ -350,8 +350,8 @@ public class EdPrjServiceImpl extends ServiceImpl try { // 把source工程的层级结构copy到目标工程 // 查找source的全部目录 - List sourceEdFileInfos = commonService.selectAllPrjFolder(sourceId, null, dataOwnCode); - List targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); + List sourceEdFileInfos = commonService.selectAllPrjFolder(sourceId, dataOwnCode); + List targetEdFileInfos = commonService.selectAllPrjFolder(targetId, dataOwnCode); // Set sourceNames = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).map(EdFileInfo::getFileName).collect(Collectors.toSet()); Set targetNames = targetEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).map(EdFileInfo::getFileName).collect(Collectors.toSet()); @@ -364,11 +364,14 @@ public class EdPrjServiceImpl extends ServiceImpl } Map idMaps = new HashMap<>(); + idMaps.put(sourceId, targetId); + List sysFilePaths = new ArrayList<>(); for (int i = 1; i <= prjFolderMaxLength; ++i) { int layerIndex = i; List currentSourceLayerDirs = sourceEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == layerIndex).collect(Collectors.toList()); if (layerIndex == 1) { - targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); + targetEdFileInfos = commonService.selectAllPrjFolder(targetId, dataOwnCode); + EdFileInfo prjFileInfo = targetEdFileInfos.stream().filter(e -> e.getParentId().equals(PRJ_PARENT_ID)).findFirst().get(); List targetChildLayerDirs = targetEdFileInfos.stream().filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == 1).collect(Collectors.toList()); int size = targetChildLayerDirs.size(); for (EdFileInfo edFileInfo : currentSourceLayerDirs) { @@ -381,7 +384,7 @@ public class EdPrjServiceImpl extends ServiceImpl .setFileName(edFileInfo.getFileName()) .setFileVersion(FILE_START_VERSION) .setDataOwn(dataOwnCode) - .setParentId(edFileInfo.getId()) + .setParentId(idMaps.get(edFileInfo.getParentId())) .setFileTime(nowTimeStr) .setDataType(EleDataTypeEnum.FOLDER.code) .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) @@ -389,16 +392,20 @@ public class EdPrjServiceImpl extends ServiceImpl .setFileCode(fileCode) .setFileType("文件夹") .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) - .setFilePath(edFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) + .setFilePath(prjFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) .setSort(++size); this.save(targetFile); targetEdFileInfos.add(targetFile); idMaps.put(edFileInfo.getFileId(), newFolderId); + String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath(), dataOwnCode); + sysFilePaths.add(targetSysFilePath); } - } - else { + } else { + List edFileInfos = this.baseMapper.selectList(Wrappers.lambdaQuery(EdFileInfo.class).in(EdFileInfo::getId, idMaps.values())); + Map map = edFileInfos.stream().collect(Collectors.toMap(EdFileInfo::getId, e -> e)); for (EdFileInfo edFileInfo : currentSourceLayerDirs) { String targetDirParentId = idMaps.get(edFileInfo.getParentId()); + EdFileInfo parentFileInfo = map.get(targetDirParentId); int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); String newFolderId = String.valueOf(maxFolderId + 1); @@ -418,107 +425,17 @@ public class EdPrjServiceImpl extends ServiceImpl .setFileCode(fileCode) .setFileType("文件夹") .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) - .setFilePath(edFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) + .setFilePath(parentFileInfo.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) .setSort(edFileInfo.getSort()); this.save(targetFile); targetEdFileInfos.add(targetFile); idMaps.put(edFileInfo.getFileId(), newFolderId); - } - } - } - UserThreadLocal.setSuccessInfo("", targetId, "层级沿用成功"); - return ElectromagneticResultUtil.success(true); - } catch (Exception e) { - String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 存在相同子集", sourceId, targetId); - log.error(info); - throw new BizException(info); - } - } - - - - - /** - * 层级沿用 - * - * @param sourceId - * @param targetId - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public ElectromagneticResult follow1(String sourceId, String targetId, int dataOwnCode) { - - try { - // 把source工程的层级结构copy到目标工程 - // 查找source的全部目录 - List sourceEdFileInfos = commonService.selectAllPrjFolder(sourceId, null, dataOwnCode); - List needSavePaths = new ArrayList<>(); - // 确定层级最大为prjFolderMaxLength层,现在逐层来处理。 - for (int i = 1; i <= prjFolderMaxLength; ++i) { - List targetEdFileInfos = commonService.selectAllPrjFolder(targetId, null, dataOwnCode); - // 先查找source第i层下有那些子集 - final int count = i; - // 取source当前层 - List sourceCurrentLayerFiles = sourceEdFileInfos.stream() - .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count) - .collect(Collectors.toList()); - // 取target父层 - List targetCurrentLayerFiles = targetEdFileInfos.stream() - .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count - 1) - .collect(Collectors.toList()); - // 获取source名称的map - Map sourceFileNameMap = sourceCurrentLayerFiles.stream() - .collect(Collectors.toMap(EdFileInfo::getId, e -> e)); - // 获取target当前层级的子集名称 - List targetFileNames = targetEdFileInfos.stream() - .filter(e -> StrUtil.count(e.getFilePath(), MYSQL_FILE_PATH_SPLIT) == count) - .map(EdFileInfo::getFileName) - .collect(Collectors.toList()); - int sort = targetCurrentLayerFiles.size(); - for (EdFileInfo edFileInfo : sourceCurrentLayerFiles) { - String sourceFileName = edFileInfo.getFileName(); - - String sourceFileParentName = sourceEdFileInfos.stream().filter(e -> e.getId().equals(edFileInfo.getParentId())).findFirst().get().getFileName(); - EdFileInfo targetParentFile = i == 1 ? - targetCurrentLayerFiles.stream().filter(e -> e.getId().equals(targetId)).findFirst().get() : - targetCurrentLayerFiles.stream().filter(e -> e.getFileName().equals(sourceFileParentName)).findFirst().get(); // TODO BUGS - - if (!targetFileNames.contains(sourceFileName)) { - EdFileInfo sourceFile = sourceFileNameMap.get(edFileInfo.getId()); - EdFileInfo targetFile = new EdFileInfo(); - int maxFolderId = Integer.parseInt(this.baseMapper.maxPrjId()); - - String newFolderId = String.valueOf(maxFolderId + 1); - String nowTimeStr = EleCommonUtil.getNowTimeStr(); - String fileCode = commonService.createFileCode(targetParentFile.getId(), EleDataTypeEnum.FOLDER.desc, FILE_START_VERSION, nowTimeStr); - targetFile.setId(newFolderId) - .setFileId(newFolderId) - .setFileName(sourceFile.getFileName()) - .setFileVersion(FILE_START_VERSION) - .setDataOwn(dataOwnCode) - .setParentId(targetParentFile.getId()) - .setFileTime(nowTimeStr) - .setDataType(EleDataTypeEnum.FOLDER.code) - .setDataStatus(EleDataStatusEnum.NOT_PUBLISHED.code) - .setEffectFlag(EffectFlagEnum.EFFECT.code) - .setFileCode(fileCode) - .setFileType("文件夹") - .setSaveStatus(EleDataSaveStatusEnum.SUCCESS.code) - .setFilePath(targetParentFile.getFilePath() + MYSQL_FILE_PATH_SPLIT + newFolderId) - .setSort(++sort); - this.save(targetFile); - targetEdFileInfos.add(targetFile); String targetSysFilePath = commonService.getFileSysPath(targetFile.getFilePath(), dataOwnCode); - needSavePaths.add(targetSysFilePath); - } else { - String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 存在相同子集", sourceId, targetId); - log.error(info); - return ElectromagneticResultUtil.fail("-1", info); + sysFilePaths.add(targetSysFilePath); } } } - for (String path : needSavePaths) { + for (String path : sysFilePaths) { fileSystemService.createDirectory(path); } UserThreadLocal.setSuccessInfo("", targetId, "层级沿用成功"); @@ -526,7 +443,7 @@ public class EdPrjServiceImpl extends ServiceImpl } catch (Exception e) { String info = StrFormatter.format("层级沿用失败,源工程 {},目标工程 {},原因 {}", sourceId, targetId, e.getMessage()); log.error(info, e); - throw new BizException(info, e); + throw new BizException(info); } } diff --git a/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml b/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml index 15ea916..0ad2e58 100644 --- a/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml +++ b/electrmangnetic/src/main/resources/sqlmapper/RolePermissionMapper.xml @@ -16,14 +16,14 @@ FROM ed_role_permission rp JOIN ed_file_info f ON rp.file_id = f.id WHERE f.parent_id = #{fileId} - AND f.prj_dir = #{prjDir} + AND f.data_own = #{prjDir} AND f.data_status = #{dataStatus} AND f.effect_flag = #{effectFlag} GROUP BY rp.role_id, rp.permission_code HAVING COUNT(f.id) = (SELECT COUNT(f2.id) FROM ed_file_info f2 WHERE f2.parent_id = #{fileId} - AND f2.prj_dir = #{prjDir} + AND f2.data_own = #{prjDir} AND f2.data_status = #{dataStatus} AND f2.effect_flag = #{effectFlag}) diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java index bcbe0f8..1295318 100644 --- a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/cons/ElectromagneticConstants.java @@ -18,5 +18,5 @@ public interface ElectromagneticConstants { int PRJ_ID_LENGTH = 6; - String DELETE_FLAG = "delete"; + String DELETE_FLAG = "deleted"; } From 9ac1b9fdf5c2bdd83ad5110678dfdc1567466ca1 Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 18 Mar 2025 10:37:34 +0800 Subject: [PATCH 26/29] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=B7=B2=E7=9F=A5?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/serviceimpl/EdFileInfoServiceImpl.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) 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 d9194dd..89cc89d 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 @@ -130,7 +130,7 @@ public class EdFileInfoServiceImpl extends ServiceImpl Date: Tue, 18 Mar 2025 10:58:52 +0800 Subject: [PATCH 27/29] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/manage/Application.java | 2 + .../software/manage/tasks/BackupTask.java | 107 +++++++++--------- 2 files changed, 58 insertions(+), 51 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/Application.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/Application.java index facd78e..5b2a4a0 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/Application.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/Application.java @@ -2,8 +2,10 @@ package com.electromagnetic.industry.software.manage; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication +@EnableScheduling public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index a7b21ec..88b5265 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -22,6 +22,7 @@ import com.electromagnetic.industry.software.manage.pojo.models.FileBackupLog; import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog; import com.electromagnetic.industry.software.manage.service.FileSystemService; import com.electromagnetic.industry.software.manage.service.serviceimpl.CommonService; +import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -33,6 +34,7 @@ import java.util.List; import java.util.stream.Collectors; @Component +@Slf4j public class BackupTask { @Resource @@ -50,7 +52,7 @@ public class BackupTask { @Resource private BackupHandler backupHandler; - @Scheduled(cron = "0 0 1 * * ?") + @Scheduled(cron = "0 0 * * * ?") public void backup() { // 首先查看备份失败的文件 @@ -158,59 +160,62 @@ public class BackupTask { @Scheduled(cron = "0 0 * * * ?") public void backupSql() { - String sqlDirs = elePropertyConfig.getSqlDirs(); - File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); - File maxModifyTimeFile = null; - long tmp = 0; - if (ArrayUtil.isEmpty(files)) { - return; - } - for (File file : files) { - if (file.lastModified() > tmp) { - tmp = file.lastModified(); - maxModifyTimeFile = file; + try { + String sqlDirs = elePropertyConfig.getSqlDirs(); + File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); + File maxModifyTimeFile = null; + long tmp = 0; + if (ArrayUtil.isEmpty(files)) { + return; } - } - - if (maxModifyTimeFile == null) { - return; - } - String fileName = maxModifyTimeFile.getName(); - List fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.lambdaQuery() - .eq(FileBackupLog::getFileName, fileName) - .eq(FileBackupLog::getSource, FileBackupSource.SQL.code)); - List successBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(successBacks)) { - return; - } - long startTime = System.currentTimeMillis(); - BackupFileResLog resLog = backupHandler.backupSql(maxModifyTimeFile.getAbsolutePath()); - long endTime = System.currentTimeMillis(); - List failBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); - if (CollUtil.isEmpty(failBacks)) { - FileBackupLog backupLog = new FileBackupLog() - .setId(IdWorker.getSnowFlakeIdString()) - .setFileId(Base64.encode(fileName)) - .setFileCode(Base64.encode(fileName)) - .setBackupSuccess(resLog.getBackupSuccess()) - .setCreateTime(new Date()) - .setStartTime(startTime) - .setEndTime(endTime) - .setDuration(endTime - startTime) - .setFailInfoDetail(resLog.getFailInfoDetail()) - .setFileTime(FileUtil.lastModifiedTime(maxModifyTimeFile).getTime()) - .setFileName(fileName) - .setFileCreateTime(FileUtil.lastModifiedTime(maxModifyTimeFile)) - .setSource(FileBackupSource.SQL.code); - fileBackupLogMapper.insert(backupLog); - } else { - fileBackupLogMapper.update(new FileBackupLog(), Wrappers.lambdaUpdate() - .eq(FileBackupLog::getSource, FileBackupSource.SQL.code) + for (File file : files) { + if (file.lastModified() > tmp) { + tmp = file.lastModified(); + maxModifyTimeFile = file; + } + } + if (maxModifyTimeFile == null) { + return; + } + String fileName = maxModifyTimeFile.getName(); + List fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.lambdaQuery() .eq(FileBackupLog::getFileName, fileName) - .set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail()) - .set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess())); - } + .eq(FileBackupLog::getSource, FileBackupSource.SQL.code)); + List successBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(successBacks)) { + return; + } + long startTime = System.currentTimeMillis(); + BackupFileResLog resLog = backupHandler.backupSql(maxModifyTimeFile.getAbsolutePath()); + long endTime = System.currentTimeMillis(); + List failBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); + if (CollUtil.isEmpty(failBacks)) { + FileBackupLog backupLog = new FileBackupLog() + .setId(IdWorker.getSnowFlakeIdString()) + .setFileId(Base64.encode(fileName)) + .setFileCode(Base64.encode(fileName)) + .setBackupSuccess(resLog.getBackupSuccess()) + .setCreateTime(new Date()) + .setStartTime(startTime) + .setEndTime(endTime) + .setDuration(endTime - startTime) + .setFailInfoDetail(resLog.getFailInfoDetail()) + .setFileTime(FileUtil.lastModifiedTime(maxModifyTimeFile).getTime()) + .setFileName(fileName) + .setFileCreateTime(FileUtil.lastModifiedTime(maxModifyTimeFile)) + .setSource(FileBackupSource.SQL.code); + fileBackupLogMapper.insert(backupLog); + } else { + fileBackupLogMapper.update(new FileBackupLog(), Wrappers.lambdaUpdate() + .eq(FileBackupLog::getSource, FileBackupSource.SQL.code) + .eq(FileBackupLog::getFileName, fileName) + .set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail()) + .set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess())); + } + } catch (Exception e) { + log.error("备份SQL文件异常,原因 {}", e.getMessage(), e); + } } } From dca641d6644116629051730d2195d215fcef32af Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 18 Mar 2025 12:03:45 +0800 Subject: [PATCH 28/29] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9C=A8=E5=A4=87?= =?UTF-8?q?=E4=BB=BDSQL=E6=97=B6=EF=BC=8C=E5=AF=BC=E5=87=BAMySQL=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/ElePropertyConfig.java | 4 +++ .../software/manage/tasks/BackupTask.java | 30 ++++++++++++++----- .../src/main/resources/application.properties | 3 +- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 7b31970..a57527d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -39,6 +39,10 @@ public class ElePropertyConfig { @Value("${data.repo.download.path}") private String repoDownloadPath; + @Getter + @Value("${backup.mysql.script.path}") + private String backupMysqlScriptPath; + @Getter @Value("${tmp.file.store.days}") private int tmpFileStoreDays; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index 88b5265..d08bd94 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -5,7 +5,9 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RuntimeUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; @@ -29,6 +31,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.File; import java.io.FileFilter; +import java.util.Arrays; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -161,19 +165,14 @@ public class BackupTask { @Scheduled(cron = "0 0 * * * ?") public void backupSql() { try { + dumpMysql(); String sqlDirs = elePropertyConfig.getSqlDirs(); File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); - File maxModifyTimeFile = null; - long tmp = 0; if (ArrayUtil.isEmpty(files)) { return; } - for (File file : files) { - if (file.lastModified() > tmp) { - tmp = file.lastModified(); - maxModifyTimeFile = file; - } - } + + File maxModifyTimeFile = Arrays.stream(files).filter(File::isFile).filter(File::exists).max(Comparator.comparingLong(File::lastModified)).orElse(null); if (maxModifyTimeFile == null) { return; } @@ -218,4 +217,19 @@ public class BackupTask { } } + private void dumpMysql() { + try { + String sqlScript = elePropertyConfig.getBackupMysqlScriptPath(); + String command = StrFormatter.format("bash {}", sqlScript); + Process exec = RuntimeUtil.exec(command); + int i = exec.waitFor(); + if (i != 0) { + log.warn("导出MySQL数据异常"); + } + } catch (Exception e) { + log.warn("导出MySQL数据异常,原因 {}", e.getMessage(), e); + } + + } + } diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index aeca81f..60f0f82 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -35,4 +35,5 @@ prj.folder.max.length=6 tmp.file.store.days=7 backup.remote.host=127.0.0.1 backup.remote.port=1111 -backup.mysql.path=/workspace/mysqlbak/test \ No newline at end of file +backup.mysql.path=/workspace/mysqlbak/test +backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh \ No newline at end of file From 617d005e0d71b98213f9b9b4fa3330e645d401ab Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 18 Mar 2025 14:08:01 +0800 Subject: [PATCH 29/29] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=A6=E7=BB=86?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../industry/software/manage/tasks/BackupTask.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index d08bd94..53c2d37 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -159,6 +159,7 @@ public class BackupTask { .setParentId("") .setResponse(""); userAccessLogMapper.insert(userAccessLog); + log.info("删除文件成功,路径 {}", file.getAbsolutePath()); } } @@ -169,11 +170,13 @@ public class BackupTask { String sqlDirs = elePropertyConfig.getSqlDirs(); File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); if (ArrayUtil.isEmpty(files)) { + log.info("SQL文件没有找到。"); return; } File maxModifyTimeFile = Arrays.stream(files).filter(File::isFile).filter(File::exists).max(Comparator.comparingLong(File::lastModified)).orElse(null); if (maxModifyTimeFile == null) { + log.info("没有找到最新的SQL文件"); return; } String fileName = maxModifyTimeFile.getName(); @@ -182,6 +185,7 @@ public class BackupTask { .eq(FileBackupLog::getSource, FileBackupSource.SQL.code)); List successBacks = fileBackupLogs.stream().filter(FileBackupLog::isBackupSuccess).collect(Collectors.toList()); if (CollUtil.isNotEmpty(successBacks)) { + log.info("最新的SQL文件已经备份过。"); return; } @@ -212,6 +216,7 @@ public class BackupTask { .set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail()) .set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess())); } + log.info("备份SQL文件成功,文件路径 {}", maxModifyTimeFile.getAbsolutePath()); } catch (Exception e) { log.error("备份SQL文件异常,原因 {}", e.getMessage(), e); }