From 259b76217c491e7c00257e985aa70bc68dd2e757 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期四, 30 三月 2023 21:43:36 +0800
Subject: [PATCH] 获取图片改成多次获取

---
 ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java                  |    4 +-
 ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java         |   41 ++++++++++++--------
 ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java |    4 +
 ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java |   50 +++++++++++++------------
 4 files changed, 55 insertions(+), 44 deletions(-)

diff --git a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
index 6d3e490..a9ce685 100644
--- a/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
+++ b/ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java
@@ -47,7 +47,7 @@
             ossClient.shutdown();
             // 鎶婁笂浼犵殑鏂囦欢璺緞杩斿洖 锛堟墜鍔ㄦ嫾鎺ワ級
             // 杩欓噷璁剧疆鍥剧墖鏈夋晥鏃堕棿 鎴戣缃簡30骞�
-            Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000);
+            Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
             String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
 
             return url;
@@ -118,7 +118,7 @@
             ossClient.shutdown();
             // 鎶婁笂浼犵殑鏂囦欢璺緞杩斿洖 锛堟墜鍔ㄦ嫾鎺ワ級
             // 杩欓噷璁剧疆鍥剧墖鏈夋晥鏃堕棿 鎴戣缃簡30骞�
-            Date expiration = new Date(System.currentTimeMillis() + 946080000 * 1000);
+            Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000);
             String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString();
             System.out.println("oss涓婁紶鎴愬姛锛�" + url);
 
