From 1cad14bca191807e18705c3a5526eda8151be439 Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 14 四月 2025 23:10:22 +0800
Subject: [PATCH] 批量审核和图片保存bug

---
 ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java |  225 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 191 insertions(+), 34 deletions(-)

diff --git a/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java b/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java
index 0821b45..15dd229 100644
--- a/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java
+++ b/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java
@@ -1,31 +1,55 @@
 package com.ycl.sccgplatform;
 
+import com.aliyun.oss.ClientBuilderConfiguration;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.aliyun.oss.OSSException;
+import com.aliyun.oss.common.auth.CredentialsProviderFactory;
+import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
+import com.aliyun.oss.common.comm.SignVersion;
+import com.aliyuncs.exceptions.ClientException;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dahua.netsdk.lib.callback.impl.AnalyzerDataCB;
 import com.ycl.common.util.UtilNumber;
 import com.ycl.entity.dingding.DingUserInfo;
 import com.ycl.entity.user.UmsAdmin;
 import com.ycl.mapper.unlawful.UnlawfulMapper;
+import com.ycl.service.caseHandler.IBaseCaseService;
+import com.ycl.service.caseHandler.IViolationsService;
 import com.ycl.service.oss.OssService;
-import com.ycl.util.dahua.alarm.AlarmDataCB;
-import com.ycl.util.dahua.lib.module.LoginModule;
-import com.ycl.util.dahua.module.AlarmListenModule;
+import com.ycl.service.resources.IImageResourcesService;
+import com.ycl.utils.ConstantPropertiesUtils;
+import com.ycl.vo.casePool.BaseCaseVO;
 import net.coobird.thumbnailator.Thumbnails;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.ComponentScan;
 
 import javax.annotation.Resource;
 import javax.xml.bind.DatatypeConverter;
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
+@ComponentScan("com.dahua.netsdk")
 @SpringBootTest
 public class Test1 {
 
     @Autowired
+    private IBaseCaseService baseCaseService;
+
+    @Autowired
     private OssService ossService;
 
+    @Autowired
+    private IViolationsService violationsService;
+
+    @Autowired
+    private IImageResourcesService imageService;
     @Resource
     private UnlawfulMapper unlawfuldao;
     @Autowired
@@ -33,28 +57,126 @@
 
     @Test
     void test() {
+        String fileUrl = "https://xshlivelesson.oss-cn-shenzhen.aliyuncs.com/2.pptx?Expires=1738857178&OSSAccessKeyId=LTAIxtcfDe3fgfcf&Signature=wTwx6JA6VWbPB0skVySy9MCexog=";
+        // http://zhzfptoss.oss-cn-zjls-lszwy-d01-a.ops.zjlscloud.com/sczf/2023062950465224.jpg?Expires=2634106907&OSSAccessKeyId=Tkf72Q1gdzETsZf6&Signature=ttME%2BeFhss8wPbkRCxAsV%2FPNWGQ%3D
+
+        OSS ossClient = null;
+        try {
+
+            String endpoint = "https://oss-cn-beijing.aliyuncs.com";
+            String accessKeyId = "LTAIxtcfDe3fgfcf";
+            String accessKeySecret = "xHxLVU5dm7USdJuQaCfp1hpcUU1u8v";
+            String bucketName = "huachuang-resource";
+
+            String[] urlArray = fileUrl.split("Expires=");
+
+            String objectName = urlArray[0].replace(ConstantPropertiesUtils.PREFIX_URL, "");
+            objectName = objectName.replace("?", "");
+
+            ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+
+
+            // 璁剧疆绛惧悕URL杩囨湡鏃堕棿锛屽崟浣嶄负姣銆傛湰绀轰緥浠ヨ缃繃鏈熸椂闂翠负1灏忔椂涓轰緥銆�
+            Date expiration = new Date(new Date().getTime() + 3600 * 1000L);
+            // 鐢熸垚浠ET鏂规硶璁块棶鐨勭鍚峌RL銆傛湰绀轰緥娌℃湁棰濆璇锋眰澶达紝鍏朵粬浜哄彲浠ョ洿鎺ラ�氳繃娴忚鍣ㄨ闂浉鍏冲唴瀹广��
+            URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
+            System.out.println(url);
+
+//
+//        // http://zhzfptoss.oss-cn-zjls-lszwy-d01-a.ops.zjlscloud.com/sczf/2025020620664017jpg?v=2684887407&OSSAccessKeyId=Tkf72Q1gdzETsZf6&Signature=88dn7R/gDdqxWUCqZdCi/NgSXg8=
+//        OSS ossClient = null;
+//        try {
+//            // 浠ュ崕涓�1锛堟澀宸烇級鐨勫缃慐ndpoint涓轰緥锛屽叾瀹僐egion璇锋寜瀹為檯鎯呭喌濉啓銆�
+//            String endpoint = "https://oss-cn-beijing.aliyuncs.com";
+//            // 浠庣幆澧冨彉閲忎腑鑾峰彇璁块棶鍑瘉銆傝繍琛屾湰浠g爜绀轰緥涔嬪墠锛岃纭繚宸茶缃幆澧冨彉閲廜SS_ACCESS_KEY_ID鍜孫SS_ACCESS_KEY_SECRET銆�
+////            EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
+//            // 濉啓Bucket鍚嶇О锛屼緥濡俥xamplebucket銆�
+//            String bucketName = "huachuang-resource";
+//            // 濉啓Object瀹屾暣璺緞锛屼緥濡俥xampleobject.txt銆侽bject瀹屾暣璺緞涓笉鑳藉寘鍚獴ucket鍚嶇О銆�
+//            String objectName = "瀹跺涵鏁欒偛/涓浗闄惰鐭ュ崗浼氬搴暀鑲蹭笓濮斾細.doc";
+//            // 濉啓Bucket鎵�鍦ㄥ湴鍩熴�備互鍗庝笢1锛堟澀宸烇級涓轰緥锛孯egion濉啓涓篶n-hangzhou銆�
+//            String region = "cn-beijing";
+//            String accessKeyId = "LTAIxtcfDe3fgfcf";
+//            String accessKeySecret = "xHxLVU5dm7USdJuQaCfp1hpcUU1u8v";
+//            // 鍒涘缓OSSClient瀹炰緥銆�
+//            ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
+//            clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);
+//
+//            ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+//
+//
+//            // 璁剧疆绛惧悕URL杩囨湡鏃堕棿锛屽崟浣嶄负姣銆傛湰绀轰緥浠ヨ缃繃鏈熸椂闂翠负1灏忔椂涓轰緥銆�
+//            Date expiration = new Date(new Date().getTime() + 3600 * 1000L);
+//            // 鐢熸垚浠ET鏂规硶璁块棶鐨勭鍚峌RL銆傛湰绀轰緥娌℃湁棰濆璇锋眰澶达紝鍏朵粬浜哄彲浠ョ洿鎺ラ�氳繃娴忚鍣ㄨ闂浉鍏冲唴瀹广��
+//            URL url = ossClient.generatePresignedUrl(bucketName, objectName, expiration);
+//
+//
+//            try {
+//                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 input = conn.getInputStream();// 閫氳繃杈撳叆娴佽幏鍙栧浘鐗囨暟鎹�
+//
+//                FileOutputStream downloadFile = new FileOutputStream("D://1.doc");
+//
+//                int index;
+//                byte[] bytes = new byte[1024];
+//
+//                while ((index = input.read(bytes)) != -1) {
+//                    downloadFile.write(bytes, 0, index);
+//                    downloadFile.flush();
+//                }
+//                downloadFile.close();
+//                input.close();
+
+//
+//                    ByteArrayOutputStream outs = new ByteArrayOutputStream();
+//                    Thumbnails.of(in).scale(0.6).outputQuality(1).toOutputStream(outs);
+//                    InputStream ins = new ByteArrayInputStream(outs.toByteArray());
+//                    String picData = ossService.uploadImages(ins, ".png", 0);
+//                    System.out.println(picData);
+
+
+        } catch (
+                OSSException oe) {
+            System.out.println("Caught an OSSException, which means your request made it to OSS, "
+                    + "but was rejected with an error response for some reason.");
+            System.out.println("Error Message:" + oe.getErrorMessage());
+            System.out.println("Error Code:" + oe.getErrorCode());
+            System.out.println("Request ID:" + oe.getRequestId());
+            System.out.println("Host ID:" + oe.getHostId());
+        } finally {
+            if (ossClient != null) {
+                ossClient.shutdown();
+            }
+        }
+
+    }
+
 //        List<CategoryDto> data = unlawfuldao.getDataByType(0, 5,"2022-12-14 17:19:01", "2022-12-14 17:19:03");
 //        System.out.println(data);
-        String url = "http://test.xshcs.com/10%E6%9C%88%E6%8E%92%E6%9C%9F.jpg";
-        try {
-            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
-            connection.setReadTimeout(5000);
-            connection.setConnectTimeout(5000);
-            connection.setRequestMethod("GET");
-            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
-                InputStream in = connection.getInputStream();
-                ByteArrayOutputStream outs = new ByteArrayOutputStream();
-                Thumbnails.of(in).scale(0.6).outputQuality(1).toOutputStream(outs);
-                InputStream ins = new ByteArrayInputStream(outs.toByteArray());
-                String picData = ossService.uploadImages(ins, ".png");
-                System.out.println(picData);
-            }
-        } catch (IOException e) {
-            System.out.println("鑾峰彇缃戠粶鍥剧墖鍑虹幇寮傚父锛屽浘鐗囪矾寰勪负锛�" + url);
-
-            e.printStackTrace();
-        }
-    }
+//        String url = "http://test.xshcs.com/10%E6%9C%88%E6%8E%92%E6%9C%9F.jpg";
+//        try {
+//            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
+//            connection.setReadTimeout(5000);
+//            connection.setConnectTimeout(5000);
+//            connection.setRequestMethod("GET");
+//            if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
+//                InputStream in = connection.getInputStream();
+//                ByteArrayOutputStream outs = new ByteArrayOutputStream();
+//                Thumbnails.of(in).scale(0.6).outputQuality(1).toOutputStream(outs);
+//                InputStream ins = new ByteArrayInputStream(outs.toByteArray());
+//                String picData = ossService.uploadImages(ins, ".png",0);
+//                System.out.println(picData);
+//            }
+//        } catch (IOException e) {
+//            System.out.println("鑾峰彇缃戠粶鍥剧墖鍑虹幇寮傚父锛屽浘鐗囪矾寰勪负锛�" + url);
+//
+//            e.printStackTrace();
+//        }
+//}
 
 //    @Test
 //    void test1(){
