forked from kidgrow-microservices-platform

zhaoxiaohao
2020-06-17 b47352c072e8088d2bd29a4933c546f130d0143c
Merge branch 'dev' of http://192.168.2.240:7070/r/kidgrow-microservices-platform into dev
11 files modified
1 files added
270 ■■■■■ changed files
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java 9 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java 67 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java 61 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java 12 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java 12 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java 12 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml 2 ●●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java 12 ●●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java 9 ●●●●● patch | view | raw | blame | history
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java 61 ●●●●● patch | view | raw | blame | history
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml 6 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/IFileService.java
@@ -23,4 +23,13 @@
    PageResult<FileInfo> findList(Map<String, Object> params);
    void delete(String id);
    /**
     * 上传图片-并缩略,其实是给文件服务器存储了两个文件 一个原文件  一个缩略图文件
     * @param file form内的文件数据
     * @param imgType 业务类型 例如logo
     * @return 返回的实体中  path字段保存的是缩略图地址
     * @throws Exception
     */
    FileInfo uploadForThumbnails(MultipartFile file ,String imgType) throws Exception;
}
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-biz/src/main/java/com/kidgrow/filecenter/service/impl/AbstractIFileService.java
@@ -1,19 +1,27 @@
package com.kidgrow.filecenter.service.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.kidgrow.common.constant.CommonConstant;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.utils.DateUtil;
import com.kidgrow.common.utils.MultipartFileUtils;
import com.kidgrow.common.utils.RandomValueUtils;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.filecenter.mapper.FileMapper;
import com.kidgrow.filecenter.model.FileInfo;
import com.kidgrow.filecenter.service.IFileService;
import com.kidgrow.filecenter.util.FileUtil;
import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.collections4.MapUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -82,6 +90,8 @@
     * @param fileInfo
     */
    protected abstract void uploadFile(MultipartFile file, FileInfo fileInfo) throws Exception;
    protected abstract void fileUpLoadOss(FileInfo fileInfo,String newFilePath, InputStream fileStream);
    protected abstract String FilePath(String imgType,String folderByDate);
    /**
     * 删除文件
@@ -110,5 +120,56 @@
        List<FileInfo> list = baseMapper.findList(page, params);
        return PageResult.<FileInfo>builder().data(list).code(0).count(page.getTotal()).build();
    }
    /**
     * 上传图片-并缩略,其实是给文件服务器存储了两个文件 一个原文件  一个缩略图文件
     * @param file form内的文件数据
     * @param imgType 业务类型 例如logo
     * @return 返回的实体中  path字段保存的是缩略图地址
     * @throws Exception
     */
    @Override
    public FileInfo uploadForThumbnails(MultipartFile file, String imgType) throws Exception {
        FileInfo fileInfo=this.upload(file,imgType);
        if (StringUtils.isNotBlank(fileInfo.getUrl())) {
            //生成缩略图上传
            File nowFile= MultipartFileUtils.multipartFileToFile(file);
            //暂存目录  发布后真实存在的磁盘目录
            String result = CommonConstant.TEMP_IMAGE_PATH;
            //文件扩展名
            String suffix=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
            String newFileName= RandomValueUtils.uuid()+suffix;
            //生成缩略图
            Thumbnails.of(nowFile).size(CommonConstant.TH_IMG_WIDTH, CommonConstant.TH_IMG_HEIGHT).toFile(result+newFileName);
            File thuFile= new File(result+newFileName);
            if (thuFile.exists()) {
                //将生成的文件转换为流
                InputStream inputStream=new FileInputStream(new File(result+newFileName));
                String folderByDate = DateUtil.formatDate(new Date());
                String filefloder=this.FilePath(imgType,folderByDate);
                FileInfo newfileInfo=new FileInfo();
                newfileInfo.setName(newFileName);
                newfileInfo.setId(IdUtil.fastSimpleUUID());
                newfileInfo.setSize(thuFile.length());
                newfileInfo.setIsImg(true);
                newfileInfo.setContentType(file.getContentType());
                newfileInfo.setSource(fileInfo.getSource());
                newfileInfo.setImgType(imgType);
                newfileInfo.setCreateTime(new Date());
                //文件上传到oss
                this.fileUpLoadOss(newfileInfo,filefloder+newFileName,inputStream);
                // 将文件信息保存到数据库
                baseMapper.insert(newfileInfo);
                fileInfo.setPath(newfileInfo.getUrl());
                //删除暂存文件
                MultipartFileUtils.delteTempFile(thuFile);
                inputStream.close();
            }
            return fileInfo;
        }
        else
        {
            return fileInfo;
        }
    }
}
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java
@@ -4,6 +4,7 @@
import com.aliyun.oss.common.auth.DefaultCredentialProvider;
import com.kidgrow.common.constant.SecurityConstants;
import com.kidgrow.common.utils.DateUtil;
import com.kidgrow.common.utils.StringUtils;
import com.kidgrow.filecenter.model.FileInfo;
import com.kidgrow.filecenter.properties.FileServerProperties;
import com.kidgrow.filecenter.service.impl.AbstractIFileService;
@@ -15,6 +16,7 @@
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.InputStream;
import java.util.Date;
import java.util.UUID;
@@ -69,18 +71,52 @@
            String fileName= UUID.randomUUID().toString().replaceAll("-","")+fileType;
            String fileFolder = "";
            if(clientID.equals("hospital")){//医院端平台,
                fileFolder=FilePath(fileInfo.getImgType(),folderByDate);
                fileUpLoadOss(fileInfo,fileFolder  + fileName,file.getInputStream());
            }
            else {
                fileUpLoadOss(fileInfo,fileProperties.getOss().getFolder() + folderByDate + "/" + fileName,file.getInputStream());
            }
        }
                if ((fileInfo.getImgType() != null)) {
        @Override
        protected boolean deleteFile(FileInfo fileInfo) {
            ossClient.deleteObject(fileProperties.getOss().getBucketName(), fileInfo.getName());
            return true;
        }
        /**
         * 给OSS上上传文件
         * @param fileInfo  返回对象
         * @param newFilePath 上传到的文件路径
         * @param fileStream  要上传的文件流
         */
        public void fileUpLoadOss(FileInfo fileInfo,String newFilePath, InputStream fileStream)
        {
            ossClient.putObject(fileProperties.getOss().getBucketName(), newFilePath, fileStream);
            fileInfo.setUrl(fileProperties.getOss().getDomain() + newFilePath);
        }
        /**
         * 组合sso上的文件路径
         * @param imgType
         * @return
         */
        public String FilePath(String imgType,String folderByDate)
        {
            //返回的文件路径
            String fileFolder="";
            if (StringUtils.isNotBlank(imgType)) {
                    // 光片需要按照根据医院ID,科室ID,日期进行OSS存储
                    if (fileInfo.getImgType().toLowerCase().equals("xray")) {
                if (imgType.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")) {
                else if (imgType.toLowerCase().equals("logo")) {
                        fileFolder = "HospitalLogo/";
                    }else if (fileInfo.getImgType().toLowerCase().equals("doctor")) {
                }else if (imgType.toLowerCase().equals("doctor")) {
                        fileFolder = "DoctorImage/";
                    }
                    else {
@@ -90,22 +126,7 @@
                } 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;
            return fileFolder;
        }
    }
}
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/FastdfsAutoConfigure.java
@@ -13,6 +13,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 *
@@ -45,6 +47,16 @@
        }
        @Override
        protected void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) {
        }
        @Override
        protected String FilePath(String imgType, String folderByDate) {
            return null;
        }
        @Override
        protected boolean deleteFile(FileInfo fileInfo) {
            if (fileInfo != null && StrUtil.isNotEmpty(fileInfo.getPath())) {
                StorePath storePath = StorePath.parseFromUrl(fileInfo.getPath());
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/QiniuOSSAutoConfigure.java
@@ -17,6 +17,8 @@
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 *
@@ -88,6 +90,16 @@
        }
        @Override
        protected void fileUpLoadOss(FileInfo fileInfo, String newFilePath, InputStream fileStream) {
        }
        @Override
        protected String FilePath(String imgType, String folderByDate) {
            return null;
        }
        @Override
        protected boolean deleteFile(FileInfo fileInfo) {
            try {
                Response response = bucketManager.delete(fileProperties.getOss().getBucketName(), fileInfo.getPath());
kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/controller/FileController.java
@@ -50,7 +50,17 @@
    public FileInfo feignUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception {
        return fileService.upload(file,imgType);
    }
    /**
     * 文件上传 返回带缩略图地址的对象,缩略图在path字段
     *
     * @param file
     * @return
     * @throws Exception
     */
    @PostMapping(value="/files-thupload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public FileInfo thUpload(@RequestPart("file") MultipartFile file,@RequestParam String imgType) throws Exception {
        return fileService.uploadForThumbnails(file,imgType);
    }
    /**
     * 文件删除
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java
@@ -139,11 +139,12 @@
            //是否医院管理员
            com.kidgrow.usercenter.model.SysDoctor sysDoctor = findDoctorByUserId(sysUser.getId());
            if (sysDoctor.getIsAdminUser() != null) {
                sysUser.setHAdminUser(sysDoctor.getIsAdminUser());
                loginAppUser.setHAdminUser(sysDoctor.getIsAdminUser());
            }
            //医院信息 只有H端要返回的信息
            if (sysUser.getTenantId() == CommonConstant.H_TENANT) {
                sysUser.setDoctorUserAllVO(baseMapper.findDoctorUserAllData(sysUser.getId()));
            if (sysUser.getTenantId().toLowerCase().equals(CommonConstant.H_TENANT.toLowerCase())) {
                DoctorUserAll doctorUserAllVo=baseMapper.findDoctorUserAllData(sysUser.getId());
                loginAppUser.setDoctorUserAllVO(doctorUserAllVo);
            }
        }
        return loginAppUser;
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/resources/mapper/SysUserMapper.xml
@@ -114,6 +114,7 @@
        sysdoctor.enabled docenabled,
        sysdoctor.is_del docdel,
        syshos.id hospital_id,
        syshos.hospital_name,
        syshos.hospital_short_name,
        syshos.hospital_type_name,
@@ -133,6 +134,7 @@
        syshos.is_del hosdel,
        syshos.accounts_count,
        sysdep.id department_id,
        sysdep.department_name,
        sysdep.server_user_name,
        sysdep.server_user_tel,
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/constant/CommonConstant.java
@@ -235,4 +235,16 @@
     * 签名结果 KEY
     */
    public static final String SIGN_SIGN_KEY = "sign";
    /**
     * logo缩略图默认宽
     */
    public static final Integer TH_IMG_WIDTH = 300;
    /**
     * logo缩略图默认高
     */
    public static final Integer TH_IMG_HEIGHT = 150;
    /**
     * 生成缩略图需要的图片暂存目录
     */
    public static final String TEMP_IMAGE_PATH="D:/resources/images/";
}
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/model/DoctorUserAll.java
@@ -71,6 +71,10 @@
    /**
     * 医院id
     */
    private String hospitalId;
    /**
     * 医院名称 同组织名字
     */
    private String hospitalName;
@@ -146,6 +150,11 @@
    /**
     * 科室/部门名称 同组织名称
     */
    private String departmentId;
    /**
     * 科室/部门名称 同组织名称
     */
    private String departmentName;
    /**
     * 销售代表的名字
kidgrow-commons/kidgrow-common-spring-boot-starter/src/main/java/com/kidgrow/common/utils/MultipartFileUtils.java
New file
@@ -0,0 +1,61 @@
package com.kidgrow.common.utils;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * MultipartFile转换帮助类
 */
public class MultipartFileUtils {
    /**
     * MultipartFile 转 File
     *
     * @param file
     * @throws Exception
     */
    public static File multipartFileToFile(MultipartFile file) throws Exception {
        File toFile = null;
        if (file.equals("") || file.getSize() <= 0) {
            file = null;
        } else {
            InputStream ins = null;
            ins = file.getInputStream();
            toFile = new File(file.getOriginalFilename());
            inputStreamToFile(ins, toFile);
            ins.close();
        }
        return toFile;
    }
    //获取流文件
    private static void inputStreamToFile(InputStream ins, File file) {
        try {
            OutputStream os = new FileOutputStream(file);
            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            ins.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 删除本地临时文件
     *
     * @param file
     */
    public static void delteTempFile(File file) {
        if (file != null) {
            File del = new File(file.toURI());
            del.delete();
        }
    }
}
kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml
@@ -145,6 +145,12 @@
      strip-prefix: true
      sensitive-headers: '*'
      custom-sensitive-headers: true
    reportcenter-server-routes:
      path: /reportcenter-server/**
      service-id: reportcenter-server
      strip-prefix: true
      sensitive-headers: '*'
      custom-sensitive-headers: true
  ssl-hostname-validation-enabled: false