From db2b00978eb478cc5f842cb4ba06c29276f6abca Mon Sep 17 00:00:00 2001 From: luliqiang <kidgrow> Date: Mon, 15 Jun 2020 16:15:49 +0800 Subject: [PATCH] FileCenter 扩展Feign调用接口【增加imageType参数(Xray/Logo)】 --- kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 48 insertions(+), 4 deletions(-) diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java index a66e263..aca4c2e 100644 --- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java +++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java @@ -1,6 +1,9 @@ package com.kidgrow.filecenter.config; +import com.aliyun.oss.OSSClient; import com.aliyun.oss.common.auth.DefaultCredentialProvider; +import com.kidgrow.common.constant.SecurityConstants; +import com.kidgrow.common.utils.DateUtil; import com.kidgrow.filecenter.model.FileInfo; import com.kidgrow.filecenter.properties.FileServerProperties; import com.kidgrow.filecenter.service.impl.AbstractIFileService; @@ -8,10 +11,12 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; - -import com.aliyun.oss.OSSClient; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.util.Date; +import java.util.UUID; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -26,6 +31,8 @@ public class AliyunOSSAutoConfigure { @Autowired private FileServerProperties fileProperties; + + /** * 阿里云文件存储client @@ -44,6 +51,9 @@ @Autowired private OSSClient ossClient; + @Autowired + private HttpServletRequest httpServletRequest; + @Override protected String fileType() { return fileProperties.getType(); @@ -51,12 +61,46 @@ @Override protected void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception { - ossClient.putObject(fileProperties.getOss().getBucketName(), fileInfo.getName(), file.getInputStream()); - fileInfo.setUrl(fileProperties.getOss().getDomain() + "/" + fileInfo.getName()); + String clientID= httpServletRequest.getHeader(SecurityConstants.CLIENT_HEADER); + String folderByDate =DateUtil.formatDate(new Date()); + int begin = file.getOriginalFilename().indexOf("."); + int last = file.getOriginalFilename().length(); + String fileType = file.getOriginalFilename().substring(begin, last); + String fileName= UUID.randomUUID().toString().replaceAll("-","")+fileType; + String fileFolder = ""; + if(clientID.equals("hospital")){//医院端平台, + + 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()); + fileInfo.setUrl(fileProperties.getOss().getDomain() + fileProperties.getOss().getFolder() + folderByDate + "/" + fileName); + } } @Override protected boolean deleteFile(FileInfo fileInfo) { + ossClient.deleteObject(fileProperties.getOss().getBucketName(), fileInfo.getName()); return true; } -- Gitblit v1.8.0