kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/FileService.java
@@ -7,6 +7,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestPart; import org.springframework.web.multipart.MultipartFile; @@ -30,9 +31,9 @@ /** * 根据条件查询 * @param file * @param imgType 文件类型:X光片/医院Logo[Xray/Logo] */ @PostMapping(value = "/files-upload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) FileInfo feignUpload(@RequestPart("file") MultipartFile file); FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam("imgType") String imgType); } kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/feign/fallback/FileServiceFallbackFactory.java
@@ -30,7 +30,7 @@ return null; } @Override public FileInfo feignUpload(@RequestPart("file") MultipartFile file) { public FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) { return null; } }; kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-api/src/main/java/com/kidgrow/filecenter/model/FileInfo.java
@@ -35,6 +35,13 @@ * 是否图片 */ private Boolean isImg; /** * 图片类型 * Xray还是logo */ @TableField(exist = false) private String imgType; /** * 上传文件类型 */ kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
@@ -18,6 +18,8 @@ public interface IFileService extends IService<FileInfo> { FileInfo upload(MultipartFile file ) throws Exception; FileInfo upload(MultipartFile file ,String imgType) throws Exception; PageResult<FileInfo> findList(Map<String, Object> params); void delete(String id); kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
@@ -48,6 +48,26 @@ return fileInfo; } @Override public FileInfo upload(MultipartFile file,String imgType) throws Exception { FileInfo fileInfo = FileUtil.getFileInfo(file); FileInfo oldFileInfo = baseMapper.selectById(fileInfo.getId()); if (oldFileInfo != null) { return oldFileInfo; } if (!fileInfo.getName().contains(FILE_SPLIT)) { throw new IllegalArgumentException("缺少后缀名"); } fileInfo.setImgType(imgType); // X光片或者Logo uploadFile(file, fileInfo); // 设置文件来源 fileInfo.setSource(fileType()); // 将文件信息保存到数据库 baseMapper.insert(fileInfo); return fileInfo; } /** * 文件来源 * kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/util/FileUtil.java
@@ -32,7 +32,21 @@ fileInfo.setId(IdUtil.fastSimpleUUID()); fileInfo.setName(file.getOriginalFilename()); fileInfo.setContentType(file.getContentType()); fileInfo.setIsImg(fileInfo.getContentType().startsWith("image/")); if (fileInfo.getContentType().startsWith("image/")) { fileInfo.setIsImg(true); } else if (fileInfo.getContentType().startsWith("multipart")){ String extendName = file.getOriginalFilename().substring(file.getOriginalFilename().indexOf(".")+1,file.getOriginalFilename().length()).toLowerCase(); if (extendName.equals("png") || extendName.equals("bmp") || extendName.equals("jpg") || extendName.equals("jpeg") || extendName.equals("gif")) { fileInfo.setIsImg(true); } else { fileInfo.setIsImg(false); } } else { fileInfo.setIsImg(false); } fileInfo.setSize(file.getSize()); fileInfo.setCreateTime(new Date()); return fileInfo; kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java
@@ -67,13 +67,30 @@ int last = file.getOriginalFilename().length(); String fileType = file.getOriginalFilename().substring(begin, last); String fileName= UUID.randomUUID().toString().replaceAll("-","")+fileType; if(clientID.equals("hospital")){//医院端平台,根据医院ID,科室ID进行OSS存储 String orgID=httpServletRequest.getHeader(SecurityConstants.USER_ORG_ID_HEADER); String depID=httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER); String fileFolder="KidgrowAI/"+orgID+"/"+depID+"/"; String fileFolder = ""; if(clientID.equals("hospital")){//医院端平台, ossClient.putObject(fileProperties.getOss().getBucketName(), fileFolder + folderByDate + "/" + fileName, file.getInputStream()); fileInfo.setUrl(fileProperties.getOss().getDomain() + fileFolder + folderByDate + "/" + fileName); if ((fileInfo.getImgType() != null)) { // 光片需要按照根据医院ID,科室ID,日期进行OSS存储 if (fileInfo.getImgType().toLowerCase().equals("xray")) { String hospitalID = httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER); String depID = httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER); fileFolder = "Xray/" + hospitalID + "/" + depID + "/"+ folderByDate + "/"; } // 医院Logo只保存在一个目录中 else if (fileInfo.getImgType().toLowerCase().equals("logo")) { fileFolder = "HospitalLogo/"; } else { fileFolder = "OtherImage/"+ folderByDate + "/"; } } else { fileFolder = "OtherImage/"+ folderByDate + "/"; } ossClient.putObject(fileProperties.getOss().getBucketName(), fileFolder + fileName, file.getInputStream()); fileInfo.setUrl(fileProperties.getOss().getDomain() + fileFolder + fileName); } else { ossClient.putObject(fileProperties.getOss().getBucketName(), fileProperties.getOss().getFolder() + folderByDate + "/" + fileName, file.getInputStream()); kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
@@ -46,9 +46,9 @@ * @return * @throws Exception */ @PostMapping(value="/files-upload",consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo feignUpload(MultipartFile file) throws Exception { return fileService.upload(file); @PostMapping(value="/files-upload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE) public FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception { return fileService.upload(file,imgType); } kidgrow-business/kidgrow-filecenter/pom.xml
@@ -23,13 +23,13 @@ <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>3.3.0</version> <version>3.8.0</version> </dependency> <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form-spring</artifactId> <version>3.3.0</version> <version>3.8.0</version> </dependency> <dependency> <groupId>com.kidgrow</groupId>