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 | 274 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 204 insertions(+), 70 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 c3244e3..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,97 +1,182 @@
package com.ycl.sccgplatform;
-import com.alibaba.fastjson.JSONObject;
-import com.ycl.dto.video.Camera;
-import com.ycl.dto.video.HttpResponseResult;
-import com.ycl.dto.video.PageResult;
+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.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.util.List;
-import java.util.UUID;
+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
+ UtilNumber utilNumber;
@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 msg = "{\n" +
- " \"code\": \"0\",\n" +
- " \"msg\": \"success\",\n" +
- " \"data\": {\n" +
- " \"total\": 1,\n" +
- " \"pageSize\": 20,\n" +
- " \"pageNo\": 1,\n" +
- " \"list\": [\n" +
- " {\n" +
- " \"cameraIndexCode\": \"90ad77d8057c43dab140b77361606927\",\n" +
- " \"gbIndexCode\": \"12000000051210000000\",\n" +
- " \"name\": \"Camera_01\",\n" +
- " \"deviceIndexCode\": \"f5da3e320bcb483da6bef4b3f86de779\",\n" +
- " \"longitude\": \"120.216123284763\",\n" +
- " \"latitude\": \"30.21168569675452\",\n" +
- " \"altitude\": \"88\",\n" +
- " \"pixel\": 1,\n" +
- " \"cameraType\": 1,\n" +
- " \"cameraTypeName\": \"鍗婄悆\",\n" +
- " \"installPlace\": \"琛楅亾\",\n" +
- " \"matrixCode\": \"2076c586b0a94a6ba639b44eda9e76e9\",\n" +
- " \"chanNum\": 1,\n" +
- " \"viewshed\": \"{\\\"horizontalValue\\\":\\\"13.80000\\\",\\\"azimuth\\\":\\\"109.23000\\\",\\\"visibleRadius\\\":\\\"48.00000\\\"}\",\n" +
- " \"capabilitySet\": \"@event_face@\",\n" +
- " \"capabilitySetName\": \"浜鸿劯閲囬泦鑳藉姏\",\n" +
- " \"intelligentSet\": \"@face@\",\n" +
- " \"intelligentSetName\": \"浜鸿劯缁撴瀯鍖栬兘鍔沑",\n" +
- " \"recordLocation\": \"0\",\n" +
- " \"recordLocationName\": \"涓績瀛樺偍\",\n" +
- " \"ptzController\": 1,\n" +
- " \"ptzControllerName\": \"DVR\",\n" +
- " \"deviceResourceType\": \"ENCODE_DEVICE\",\n" +
- " \"deviceResourceTypeName\": \"缂栫爜璁惧\",\n" +
- " \"channelType\": \"digital\",\n" +
- " \"channelTypeName\": \"鏁板瓧閫氶亾\",\n" +
- " \"transType\": 0,\n" +
- " \"transTypeName\": \"UDP\",\n" +
- " \"updateTime\": \"2021-06-15T00:00:00.000+08:00\",\n" +
- " \"unitIndexCode\": \"083b2031c1db4f368f015fe2562e0012\",\n" +
- " \"treatyType\": \"20005\",\n" +
- " \"treatyTypeName\": \"ONVIF\",\n" +
- " \"createTime\": \"2021-06-15T00:00:00.000+08:00\",\n" +
- " \"status\": 0,\n" +
- " \"statusName\": \"涓嶅湪绾縗"\n" +
- " }\n" +
- " ]\n" +
- " }\n" +
- "}\n";
- HttpResponseResult responseResult = com.alibaba.fastjson.JSONObject.parseObject(msg, HttpResponseResult.class);
- if ("0".equals(responseResult.getCode())) {
- JSONObject jsonObject = responseResult.getData();
- String strList = jsonObject.getString("list");
- Integer total = Integer.parseInt(jsonObject.getString("total"));
- Integer pageSize = Integer.parseInt(jsonObject.getString("pageSize"));
- Integer pageNo = Integer.parseInt(jsonObject.getString("pageNo"));
- List<Camera> ls = JSONObject.parseArray(strList, Camera.class);
-
- PageResult<Camera> pageResult = new PageResult<>(total, pageSize, pageNo, ls);
- System.out.println(ls.size());
- }
- }
+// 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(){
@@ -123,11 +208,60 @@
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();
isr.close();
fis.close();
}
+
+// @Autowired
+// AnalyzerDataCB analyzerDataCB;
+
+ @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