@@ -86,7 +208,7 @@
         String PicData = br.readLine();
         byte[] data = DatatypeConverter.parseBase64Binary(PicData);
         InputStream inputStream = new ByteArrayInputStream(data);
-        String s = ossService.uploadImages(inputStream, extension);
+        String s = ossService.uploadImages(inputStream, extension, 0);
         System.out.println(s);
 
         br.close();
@@ -94,17 +216,52 @@
         fis.close();
     }
 
-    @Test
-    void alarmTest() {
-        AlarmDataCB cbMessage = new AlarmDataCB();
-        String m_strIp = "192.168.202.123";
-        int m_nPort = 37777;
-        String m_strUser = "admin";
-        String m_strPassword = "scdx@123";
-        LoginModule.login(m_strIp, m_nPort, m_strUser, m_strPassword);
-        AlarmListenModule.startListen(cbMessage);
+//    @Autowired
+//    AnalyzerDataCB analyzerDataCB;
 
-        System.out.println(cbMessage.data);
+    @Test
+    void alarmTest() throws UnsupportedEncodingException {
+
+//        analyzerDataCB.invoke(null, 0, null, null, 0, null, 0, null);
+
+//        AlarmDataCB cbMessage = new AlarmDataCB();
+//        String m_strIp = "172.28.194.177";
+//        int m_nPort = 37777;
+//        String m_strUser = "admin";
+//        String m_strPassword = "scdx@123";
+//        LoginModule.login(m_strIp, m_nPort, m_strUser, m_strPassword);
+//        AlarmListenModule.startListen(cbMessage);
+//
+//        System.out.println(cbMessage.data);
+
+        //  https://xshlivelesson.oss-accelerate.aliyuncs.com/sczf/2025-02-28%2015%3A53%3A293732..JPG?Expires=2686809213&OSSAccessKeyId=LTAIDlTWjHW0IVyW&Signature=Q5WO2kQcWRpq0SQiYjBCo6rGyJE%3D"
+
+//        ossService.deleteImages("https://xshlivelesson.oss-cn-shenzhen.aliyuncs.com/sczf/2025022845414037.JPG?Expires=2686811218&OSSAccessKeyId=LTAIDlTWjHW0IVyW&Signature=5SQ7PInLkbd62zJ1aurljeO0c%2Bw%3D");
+//
+        int i = 1;
+        while (true) {
+            String beginTime = "2025-01-01 00:00:00";
+            String endTime = LocalDateTime.now().plusDays(-4).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+            Page<BaseCaseVO> page = baseCaseService.selectVideoInspection(i, 10, null, null, beginTime, endTime, null);
+            if (page.getRecords().size() > 0) {
+                page.getRecords().forEach(baseCaseVO -> {
+//                    String picData = baseCaseVO.getPicData();
+//                    String[] urls = picData.split(",");
+//                    for (String url : urls) {
+//                        ossService.deleteImages(url);
+//
+//                    }
+                    baseCaseService.removeById(baseCaseVO.getBaseId());
+                    violationsService.removeById(baseCaseVO.getBaseId());
+                    imageService.removeById(baseCaseVO.getImageId());
+                });
+            } else {
+                break;
+            }
+            i++;
+        }
     }
+
+
 }
 

--
Gitblit v1.8.0