From fd81961ddb7739151571b4d062546deed66a33ee Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 8 Apr 2025 16:24:14 +0800 Subject: [PATCH] clean code --- .../software/manage/ai/ThreadUtil.java | 8 +- .../manage/aop/FilePermissionCheckAspect.java | 1 - .../manage/config/LoginInterceptor.java | 113 +++++++++--------- .../service/serviceimpl/ChatService.java | 82 +++---------- .../service/serviceimpl/CommonService.java | 1 - .../service/serviceimpl/EdPrjServiceImpl.java | 1 - .../serviceimpl/PermissionServiceImpl.java | 1 - .../software/manage/tasks/BackupTask.java | 1 - 8 files changed, 83 insertions(+), 125 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/ai/ThreadUtil.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/ai/ThreadUtil.java index c826417..40318ab 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/ai/ThreadUtil.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/ai/ThreadUtil.java @@ -4,7 +4,13 @@ import java.util.concurrent.*; public final class ThreadUtil { - private static final ExecutorService THREAD_POOL = new ThreadPoolExecutor(1, 1, 3, TimeUnit.SECONDS, new LinkedBlockingDeque<>(100), Executors.defaultThreadFactory(), new ThreadPoolExecutor.DiscardOldestPolicy()); + private static final ExecutorService THREAD_POOL = new ThreadPoolExecutor(1, + 1, + 3, + TimeUnit.SECONDS, + new LinkedBlockingDeque<>(100), + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.DiscardOldestPolicy()); public static ExecutorService getThreadPool() { return THREAD_POOL; 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 113087b..5073d2a 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 @@ -1,7 +1,6 @@ package com.electromagnetic.industry.software.manage.aop; import com.electromagnetic.industry.software.common.annotations.RequiredPermission; -import com.electromagnetic.industry.software.common.cons.ElectromagneticConstants; import com.electromagnetic.industry.software.common.enums.FilePermission; import com.electromagnetic.industry.software.common.exception.PermissionDeniedException; import com.electromagnetic.industry.software.common.util.UserThreadLocal; 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 180c311..891e21d 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 @@ -136,52 +136,23 @@ public class LoginInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { - long accessStartTime = (long) request.getSession().getAttribute("accessStartTime"); - long accessEndTime = System.currentTimeMillis(); - UserOperation userOperation = ((HandlerMethod) handler).getMethod().getAnnotation(UserOperation.class); - if (ObjectUtil.isEmpty(userOperation)) { - return; - } + try { + long accessStartTime = (long) request.getSession().getAttribute("accessStartTime"); + long accessEndTime = System.currentTimeMillis(); + UserOperation userOperation = ((HandlerMethod) handler).getMethod().getAnnotation(UserOperation.class); - String reqArgs = UserThreadLocal.getReqArgs(); - - UserLoginInfo user = Optional.of(UserThreadLocal.getUser()).orElse(new UserLoginInfo()); - List successInfoList = user.getSuccessInfoList(); - - if (CollUtil.isEmpty(successInfoList)) { - ElectromagneticResult res = user.getResult(); - UserAccessLog userAccessLog = new UserAccessLog() - .setId(IdWorker.getSnowFlakeIdString()) - .setUserId(user.getUserId()) - .setAccessStartTime(DateUtil.date(accessStartTime)) - .setAccessEndTime(DateUtil.date(accessEndTime)) - .setAccessDuration(accessEndTime - accessStartTime) - .setAction(userOperation.value()) - .setRequestUrl(request.getRequestURL().toString()) - .setRequestIp(parseIpFromUrl(request.getRequestURL().toString())) - .setReqArgs(reqArgs) - .setRemoteAddr(getRealIp(request)) - .setAccessSuccess(true) - .setCreateTime(new Date()) - .setOperationModule(userOperation.modelName().key) - .setOperationMsg(res.getErrorMessage()) - .setDataId("") - .setParentId(""); - - if (res != null) { - userAccessLog.setResponse(JSONUtil.toJsonStr(res)); - if (!res.getSuccess()) { - userAccessLog.setAccessSuccess(false); - userAccessLog.setOperationMsg(res.getErrorMessage()); - userAccessLog.setExceptionDetail(UserThreadLocal.getUser().getExceptionDetail()); - } - } else { // 返回为ResponseEntity,且状态为失败。 - userAccessLog.setAccessSuccess(false); + if (ObjectUtil.isEmpty(userOperation)) { + return; } - userAccessLogMapper.insert(userAccessLog); - } else { - for (AccessSuccessInfo accessSuccessInfo : successInfoList) { + + String reqArgs = UserThreadLocal.getReqArgs(); + + UserLoginInfo user = Optional.of(UserThreadLocal.getUser()).orElse(new UserLoginInfo()); + List successInfoList = user.getSuccessInfoList(); + + if (CollUtil.isEmpty(successInfoList)) { + ElectromagneticResult res = user.getResult(); UserAccessLog userAccessLog = new UserAccessLog() .setId(IdWorker.getSnowFlakeIdString()) .setUserId(user.getUserId()) @@ -196,26 +167,60 @@ public class LoginInterceptor implements HandlerInterceptor { .setAccessSuccess(true) .setCreateTime(new Date()) .setOperationModule(userOperation.modelName().key) - .setOperationMsg(accessSuccessInfo.getSuccessMsg()) - .setDataId(accessSuccessInfo.getDataId()) - .setParentId(accessSuccessInfo.getParentId()); + .setOperationMsg(res.getErrorMessage()) + .setDataId("") + .setParentId(""); - ElectromagneticResult result = user.getResult(); - if (result != null) { - userAccessLog.setResponse(JSONUtil.toJsonStr(result)); - if (!result.getSuccess()) { + if (res != null) { + userAccessLog.setResponse(JSONUtil.toJsonStr(res)); + if (!res.getSuccess()) { userAccessLog.setAccessSuccess(false); - userAccessLog.setOperationMsg(result.getErrorMessage()); + userAccessLog.setOperationMsg(res.getErrorMessage()); userAccessLog.setExceptionDetail(UserThreadLocal.getUser().getExceptionDetail()); } } else { // 返回为ResponseEntity,且状态为失败。 userAccessLog.setAccessSuccess(false); } userAccessLogMapper.insert(userAccessLog); - } - } + } else { + for (AccessSuccessInfo accessSuccessInfo : successInfoList) { + UserAccessLog userAccessLog = new UserAccessLog() + .setId(IdWorker.getSnowFlakeIdString()) + .setUserId(user.getUserId()) + .setAccessStartTime(DateUtil.date(accessStartTime)) + .setAccessEndTime(DateUtil.date(accessEndTime)) + .setAccessDuration(accessEndTime - accessStartTime) + .setAction(userOperation.value()) + .setRequestUrl(request.getRequestURL().toString()) + .setRequestIp(parseIpFromUrl(request.getRequestURL().toString())) + .setReqArgs(reqArgs) + .setRemoteAddr(getRealIp(request)) + .setAccessSuccess(true) + .setCreateTime(new Date()) + .setOperationModule(userOperation.modelName().key) + .setOperationMsg(accessSuccessInfo.getSuccessMsg()) + .setDataId(accessSuccessInfo.getDataId()) + .setParentId(accessSuccessInfo.getParentId()); - UserThreadLocal.remove(); + ElectromagneticResult result = user.getResult(); + if (result != null) { + userAccessLog.setResponse(JSONUtil.toJsonStr(result)); + if (!result.getSuccess()) { + userAccessLog.setAccessSuccess(false); + userAccessLog.setOperationMsg(result.getErrorMessage()); + userAccessLog.setExceptionDetail(UserThreadLocal.getUser().getExceptionDetail()); + } + } else { // 返回为ResponseEntity,且状态为失败。 + userAccessLog.setAccessSuccess(false); + } + userAccessLogMapper.insert(userAccessLog); + } + } + } catch (Exception e) { + log.warn("请求后置异常,原因 {}", e.getMessage(), e); + } finally { + UserThreadLocal.remove(); + } } public Boolean isTokenValid(String tokenStr) { diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java index 283fbe5..72b5011 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/ChatService.java @@ -4,6 +4,7 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.digest.DigestUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.electromagnetic.industry.software.common.enums.EffectFlagEnum; @@ -112,9 +113,14 @@ public class ChatService { documents = new TokenTextSplitter().apply(documentReader.get()); Files.deleteIfExists(tempFile); } - case "xls" -> { - String filePath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".xls"; - List pageInfo = OfficeFileUtil.parseXlsByPage(filePath); + case "xls", "xlsx" -> { + String filePath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + "." + fileType; + List pageInfo; + if (StrUtil.equals("xlsx", filePath)) { + pageInfo = OfficeFileUtil.parseXlsxByPage(filePath); + } else { + pageInfo = OfficeFileUtil.parseXlsByPage(filePath); + } for (PageFile pageFile : pageInfo) { Map metaData = Map.of("page_number", pageFile.getPageNumber(), "file_name", file.getOriginalFilename()); Document document = new Document(pageFile.getContent(), metaData); @@ -122,20 +128,14 @@ public class ChatService { } FileUtil.del(filePath); } - case "xlsx" -> { - String filePath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".xlsx"; - List pageInfo = OfficeFileUtil.parseXlsxByPage(filePath); - for (PageFile pageFile : pageInfo) { - Map metaData = Map.of("page_number", pageFile.getPageNumber(), "file_name", file.getOriginalFilename()); - Document document = new Document(pageFile.getContent(), metaData); - documents.add(document); - } - FileUtil.del(filePath); - } - case "doc" -> { - String wordPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".doc"; + case "doc", "docx", "ppt", "pptx" -> { String pdfPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".pdf"; - OfficeFileUtil.doc2pdf(wordPath, pdfPath); + String srcPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + "." + fileType; + if (StrUtil.equals(fileType, "doc") || StrUtil.equals(fileType, "docx")) { + OfficeFileUtil.doc2pdf(srcPath, pdfPath); + } else { + OfficeFileUtil.ppt2pdf(srcPath, pdfPath); + } Path path = new File(pdfPath).toPath(); PagePdfDocumentReader reader = new PagePdfDocumentReader(String.valueOf(path.toUri().toURL())); List tmp = reader.get(); @@ -146,55 +146,7 @@ public class ChatService { documents.add(doc); } Files.deleteIfExists(path); - FileUtil.del(wordPath); - } - case "docx" -> { - String wordPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".docx"; - String pdfPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".pdf"; - OfficeFileUtil.doc2pdf(wordPath, pdfPath); - Path path = new File(pdfPath).toPath(); - PagePdfDocumentReader reader = new PagePdfDocumentReader(String.valueOf(path.toUri().toURL())); - List tmp = reader.get(); - for (Document document : tmp) { - Map metadata = document.getMetadata(); - Map metaData = Map.of("page_number", metadata.get("page_number"), "file_name", file.getOriginalFilename()); - Document doc = new Document(Objects.requireNonNull(document.getText()), metaData); - documents.add(doc); - } - Files.deleteIfExists(path); - FileUtil.del(wordPath); - } - case "ppt" -> { - String pptPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".ppt"; - String pdfPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".pdf"; - OfficeFileUtil.ppt2pdf(pptPath, pdfPath); - Path path = new File(pdfPath).toPath(); - PagePdfDocumentReader reader = new PagePdfDocumentReader(String.valueOf(path.toUri().toURL())); - List tmp = reader.get(); - for (Document document : tmp) { - Map metadata = document.getMetadata(); - Map metaData = Map.of("page_number", metadata.get("page_number"), "file_name", file.getOriginalFilename()); - Document doc = new Document(Objects.requireNonNull(document.getText()), metaData); - documents.add(doc); - } - Files.deleteIfExists(path); - FileUtil.del(pptPath); - } - case "pptx" -> { - String pptxPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".pptx"; - String pdfPath = elePropertyConfig.getEleTmpPath() + File.separator + fileMd5 + ".pdf"; - OfficeFileUtil.ppt2pdf(pptxPath, pdfPath); - Path path = new File(pdfPath).toPath(); - PagePdfDocumentReader reader = new PagePdfDocumentReader(String.valueOf(path.toUri().toURL())); - List tmp = reader.get(); - for (Document document : tmp) { - Map metadata = document.getMetadata(); - Map metaData = Map.of("page_number", metadata.get("page_number"), "file_name", file.getOriginalFilename()); - Document doc = new Document(Objects.requireNonNull(document.getText()), metaData); - documents.add(doc); - } - Files.deleteIfExists(path); - FileUtil.del(pptxPath); + FileUtil.del(srcPath); } case "pdf" -> { Path tempFile = saveUploadedFileToTemp(file); 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 c7043c8..d843ac2 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 @@ -29,7 +29,6 @@ import com.electromagnetic.industry.software.manage.service.FileFormatService; import com.electromagnetic.industry.software.manage.service.FileSystemService; import jakarta.annotation.PostConstruct; import jakarta.annotation.Resource; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; 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 cc4b45e..e48008a 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 @@ -27,7 +27,6 @@ import com.electromagnetic.industry.software.manage.pojo.resp.ProjectVO; import com.electromagnetic.industry.software.manage.service.EdPrjService; import com.electromagnetic.industry.software.manage.service.FileSystemService; import jakarta.annotation.Resource; -import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java index 2e76c06..1bc8286 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/PermissionServiceImpl.java @@ -19,7 +19,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; -import java.util.stream.Collectors; @Slf4j @Service 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 7cc630f..a31ccc6 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 @@ -37,7 +37,6 @@ import java.util.Arrays; import java.util.Comparator; import java.util.Date; import java.util.List; -import java.util.stream.Collectors; @Component @Slf4j