Browse Source

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

Trick 5 years ago
parent
commit
19abc11bb4

+ 87 - 1
business/base-service/src/main/java/com/yihu/jw/file_upload/FileUploadService.java

@ -5,16 +5,29 @@ import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.jw.exception.business.file_upload.*;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.csource.common.MyException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import java.util.*;
/**
@ -26,6 +39,9 @@ public class FileUploadService {
    @Autowired
    private FastDFSUtil fastDFSHelper;
    @Value("${wlyy.url}")
    private String wlyyUrl;
    /**
     * 文件流上传图片
     * @param inputStream
@ -145,6 +161,76 @@ public class FileUploadService {
        return uploadVO;
    }
    /**
     * i健康调用文件传输
     * @param multipartFile
     * @return
     * @throws Exception
     */
    public Map<String, Object> uploadImg(MultipartFile multipartFile) throws Exception {
        Map<String, Object> map = new HashMap<>();
        long size = multipartFile.getSize();
        if(size<=0){
            map.put("uploadStatus",1);//size小于0
            map.put("accessoryUrl",null);//
            return map;
        }
        String fileName = multipartFile.getOriginalFilename();
        String[] fs = fileName.split("\\.");
        String type = fs[1];
        //图片常见格式:bmp,jpg,png,tif,gif,pcx,tga,exif,fpx,svg,psd,cdr,pcd,dxf,ufo,eps,ai,raw,WMF,webp
        List img = new ArrayList(Arrays.asList("bmp", "jpg", "png", "tif", "gif", "pcx", "tga", "exif", "fpx", "svg", "psd", "cdr", "pcd", "dxf", "ufo", "eps", "ai", "raw", "WMF", "webp"));
        if (!img.contains(type)) {
            map.put("uploadStatus",2);//文件类型不对
            map.put("accessoryUrl",null);//
            return map;
        }
        String response = request(wlyyUrl + "/upload/chat", multipartFile, null);
        org.json.JSONObject rs = new org.json.JSONObject(response);
        Integer status = (Integer) rs.get("status");
        if (status == 200) {
            String url = rs.get("urls") + "";
            map.put("uploadStatus", 0);//文件类型正确
            map.put("accessory", url);//
            return map;
        }
        throw new Exception();
    }
    public String request(String remote_url, MultipartFile file, String type) {
        CloseableHttpClient httpClient = HttpClientBuilder.create().build();
        String result = "";
        try {
            String fileName = file.getOriginalFilename();
            HttpPost httpPost = new HttpPost(remote_url);
            MultipartEntityBuilder builder = MultipartEntityBuilder.create();
            builder.addBinaryBody("file", file.getInputStream(), ContentType.MULTIPART_FORM_DATA, fileName);// 文件流
            builder.addTextBody("filename", fileName);// 类似浏览器表单提交,对应input的name和value
            if (!org.springframework.util.StringUtils.isEmpty(type)) {
                builder.addTextBody("type", type); //发送类型
            }
            HttpEntity entity = builder.build();
            httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost);// 执行提交
            HttpEntity responseEntity = response.getEntity();
            if (responseEntity != null) {
                // 将响应内容转换为字符串
                result = EntityUtils.toString(responseEntity, Charset.forName("UTF-8"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                httpClient.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return result;
    }
    /*
     * base64上传图片
     * @param jsonData,头像转化后的输入流

+ 1 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/FileUploadController.java

@ -63,6 +63,7 @@ public class FileUploadController extends EnvelopRestEndpoint {
    @ApiOperation(value = "文件流上传文件", notes = "文件流上传文件")
    public ObjEnvelop<UploadVO> uploadStream(@ApiParam(value = "文件", required = true)
                                                 @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
        // 得到文件的完整名称  xxx.txt
        String originalFilename = file.getOriginalFilename();
        InputStream inputStream = file.getInputStream();

+ 2 - 0
svr/svr-base/src/main/resources/application.yml

@ -111,6 +111,7 @@ hospital:
  mqPwd: 123456
  SourceSysCode: S60
  TargetSysCode: S01
---
spring:
  profiles: jwtest
@ -146,6 +147,7 @@ hospital:
  mqPwd: 123456
  SourceSysCode: S60
  TargetSysCode: S01
---
spring:
  profiles: jwprod

+ 11 - 4
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/file_upload/FileUploadEndpoint.java

@ -27,6 +27,8 @@ public class FileUploadEndpoint extends EnvelopRestEndpoint {
    private String fastdfs_file_url;
    @Autowired
    FileUploadService fileUploadService;
    @Value("${testPattern.sign}")
    private String isClose;
    @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM_IMG)
    @ApiOperation(value = "文件流上传图片", notes = "文件流上传图片")
@ -54,10 +56,15 @@ public class FileUploadEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "文件流上传文件", notes = "文件流上传文件")
    public ObjEnvelop<UploadVO> uploadStream(@ApiParam(value = "文件", required = true)
                                                 @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
        // 得到文件的完整名称  xxx.txt
        String originalFilename = file.getOriginalFilename();
        InputStream inputStream = file.getInputStream();
        UploadVO uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
        UploadVO uploadVO = new UploadVO();
        if (isClose.equalsIgnoreCase("1")){
            fileUploadService.uploadImg(file);
        }else {
            // 得到文件的完整名称  xxx.txt
            String originalFilename = file.getOriginalFilename();
            InputStream inputStream = file.getInputStream();
            uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
        }
        return success("上传成功", uploadVO);
    }

+ 33 - 3
svr/svr-internet-hospital/src/main/resources/application.yml

@ -211,7 +211,11 @@ FileTempPath:
  image_path : /var/local/upload/images
  voice_path : /var/local/upload/voice
  chat_file_path : /var/local/upload/chat
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 1
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
spring:
  profiles: jwprod
@ -277,7 +281,11 @@ FileTempPath:
  voice_path : /var/local/upload/voice
  chat_file_path : /var/local/upload/chat
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 1
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
spring:
  profiles: jwOracleTest
@ -348,6 +356,11 @@ es:
  host:  http://172.26.0.112:9200
  tHost: 172.26.0.112:9300
  clusterName: jkzl
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 1
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
spring:
  profiles: jwOracleProd
@ -418,6 +431,12 @@ es:
  clusterName: jkzl
  securityUser: elastic:elastic
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 0
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
##==心脏中心 ===============================================================================
spring:
@ -482,6 +501,11 @@ es:
  tHost: 192.168.103.153:9300
  clusterName: jkzl
  securityUser: lion:jkzlehr
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 0
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
##==心脏中心外 ===============================================================================
spring:
@ -545,4 +569,10 @@ es:
  host:  http://172.16.100.240:9200
  tHost: 172.16.100.240:9300
  clusterName: jkzl
  securityUser: lion:jkzlehr
  securityUser: lion:jkzlehr
#是否开启i健康接口 0关闭,1开启
testPattern:
  sign: 1
wlyy:
  url: http://www.xmtyw.cn/wlyytest/