From b5c8486364e0538c09565135c4b58631af88e589 Mon Sep 17 00:00:00 2001 From: ant Date: Wed, 5 Jun 2024 19:00:01 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=94=B9=20=E7=BB=93=E6=9E=84=20?= =?UTF-8?q?2.=20oss=20=E6=B7=BB=E5=8A=A0=E8=BF=9C=E7=A8=8B=E8=B0=83?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chushang/oss/constants/OssConstants.java | 6 +++ .../chushang/oss/feign/RemoteOssService.java | 29 ++++++++++++++ .../oss/controller/FileController.java | 23 +---------- .../oss/remote/RemoteFileController.java | 38 +++++++++++++++++++ .../oss/service/FileSourceService.java | 28 +++++++++++++- .../com/chushang/oss/service/OcrService.java | 2 +- .../oss/service/impl/OcrServiceImpl.java | 5 ++- .../system/constants/SystemConstants.java | 2 +- .../system/feign/RemoteDataScopeService.java | 27 ------------- .../system/feign/RemoteLoginInfoService.java | 2 +- .../system/feign/RemoteUserService.java | 2 +- .../remote/RemoteDataScopeController.java | 24 ------------ .../remote/RemoteLoginInfoController.java | 4 +- .../system/remote/RemoteUserController.java | 2 +- 14 files changed, 112 insertions(+), 82 deletions(-) create mode 100644 chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/constants/OssConstants.java create mode 100644 chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/feign/RemoteOssService.java create mode 100644 chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/remote/RemoteFileController.java delete mode 100644 chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java delete mode 100644 chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/constants/OssConstants.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/constants/OssConstants.java new file mode 100644 index 0000000..b6f27fa --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/constants/OssConstants.java @@ -0,0 +1,6 @@ +package com.chushang.oss.constants; + +public interface OssConstants { + String OSS_SERVICE = "oss-service"; + String APPLICATION_CONTENT_PATH = "/oss"; +} diff --git a/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/feign/RemoteOssService.java b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/feign/RemoteOssService.java new file mode 100644 index 0000000..a8154c2 --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-feign/src/main/java/com/chushang/oss/feign/RemoteOssService.java @@ -0,0 +1,29 @@ +package com.chushang.oss.feign; + +import com.chushang.common.core.constant.SecurityConstants; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.oss.constants.OssConstants; +import com.chushang.oss.entity.vo.FileSourceVo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.multipart.MultipartFile; + +import java.util.List; + +@FeignClient(contextId = "ossFeign", + value = OssConstants.OSS_SERVICE, + path = OssConstants.APPLICATION_CONTENT_PATH + "/remote/file" +) +public interface RemoteOssService { + + @PostMapping(value = "/upload") + Result> uploadFile(@RequestParam(value = "files") MultipartFile[] files, + @RequestParam(value = "ocrType", required = false) String ocrType, + @RequestParam(value = "sealFlag", required = false, defaultValue= "false") Boolean sealFlag, + @RequestParam(value = "formats", required = false) String formats, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java index fef2562..49da746 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/controller/FileController.java @@ -11,6 +11,7 @@ import com.chushang.oss.entity.FileSourceInfo; import com.chushang.oss.entity.dto.OcrDTO; import com.chushang.oss.entity.vo.FileSourceVo; import com.chushang.oss.enums.OcrTypeEnum; +import com.chushang.oss.remote.RemoteFileController; import com.chushang.oss.service.FileSourceService; import com.chushang.oss.service.OcrService; import lombok.extern.slf4j.Slf4j; @@ -31,9 +32,6 @@ public class FileController { @Resource FileSourceService fileSourceService; - @Resource - OcrService ocrService; - /** * 文件上传 */ @@ -44,24 +42,7 @@ public class FileController { @RequestParam(value = "sealFlag", required = false, defaultValue= "false") Boolean sealFlag, @RequestParam(value = "formats", required = false) String formats) { - List result = new ArrayList<>(); - for (MultipartFile file : files) { - FileSourceVo info = fileSourceService.addFile(file, sealFlag, formats); - if (StrUtil.isNotEmpty(ocrType)) { - OcrDTO ocr = new OcrDTO(); - OcrTypeEnum ocrTypeEnum = OcrTypeEnum.findByCode(ocrType); - if (ocrTypeEnum != OcrTypeEnum.NONE) { - ocr.setOcrType(ocrTypeEnum); - ocr.setImgPath(info.getFilePath()); - Result ocrInfo = ocrService.ocr(ocr); - if (ocrInfo.isSuccess()) { - info.setOcr(ocrInfo.getData()); - } - } - } - result.add(info); - } - return AjaxResult.success(result); + return AjaxResult.success(fileSourceService.addFile(files, ocrType, sealFlag, formats)); } @GetMapping(value="/{fid}/preview") diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/remote/RemoteFileController.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/remote/RemoteFileController.java new file mode 100644 index 0000000..a1c2efd --- /dev/null +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/remote/RemoteFileController.java @@ -0,0 +1,38 @@ +package com.chushang.oss.remote; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.web.AjaxResult; +import com.chushang.common.core.web.Result; +import com.chushang.common.log.annotation.SysLog; +import com.chushang.common.log.enums.BusinessType; +import com.chushang.oss.entity.dto.OcrDTO; +import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.enums.OcrTypeEnum; +import com.chushang.oss.feign.RemoteOssService; +import com.chushang.oss.service.FileSourceService; +import com.chushang.oss.service.OcrService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@RestController +@RequestMapping(value = "/file/remote") +public class RemoteFileController implements RemoteOssService { + @Resource + FileSourceService fileSourceService; + @Override + @SysLog(value = "feign文件上传", businessType = BusinessType.INSERT) + @PostMapping(value = "/upload") + public Result> uploadFile(MultipartFile[] files, String ocrType, Boolean sealFlag, String formats, String source) { + return Result.ok(fileSourceService.addFile(files, ocrType, sealFlag, formats)); + } + +} diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java index 91153ab..4db7beb 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/FileSourceService.java @@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjUtil; +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -14,7 +16,9 @@ import com.chushang.common.core.util.IPUtils; import com.chushang.common.core.util.ServletUtils; import com.chushang.common.mybatis.enums.Operator; import com.chushang.oss.entity.FileSourceInfo; +import com.chushang.oss.entity.dto.OcrDTO; import com.chushang.oss.entity.vo.FileSourceVo; +import com.chushang.oss.enums.OcrTypeEnum; import com.chushang.oss.mapper.FileSourceMapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; @@ -31,6 +35,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.time.ZonedDateTime; +import java.util.ArrayList; import java.util.List; /** @@ -47,6 +52,8 @@ public class FileSourceService OssService ossService; @Resource RedissonClient redissonClient; + @Resource + OcrService ocrService; @Value("${config.oss.storage}") private String storage; @@ -63,7 +70,8 @@ public class FileSourceService * @param sealFlag * @param formats */ - public FileSourceVo addFile(MultipartFile file, Boolean sealFlag, String formats) { + public FileSourceVo addFile(MultipartFile file, Boolean sealFlag, String formats) + { String ip = IPUtils.clientIp(ServletUtils.getRequest()); String fid = generateFid(); String fName = file.getOriginalFilename(); @@ -113,6 +121,24 @@ public class FileSourceService return vo; } + public List addFile(MultipartFile[] files,String ocrType, Boolean sealFlag, String formats){ + List result = new ArrayList<>(); + for (MultipartFile file : files) { + FileSourceVo info = addFile(file, sealFlag, formats); + if (StrUtil.isNotEmpty(ocrType)) { + OcrDTO ocr = new OcrDTO(); + OcrTypeEnum ocrTypeEnum = OcrTypeEnum.findByCode(ocrType); + if (ocrTypeEnum != OcrTypeEnum.NONE) { + ocr.setOcrType(ocrTypeEnum); + ocr.setImgPath(info.getFilePath()); + JSONObject ocrInfo = ocrService.ocr(ocr); + info.setOcr(ocrInfo); + } + } + result.add(info); + } + return result; + } public void getFileStream(String fid, HttpServletResponse response, boolean convertText) { // 文件信息 diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java index 32eaf2b..448163d 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/OcrService.java @@ -5,5 +5,5 @@ import com.chushang.common.core.web.Result; import com.chushang.oss.entity.dto.OcrDTO; public interface OcrService { - Result ocr(OcrDTO ocr); + JSONObject ocr(OcrDTO ocr); } diff --git a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/OcrServiceImpl.java b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/OcrServiceImpl.java index 267f630..d73e12d 100644 --- a/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/OcrServiceImpl.java +++ b/chushang-modules/chushang-module-oss/oss-service/src/main/java/com/chushang/oss/service/impl/OcrServiceImpl.java @@ -1,6 +1,7 @@ package com.chushang.oss.service.impl; import com.alibaba.fastjson2.JSONObject; +import com.chushang.common.core.exception.ResultException; import com.chushang.common.core.web.Result; import com.chushang.oss.entity.dto.OcrDTO; import com.chushang.oss.service.OcrService; @@ -14,8 +15,8 @@ public class OcrServiceImpl implements OcrService { * 尚未接入ocr */ @Override - public Result ocr(OcrDTO ocr) { + public JSONObject ocr(OcrDTO ocr) { log.error("尚未接入ocr"); - return Result.failed("尚未接入ocr"); + throw new ResultException("尚未接入ocr"); } } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/constants/SystemConstants.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/constants/SystemConstants.java index 713250f..a097cbc 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/constants/SystemConstants.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/constants/SystemConstants.java @@ -6,5 +6,5 @@ package com.chushang.system.constants; */ public interface SystemConstants { String SYSTEM_SERVICE = "system-service"; - String APPLICATION_NAME = "/system"; + String APPLICATION_CONTENT_PATH = "/system"; } diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java deleted file mode 100644 index 24f22e3..0000000 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteDataScopeService.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.chushang.system.feign; - -import com.chushang.common.core.constant.SecurityConstants; -import com.chushang.datascope.entity.DataScopeEntity; -import com.chushang.system.constants.SystemConstants; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestHeader; -import org.springframework.web.bind.annotation.RequestParam; - -import java.util.List; - -/** - * 用于数据权限 判断远程调用 - */ -@FeignClient(contextId = "remoteDataScopeService", - value = SystemConstants.SYSTEM_SERVICE, - path = SystemConstants.APPLICATION_NAME + "/data/scope" -) -public interface RemoteDataScopeService { - - @GetMapping(value = "/dept/list") - public List listDeptIds(@RequestParam(value = "dataScope") DataScopeEntity dataScope, - @RequestHeader(SecurityConstants.FROM_SOURCE) String source); - -} diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteLoginInfoService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteLoginInfoService.java index 3a2414a..fca9ad1 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteLoginInfoService.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteLoginInfoService.java @@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestHeader; */ @FeignClient(contextId = "remoteLoginInfoService", value = SystemConstants.SYSTEM_SERVICE, - path = SystemConstants.APPLICATION_NAME + "/log" + path = SystemConstants.APPLICATION_CONTENT_PATH + "/log/remote" ) public interface RemoteLoginInfoService { diff --git a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java index f9c3f52..112bb69 100644 --- a/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java +++ b/chushang-modules/chushang-module-system/system-feign/src/main/java/com/chushang/system/feign/RemoteUserService.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RequestHeader; */ @FeignClient(contextId = "remoteUserService", value = SystemConstants.SYSTEM_SERVICE, - path = SystemConstants.APPLICATION_NAME + "/user" + path = SystemConstants.APPLICATION_CONTENT_PATH + "/user/remote" ) public interface RemoteUserService { diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java deleted file mode 100644 index 9c5ba08..0000000 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteDataScopeController.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.chushang.system.remote; - -import com.chushang.datascope.entity.DataScopeEntity; -import com.chushang.system.feign.RemoteDataScopeService; -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 java.util.List; - -@RestController -@RequestMapping(value = "/data/scope") -public class RemoteDataScopeController implements RemoteDataScopeService { - /** - * 获取对应的部门数据 - */ - @Override - @GetMapping(value ="/dept/list") - public List listDeptIds(@RequestParam(value = "dataScope") DataScopeEntity dataScope, String source) - { - return null; - } -} diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java index 090eff5..58cdd98 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteLoginInfoController.java @@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*; import java.util.Arrays; @RestController -@RequestMapping(value = "/log/login/info") +@RequestMapping(value = "/log/remote") public class RemoteLoginInfoController implements RemoteLoginInfoService { @Autowired @@ -25,7 +25,7 @@ public class RemoteLoginInfoController implements RemoteLoginInfoService { @Override @InnerAuth - @PostMapping + @PostMapping("/login/info") public Result saveLoginInfo(@RequestBody SysLoginInfo sysLogininfo, String source) { return Result.ok(sysLoginInfoService.saveLoginInfo(sysLogininfo).isSuccess()); } diff --git a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java index 9a656d9..b2c0b84 100644 --- a/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java +++ b/chushang-modules/chushang-module-system/system-service/src/main/java/com/chushang/system/remote/RemoteUserController.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Set; @RestController -@RequestMapping(value = "/user") +@RequestMapping(value = "/user/remote") public class RemoteUserController implements RemoteUserService { @Autowired