From 48707050fa3f5a9870e6af09adb66ea8f8a8c3e8 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sun, 21 Mar 2021 23:26:35 +0800
Subject: [PATCH] 安检图片接口

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java           |  123 ++++++++++++++++++++++++++++++++++++++++-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java          |    8 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java    |   15 +++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java |   22 +++++++
 4 files changed, 165 insertions(+), 3 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java
index 3876ddb..19bbe5b 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/controller/ParcelController.java
@@ -50,5 +50,20 @@
 		return R.data(parcelService.getParcelStatis(conditionVo));
 	}
 
+	/**
+	 * 获取图片地址
+	 * @param imgUrl  图片url
+	 * @param response
+	 * @return
+	 */
+	@GetMapping("/getParcelPic")
+	public R getParcelPic(String imgUrl,HttpServletResponse response){
+		response.setHeader("Access-Control-Allow-Origin", "*");
+		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+		response.setHeader("Access-Control-Allow-Credentials","true");
+		return R.data(parcelService.getParcelPic(imgUrl));
+	}
+
+
 
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
index 9dd8214..fd0ab62 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -35,4 +35,12 @@
 	 * @return
 	 */
     Map<String, Object> selectParcelData();
+
+
+	/**
+	 * 获取图片地址
+	 * @param imgUrl 图片Url
+	 * @return
+	 */
+	Map<String, String> getParcelPic(String imgUrl);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
index 83084f6..93debc9 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -31,6 +31,9 @@
 	@Value("${PARCEL_URL}")
 	private String PARCEL_URL;
 
+	@Value("${PARCEL_PICTURE_URL}")
+	private String PARCEL_PICTURE_URL;
+
 
 
 	/**
@@ -275,4 +278,23 @@
 		}
 		return list;
 	}
+
+	/**
+	 * 获取图片地址
+	 * @param imgUrl 图片Url
+	 * @return
+	 */
+	@Override
+	public Map<String, String> getParcelPic(String imgUrl) {
+		//截取图片imgKey信息
+		String[] imgKeys = imgUrl.split("=", imgUrl.length());
+		String imgKey = imgKeys[1];
+		//封装成map对象
+		HashMap<String, String> map = new HashMap<>();
+		map.put("imgKey",imgKey);
+		//执行http远程调用
+		String s = HttpClientUtils.doGetHeaderPictureBase64(PARCEL_PICTURE_URL, PARCEL_KEY, PARCEL_SECRET, map);
+		map.put("imgBase64",s);
+		return map;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java
index 8b263ea..18dfa34 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/util/HttpClientUtils.java
@@ -35,6 +35,7 @@
 import org.apache.http.message.BasicNameValuePair;
 import org.apache.http.ssl.SSLContextBuilder;
 import org.apache.http.util.EntityUtils;
+import sun.misc.BASE64Encoder;
 
 import javax.net.ssl.SSLContext;
 
@@ -67,16 +68,13 @@
 
             HttpGet get = new HttpGet(builder.build());
 
-
             response = httpclient.execute(get);
 
             System.out.println(response.getStatusLine());
 
             if (200 == response.getStatusLine().getStatusCode()) {
                 HttpEntity entity = response.getEntity();
-                System.out.println(entity.toString());
                 resultString = EntityUtils.toString(entity, "utf-8");
-                System.out.println(resultString.toString());
             }
 
         } catch (Exception e) {
@@ -102,6 +100,125 @@
         return resultString;
     }
 
+	/**
+	 * 执行有参GET请求,带请求头
+	 *
+	 * @param url 请求url
+	 * @param params 参数
+	 * @param key 请求头Key
+	 * @param secretKey 秘钥
+	 * @return
+	 */
+	public static String doGetHeader(String url, String key, String secretKey,Map<String, String> params) {
+
+		//获取httpclient客户端
+		CloseableHttpClient httpclient = HttpClients.createDefault();
+
+		String resultString = "";
+
+		CloseableHttpResponse response = null;
+
+		try {
+			URIBuilder builder = new URIBuilder(url);
+
+			if (null != params) {
+				for (String keys : params.keySet()) {
+					builder.addParameter(keys,params.get(keys));
+					//builder.setParameter(keys, params.get(keys));
+				}
+			}
+
+			HttpGet httpGet = new HttpGet(builder.build());
+
+			//设置请求头
+			httpGet.addHeader(key,secretKey);
+			// 传输的类型
+			httpGet.addHeader("Content-Type", "application/x-www-form-urlencoded");
+			//执行Http请求调用
+			response = httpclient.execute(httpGet);
+			//判断是否请求成功返回
+			if (200 == response.getStatusLine().getStatusCode()) {
+				HttpEntity entity = response.getEntity();
+				resultString = EntityUtils.toString(entity, "utf-8");
+			}
+
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if (null != response) {
+				try {
+					response.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (null != httpclient) {
+				try {
+					httpclient.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+
+		return resultString;
+	}
+
+	/**
+	 * 执行有参GET请求,带请求头,接收图片流
+	 *
+	 * @param url 请求url
+	 * @param params 参数
+	 * @param key 请求头Key
+	 * @param secretKey 秘钥
+	 * @return
+	 */
+	public static String doGetHeaderPictureBase64(String url, String key, String secretKey,Map<String, String> params) {
+
+		//获取httpclient客户端
+		CloseableHttpClient httpclient = HttpClients.createDefault();
+		String resultString = "";
+		CloseableHttpResponse response = null;
+		try {
+			URIBuilder builder = new URIBuilder(url);
+			if (null != params) {
+				for (String keys : params.keySet()) {
+					builder.addParameter(keys,params.get(keys));
+				}
+			}
+			HttpGet httpGet = new HttpGet(builder.build());
+			//设置请求头
+			httpGet.addHeader(key,secretKey);
+			// 传输的类型
+			httpGet.addHeader("Content-Type", "application/x-www-form-urlencoded");
+			//执行Http请求调用
+			response = httpclient.execute(httpGet);
+			// 将返回的图片或者文件转化成字节数组的形式
+			byte[] data = EntityUtils.toByteArray(response.getEntity());
+			BASE64Encoder encoder = new BASE64Encoder();
+			//String imageBase64 = "data:image/png;base64," + encoder.encodeBuffer(data).trim();
+			return encoder.encodeBuffer(data).trim().replaceAll("\n", "").replaceAll("\r", "").replaceAll(" ", "");//删除 \r\n
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if (null != response) {
+				try {
+					response.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+			if (null != httpclient) {
+				try {
+					httpclient.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		return resultString;
+	}
+
     /**
      * 执行无参GET请求
      *

--
Gitblit v1.9.3