diff --git a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
index d848cee..276ce3a 100644
--- a/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
+++ b/ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java
@@ -31,6 +31,8 @@
 public class AlarmController {
     private IVideoAlarmReportService videoAlarmReportService;
 
+    private static Integer index = 0;
+
     @Autowired
     private VideoUtil videoUtil;
 
@@ -67,28 +69,33 @@
 //    @GetMapping(value = "/img")
     @ResponseBody
     public byte[] getImages(HttpServletResponse response, @RequestParam String fileUrl, @RequestParam String OSSAccessKeyId, @RequestParam String Signature) {
+
+        index = 0;
+        return getBytes(fileUrl, OSSAccessKeyId, Signature);
+
+    }
+
+    private byte[] getBytes(String fileUrl, String OSSAccessKeyId, String Signature) {
         try {
+            if (index < 10) {
+                index++;
+                System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
+                URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
+                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+                conn.setRequestMethod("GET");
+                conn.setConnectTimeout(10 * 1000);
+                conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
 
-            System.out.println("getImages鑾峰彇鍥剧墖鍦板潃锛�" + fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
-            URL url = new URL(fileUrl + "&OSSAccessKeyId=" + OSSAccessKeyId + "&Signature=" + Signature);
-            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
-            conn.setRequestMethod("GET");
-            conn.setConnectTimeout(10 * 1000);
-            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+                InputStream inputStream = conn.getInputStream();// 閫氳繃杈撳叆娴佽幏鍙栧浘鐗囨暟鎹�
 
-            InputStream inputStream = conn.getInputStream();// 閫氳繃杈撳叆娴佽幏鍙栧浘鐗囨暟鎹�
+                byte[] data = readInputStream(inputStream);
+                System.out.println("getImages鑾峰彇鍥剧墖鎴愬姛");
 
-
-            byte[] data = readInputStream(inputStream);
-            System.out.println("getImages鑾峰彇鍥剧墖鎴愬姛");
-
-
-            System.out.println("getImages -鍥剧墖64");
-            System.out.println(Base64.getEncoder().encodeToString(data));
-            return data;
-
+                return data;
+            }
         } catch (Exception e) {
-            System.out.println("getImages鑾峰彇鍥剧墖澶辫触锛�" + e.getMessage());
+            System.out.println(index + "getImages鑾峰彇鍥剧墖澶辫触锛�" + e.getMessage());
+            getBytes(fileUrl, OSSAccessKeyId, Signature);
             // e.printStackTrace();
         }
         return null;
diff --git a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
index 6c5b489..8794a56 100644
--- a/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/caseHandler/impl/ViolationsServiceImpl.java
@@ -61,7 +61,9 @@
     public void saveFromVideo(List<VideoAlarmReport> videoAlarmReports) {
         for (VideoAlarmReport videoAlarmReport : videoAlarmReports) {
             VideoPoint videoPoint = null;
-            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>().eq(VideoPoint::getPlatResourceId, videoAlarmReport.getPlatResourceId());
+            LambdaQueryWrapper<VideoPoint> queryWrapper = new LambdaQueryWrapper<VideoPoint>()
+                    .eq(VideoPoint::getPlatResourceId, videoAlarmReport.getPlatResourceId())
+                    .or().eq(VideoPoint::getCode, videoAlarmReport.getPlatResourceId());
             List<VideoPoint> pointList = videoPointService.list(queryWrapper);
             if (pointList.size() > 0) {
                 videoPoint = pointList.get(0);
diff --git a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
index e7f2d55..5873897 100644
--- a/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
+++ b/ycl-platform/src/main/java/com/ycl/service/video/impl/VideoAlarmReportServiceImpl.java
@@ -147,37 +147,38 @@
                 InputStream inputStream = new ByteArrayInputStream(data);
                 try {
 //                    濡傛灉List<AlarmDataParam>鍚堢悊
-                    if (alarmParam.getAlarmData()!=null && alarmParam.getAlarmData().size()!=0) {
+                    if (alarmParam.getAlarmData() != null && alarmParam.getAlarmData().size() != 0) {
 
-                            BufferedImage image = ImageIO.read(inputStream);
-                            Graphics2D g2 = (Graphics2D) image.getGraphics();
-                            g2.setColor(Color.RED);
-                            g2.setStroke(new BasicStroke(3.0f));
+                        BufferedImage image = ImageIO.read(inputStream);
+                        Graphics2D g2 = (Graphics2D) image.getGraphics();
+                        g2.setColor(Color.RED);
+                        g2.setStroke(new BasicStroke(3.0f));
 
-                            List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
+                        List<AlarmDataParam> alarmData = alarmParam.getAlarmData();
 
-                            alarmData.forEach(new Consumer<AlarmDataParam>() {
-                                @Override
-                                public void accept(AlarmDataParam alarmDataParam) {
-                                    List<AlarmObject> alarmObject = alarmDataParam.getAlarmObject();
-                                    alarmObject.forEach(new Consumer<AlarmObject>() {
-                                        @Override
-                                        public void accept(AlarmObject alarmObject) {
-                                            ObjectRect rect = alarmObject.getObjectRect();
-                                            g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
-                                        }
-                                    });
-                                }
-                            });
+                        alarmData.forEach(new Consumer<AlarmDataParam>() {
+                            @Override
+                            public void accept(AlarmDataParam alarmDataParam) {
+                                List<AlarmObject> alarmObject = alarmDataParam.getAlarmObject();
+                                alarmObject.forEach(new Consumer<AlarmObject>() {
+                                    @Override
+                                    public void accept(AlarmObject alarmObject) {
+                                        ObjectRect rect = alarmObject.getObjectRect();
+                                        g2.drawRect(rect.getX(), rect.getY(), rect.getW(), rect.getH());
+                                    }
+                                });
+                            }
+                        });
 
-                            ByteArrayOutputStream os = new ByteArrayOutputStream();
-                            ImageIO.write(image, extension, os);
-                            inputStream = new ByteArrayInputStream(os.toByteArray());
+                        ByteArrayOutputStream os = new ByteArrayOutputStream();
+                        ImageIO.write(image, extension, os);
+                        inputStream = new ByteArrayInputStream(os.toByteArray());
 
                     }
                     picData = ossService.uploadImages(inputStream, extension);
                 } catch (Exception e) {
-                    e.printStackTrace();
+                    System.out.println("淇濆瓨鎶ヨ鏁版嵁澶辫触---鍥剧墖涓婁紶澶辫触锛�" + e.getMessage());
+//                    e.printStackTrace();
                 }
             }
             List<VideoAlarmReport> videoAlarmReports = new ArrayList<>();
@@ -211,7 +212,8 @@
                         this.updateById(videoAlarmReport);
                     }
                 } catch (ParseException e) {
-                    e.printStackTrace();
+                    System.out.println("淇濆瓨鎶ヨ鏁版嵁澶辫触锛�" + e.getMessage());
+//                    e.printStackTrace();
                 }
             }
         }

--
Gitblit v1.8.0