forked from kidgrow-microservices-platform

houruijun
2020-08-21 db47aa3a936d9843fd4294d8b703bef04f81f1d6
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java
@@ -11,6 +11,7 @@
import com.kidgrow.filecenter.properties.FileServerProperties;
import com.kidgrow.filecenter.service.impl.AbstractIFileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -20,8 +21,6 @@
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
@@ -64,9 +63,14 @@
            return fileProperties.getType();
        }
        @Value("${spring.profiles.active}")
        private String OssPathEn;
        @Override
        protected void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception {
            String clientID = httpServletRequest.getHeader(SecurityConstants.CLIENT_HEADER);
            String hospitalID = httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER);
            String depID = httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER);
            String folderByDate = DateUtil.formatDate(new Date());
            int begin = file.getOriginalFilename().indexOf(".");
            int last = file.getOriginalFilename().length();
@@ -74,10 +78,11 @@
            String fileName = UUID.randomUUID().toString().replaceAll("-", "") + fileType;
            String fileFolder = "";
            if (clientID.equals("hospital")) {//医院端平台,
                fileFolder = FilePath(fileInfo.getImgType(), folderByDate, null, null);
                fileFolder = FilePath(fileInfo.getImgType(), folderByDate, hospitalID, depID);
                fileUpLoadOss(fileInfo, fileFolder + fileName, file.getInputStream());
            } else {
                fileUpLoadOss(fileInfo, fileProperties.getOss().getFolder() + folderByDate + "/" + fileName, file.getInputStream());
                fileFolder = FilePath(fileInfo.getImgType(), folderByDate, hospitalID, depID);
                fileUpLoadOss(fileInfo, fileFolder + fileName, file.getInputStream());
            }
        }
@@ -95,12 +100,13 @@
         * @param newFilePath 上传到的文件路径
         * @param fileStream  要上传的文件流
         */
        @Override
        public void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) {
            ossClient.putObject(fileProperties.getOss().getBucketName(), newFilePath, fileStream);
            fileInfo.setUrl(fileProperties.getOss().getDomain() + newFilePath);
        }
        @Override
        public OSSObject down(String url) {
            GetObjectRequest request = new GetObjectRequest(fileProperties.getOss().getBucketName(), url);
            return ossClient.getObject(request);
@@ -112,44 +118,42 @@
         * @param imgType
         * @return
         */
        @Override
        public String FilePath(String imgType, String folderByDate, String hospitalId, String departmentId) {
            //返回的文件路径
            String fileFolder = "";
            String fileFolder = OssPathEn+"/";
            if (StringUtils.isNotBlank(imgType)) {
                // 光片需要按照根据医院ID,科室ID,日期进行OSS存储
                if (imgType.toLowerCase().equals("xray")) {
                    String hospitalID = httpServletRequest.getHeader(SecurityConstants.USER_HOSPITAL_ID_HEADER);
                    String depID = httpServletRequest.getHeader(SecurityConstants.USER_DEP_ID_HEADER);
                    if (org.apache.commons.lang3.StringUtils.isBlank(hospitalID) &&
                            org.apache.commons.lang3.StringUtils.isBlank(depID)) {
                        fileFolder = "Xray/" + hospitalID + "/" + depID + "/" + folderByDate + "/";
                    if (StringUtils.isNotBlank(hospitalId) &&
                            StringUtils.isNotBlank(departmentId)) {
                        fileFolder += "Xray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/";
                    } else {
                        if (org.apache.commons.lang3.StringUtils.isBlank(hospitalId) &&
                                org.apache.commons.lang3.StringUtils.isBlank(departmentId)) {
                            fileFolder = "Xray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/";
                        } else {
                            fileFolder = "Xray/" + folderByDate + "/";
                        }
                        fileFolder += "Xray/" + folderByDate + "/";
                    }
                } else if (imgType.toLowerCase().equals("app")) {
                    //移动端APP上传
                    if (org.apache.commons.lang3.StringUtils.isBlank(hospitalId) &&
                            org.apache.commons.lang3.StringUtils.isBlank(departmentId)) {
                        fileFolder = "AppXray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/";
                    if (StringUtils.isNotBlank(hospitalId) &&
                            StringUtils.isNotBlank(departmentId)) {
                        fileFolder += "AppXray/" + hospitalId + "/" + departmentId + "/" + folderByDate + "/";
                    } else {
                        fileFolder = "AppXray/" + folderByDate + "/";
                        fileFolder += "AppXray/" + folderByDate + "/";
                    }
                }
                // 医院Logo只保存在一个目录中
                else if (imgType.toLowerCase().equals("logo")) {
                    fileFolder = "HospitalLogo/";
                    fileFolder += "HospitalLogo/";
                } else if (imgType.toLowerCase().equals("doctor")) {
                    fileFolder = "DoctorImage/";
                    fileFolder += "DoctorImage/";
                } else {
                    fileFolder = "OtherImage/" + folderByDate + "/";
                    fileFolder += "OtherImage/" + folderByDate + "/";
                }
            } else {
                fileFolder = "OtherImage/" + folderByDate + "/";
                fileFolder += "OtherImage/" + folderByDate + "/";
            }
            return fileFolder;
        }