From 0f5901bbc027e2e8d934280ca659734a61f67378 Mon Sep 17 00:00:00 2001 From: zhanghua <314079846@qq.com> Date: 星期二, 04 三月 2025 15:00:35 +0800 Subject: [PATCH] 图片显示修改,删除脏数据 --- ycl-platform/src/main/java/com/ycl/task/SynchronizeDHAlarm.java | 50 ++++++++ ycl-smoke/pom.xml | 12 +- ycl-common/src/main/java/com/ycl/utils/ConstantPropertiesUtils.java | 5 ycl-platform/src/main/resources/application-dev.yml | 5 ycl-platform/src/main/java/com/ycl/OSSImageMove.java | 139 +++++++++++++++++++++++ ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java | 1 document/遂昌县大综合一体化驾驶舱数据源核对会议.xls | 0 pom.xml | 2 ycl-common/src/main/java/com/ycl/service/oss/OssService.java | 3 document/问题类型.xls | 0 ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java | 51 +++++++- ycl-platform/src/main/java/com/ycl/util/SpringContextUtil.java | 17 ++ ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml | 1 ycl-common/src/main/java/com/ycl/controller/FileController.java | 9 + ycl-platform/src/main/resources/application-prod.yml | 7 + ycl-platform/src/main/java/com/ycl/PlatformApplication.java | 9 + ycl-platform/src/main/java/com/ycl/entity/resources/ImageResources.java | 3 ycl-common/src/main/java/com/ycl/service/oss/impl/OssServiceImpl.java | 27 +++- ycl-platform/src/main/java/com/ycl/controller/platformApi/AlarmController.java | 7 19 files changed, 321 insertions(+), 27 deletions(-) diff --git "a/document/\351\201\202\346\230\214\345\216\277\345\244\247\347\273\274\345\220\210\344\270\200\344\275\223\345\214\226\351\251\276\351\251\266\350\210\261\346\225\260\346\215\256\346\272\220\346\240\270\345\257\271\344\274\232\350\256\256.xls" "b/document/\351\201\202\346\230\214\345\216\277\345\244\247\347\273\274\345\220\210\344\270\200\344\275\223\345\214\226\351\251\276\351\251\266\350\210\261\346\225\260\346\215\256\346\272\220\346\240\270\345\257\271\344\274\232\350\256\256.xls" index 7f66460..c9a01e4 100644 --- "a/document/\351\201\202\346\230\214\345\216\277\345\244\247\347\273\274\345\220\210\344\270\200\344\275\223\345\214\226\351\251\276\351\251\266\350\210\261\346\225\260\346\215\256\346\272\220\346\240\270\345\257\271\344\274\232\350\256\256.xls" +++ "b/document/\351\201\202\346\230\214\345\216\277\345\244\247\347\273\274\345\220\210\344\270\200\344\275\223\345\214\226\351\251\276\351\251\266\350\210\261\346\225\260\346\215\256\346\272\220\346\240\270\345\257\271\344\274\232\350\256\256.xls" Binary files differ diff --git "a/document/\351\227\256\351\242\230\347\261\273\345\236\213.xls" "b/document/\351\227\256\351\242\230\347\261\273\345\236\213.xls" index b1553dd..eb3df04 100644 --- "a/document/\351\227\256\351\242\230\347\261\273\345\236\213.xls" +++ "b/document/\351\227\256\351\242\230\347\261\273\345\236\213.xls" Binary files differ diff --git a/pom.xml b/pom.xml index 5b27209..db8f0dd 100644 --- a/pom.xml +++ b/pom.xml @@ -49,7 +49,7 @@ <modules> <module>ycl-platform</module> <module>ycl-common</module> - <module>ycl-generator</module> +<!-- <module>ycl-generator</module>--> <module>ycl-smoke</module> </modules> diff --git a/ycl-common/src/main/java/com/ycl/controller/FileController.java b/ycl-common/src/main/java/com/ycl/controller/FileController.java index 25c2a1e..76fbbbd 100644 --- a/ycl-common/src/main/java/com/ycl/controller/FileController.java +++ b/ycl-common/src/main/java/com/ycl/controller/FileController.java @@ -10,6 +10,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; +import java.io.UnsupportedEncodingException; + @RestController @Api(tags = "鏂囦欢涓婁紶") @RequestMapping("/file") @@ -64,7 +66,12 @@ @ApiOperation(value = "鍒犻櫎鍥剧墖") @PostMapping("media/delete") public CommonResult<Boolean> deleteImages(String fileUrl) { - boolean flag = ossService.deleteImages(fileUrl); + boolean flag = false; + try { + flag = ossService.deleteImages(fileUrl); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } if (flag) { return CommonResult.success(true, "鍒犻櫎鎴愬姛"); } diff --git a/ycl-common/src/main/java/com/ycl/service/oss/OssService.java b/ycl-common/src/main/java/com/ycl/service/oss/OssService.java index 841024c..0a93c31 100644 --- a/ycl-common/src/main/java/com/ycl/service/oss/OssService.java +++ b/ycl-common/src/main/java/com/ycl/service/oss/OssService.java @@ -3,6 +3,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; +import java.io.UnsupportedEncodingException; public interface OssService { /** @@ -19,7 +20,7 @@ * @param fileUrl * @return */ - boolean deleteImages(String fileUrl); + boolean deleteImages(String fileUrl) throws UnsupportedEncodingException; String uploadImages(InputStream inputStream, String ext, Integer times); 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 460c745..a4eb460 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 @@ -3,6 +3,7 @@ import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.ObjectMetadata; +import com.aliyun.oss.model.VoidResult; import com.ycl.service.oss.OssService; import com.ycl.utils.ConstantPropertiesUtils; import com.ycl.utils.common.RandomUtils; @@ -17,6 +18,8 @@ import java.awt.*; import java.awt.image.BufferedImage; import java.io.*; +import java.net.URL; +import java.net.URLDecoder; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -43,12 +46,14 @@ // 涓婁紶鏂囦欢娴� try { // 鑾峰彇鏂囦欢鐨勫悕绉� - String strDate2 = dtf2.format(LocalDateTime.now()); + byte[] newImg = file.getBytes(); String originalFilename = file.getOriginalFilename(); String fileType = originalFilename.substring(originalFilename.lastIndexOf(".")); - String fileName = "sczf/" + strDate2 + RandomUtils.generateRandomInt(4) + "." + fileType; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); + String fileName = "sczf/" + LocalDateTime.now().format(formatter) + RandomUtils.generateRandomInt(8) + fileType; + if (".png".equalsIgnoreCase(fileType) || ".jpg".equalsIgnoreCase(fileType) || ".jpeg".equalsIgnoreCase(fileType)) { if (file.getSize() > 2097152) { newImg = compressUnderSize(file.getBytes(), 2097152); @@ -65,6 +70,7 @@ // 鎶婁笂浼犵殑鏂囦欢璺緞杩斿洖 锛堟墜鍔ㄦ嫾鎺ワ級 // 杩欓噷璁剧疆鍥剧墖鏈夋晥鏃堕棿 鎴戣缃簡30骞� Date expiration = new Date(System.currentTimeMillis() + (long) 946080000 * 1000); + String url = ossClient.generatePresignedUrl(bucketName, fileName, expiration).toString(); System.out.println("涓婁紶缁撴潫--" + url + "------" + dtf2.format(LocalDateTime.now())); @@ -148,18 +154,27 @@ } @Override - public boolean deleteImages(String fileUrl) { + public boolean deleteImages(String fileUrl) throws UnsupportedEncodingException { String endpoint = ConstantPropertiesUtils.END_POINT; String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; String bucketName = ConstantPropertiesUtils.BUCKET_NAME; //鍒涘缓OSSClient瀹炰緥 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); - String imgFile = fileUrl.replace("https://bucket-ans.oss-cn-hangzhou.aliyuncs.com/", ""); - String fileName = imgFile.substring(0, imgFile.indexOf("?")); + + String imgFile = fileUrl.replace(ConstantPropertiesUtils.PREFIX_URL, ""); + String fileName = imgFile; + if (imgFile.contains("?")) { + fileName = imgFile.substring(0, imgFile.indexOf("?")); + } + fileName = URLDecoder.decode(fileName, "UTF-8"); // 鏍规嵁BucketName,objectName鍒犻櫎鏂囦欢 - ossClient.deleteObject(bucketName, fileName); + boolean b = ossClient.doesObjectExist(bucketName, fileName); + if (b) { + VoidResult voidResult = ossClient.deleteObject(bucketName, fileName); + System.out.println(voidResult.toString()); + } ossClient.shutdown(); return true; } diff --git a/ycl-common/src/main/java/com/ycl/utils/ConstantPropertiesUtils.java b/ycl-common/src/main/java/com/ycl/utils/ConstantPropertiesUtils.java index a97c2bc..7da39d4 100644 --- a/ycl-common/src/main/java/com/ycl/utils/ConstantPropertiesUtils.java +++ b/ycl-common/src/main/java/com/ycl/utils/ConstantPropertiesUtils.java @@ -16,11 +16,15 @@ @Value("${aliyun.oss.bucketName}") private String bucketName; + @Value("${aliyun.oss.prefixUrl}") + private String prefixUrl; + // 瀹氫箟鍏紑鐨勯潤鎬佸父閲� public static String END_POINT; public static String ACCESS_KEY_ID; public static String ACCESS_KEY_SECRET; public static String BUCKET_NAME; + public static String PREFIX_URL; @Override public void afterPropertiesSet() throws Exception { @@ -28,5 +32,6 @@ ACCESS_KEY_ID = keyId; ACCESS_KEY_SECRET = keySecret; BUCKET_NAME = bucketName; + PREFIX_URL = prefixUrl; } } diff --git a/ycl-platform/src/main/java/com/ycl/OSSImageMove.java b/ycl-platform/src/main/java/com/ycl/OSSImageMove.java new file mode 100644 index 0000000..59145f9 --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/OSSImageMove.java @@ -0,0 +1,139 @@ +package com.ycl; + +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.ycl.entity.resources.ImageResources; +import com.ycl.mapper.resources.ImageResourcesMapper; +import com.ycl.service.oss.OssService; +import com.ycl.util.SpringContextUtil; +import com.ycl.utils.ConstantPropertiesUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.io.IOException; +import java.io.InputStream; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Date; + +@Component +public class OSSImageMove extends Thread { + + @Resource + ImageResourcesMapper imageResourcesMapper; + + @Autowired + OssService ossService; + + public void run() { + + System.out.println("---------------OSSImageMove running"); + + imageResourcesMapper = SpringContextUtil.getBean("imageResourcesMapper", ImageResourcesMapper.class); + ossService = SpringContextUtil.getBean("ossServiceImpl", OssService.class); + + System.out.println("---------------OSSImageMove start"); + int i = 1; + while (true) { + IPage<ImageResources> page = new Page<>(i, 10); + LambdaQueryWrapper<ImageResources> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.isNull(ImageResources::getUrl1).orderByDesc(ImageResources::getId); + imageResourcesMapper.selectPage(page, queryWrapper); + System.out.println("page-current:" + page.getCurrent() + "--page-total:" + page.getTotal()); + if (page.getRecords().size() > 0) { + for (ImageResources imageResources : page.getRecords()) { + try { + + System.out.println("source-url:" + imageResources.getUrl()); + + String backUrl = extracted(imageResources.getUrl()); + + System.out.println("new-url:" + imageResources.getUrl()); + imageResources.setUrl1(backUrl); + imageResourcesMapper.updateById(imageResources); + + } catch (Exception e) { + System.out.println("OSSImageMove-error:" + e.getMessage()); + } + } + } else { + break; + } + i++; + } + + System.out.println("---------------OSSImageMove Over"); + } + + private String extracted(String imageUrl) { + String[] urls = imageUrl.split(","); + StringBuilder backUrl = new StringBuilder(); + for (int j = 0; j < urls.length; j++) { + + URL url = translateOSSUrl(urls[j]); + + HttpURLConnection conn = null; + try { + 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();// 閫氳繃杈撳叆娴佽幏鍙栧浘鐗囨暟鎹� + + if (inputStream != null) { + String picData = ossService.uploadImages(inputStream, ".png", 0); + backUrl.append(picData); + } + } catch (IOException e) { + System.out.println("OSSImageMove-translateOSSUrl-error:" + e.getMessage()); + // throw new RuntimeException(e); + } + } + return backUrl.toString(); + } + + + private URL translateOSSUrl(String fileUrl) { + OSS ossClient = null; + try { + String endpoint = ConstantPropertiesUtils.END_POINT; + String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID; + String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET; + String bucketName = ConstantPropertiesUtils.BUCKET_NAME; + + 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); + + return url; + } 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(); + } + } + return null; + } +} diff --git a/ycl-platform/src/main/java/com/ycl/PlatformApplication.java b/ycl-platform/src/main/java/com/ycl/PlatformApplication.java index 2e2b512..a362651 100644 --- a/ycl-platform/src/main/java/com/ycl/PlatformApplication.java +++ b/ycl-platform/src/main/java/com/ycl/PlatformApplication.java @@ -1,6 +1,7 @@ package com.ycl; import com.dahua.netsdk.AppDemo; +import com.ycl.util.SpringContextUtil; import com.ycl.util.VideoUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; @@ -48,5 +49,13 @@ } catch (Exception e) { log.info("鎵ц澶у崕鎶ヨ绋嬪簭鍑洪敊锛�", e.getMessage()); } + +// try { +// // 鍚姩鏃讹紝淇濆瓨涓婁笅鏂囷紝骞朵繚瀛樹负闈欐�� +// SpringContextUtil.setAc(application); +// new OSSImageMove().start(); +// } catch (Exception e) { +// log.info("鍥剧墖绋嬪簭鍑洪敊锛�", e.getMessage()); +// } } } 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 e3ea3f3..d5a1603 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 @@ -167,10 +167,13 @@ String[] urlArray = fileUrl.split("Expires="); - String[] urlArray2 = urlArray[0].split("aliyuncs.com/"); +// System.out.println("-------urlArray[0]:" + urlArray[0]); - String objectName = urlArray2[1].replace("?", ""); +// System.out.println("-------PREFIX_URL:" + ConstantPropertiesUtils.PREFIX_URL); + String objectName = urlArray[0].replace(ConstantPropertiesUtils.PREFIX_URL, ""); + objectName = objectName.replace("?", ""); +// System.out.println("-------objectName:" + objectName); ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); // 璁剧疆绛惧悕URL杩囨湡鏃堕棿锛屽崟浣嶄负姣銆傛湰绀轰緥浠ヨ缃繃鏈熸椂闂翠负1灏忔椂涓轰緥銆� diff --git a/ycl-platform/src/main/java/com/ycl/entity/resources/ImageResources.java b/ycl-platform/src/main/java/com/ycl/entity/resources/ImageResources.java index 21163df..96e1524 100644 --- a/ycl-platform/src/main/java/com/ycl/entity/resources/ImageResources.java +++ b/ycl-platform/src/main/java/com/ycl/entity/resources/ImageResources.java @@ -50,6 +50,9 @@ @TableField("url") private String url; + @TableField("url1") + private String url1; + /** * 鍒涘缓浜� */ diff --git a/ycl-platform/src/main/java/com/ycl/task/SynchronizeDHAlarm.java b/ycl-platform/src/main/java/com/ycl/task/SynchronizeDHAlarm.java index 9f88d04..157eedb 100644 --- a/ycl-platform/src/main/java/com/ycl/task/SynchronizeDHAlarm.java +++ b/ycl-platform/src/main/java/com/ycl/task/SynchronizeDHAlarm.java @@ -1,12 +1,16 @@ package com.ycl.task; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ycl.common.constant.GlobalQueue; import com.ycl.entity.video.VideoAlarmReport; import com.ycl.entity.video.VideoPoint; +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.service.video.IVideoAlarmReportService; import com.ycl.service.video.impl.IVideoPointService; +import com.ycl.vo.casePool.BaseCaseVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @@ -14,6 +18,9 @@ import java.io.ByteArrayInputStream; import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; @@ -31,6 +38,12 @@ @Autowired private IViolationsService violationsService; + + @Autowired + private IBaseCaseService baseCaseService; + + @Autowired + private IImageResourcesService imageService; @Scheduled(cron = "0 */1 * * * ?") @Transactional(rollbackFor = Exception.class) @@ -51,7 +64,7 @@ if (videoAlarmReport.getPicByte() != null) { String extension = "jpg"; InputStream inputStream = new ByteArrayInputStream(videoAlarmReport.getPicByte()); - String picData = ossService.uploadImages(inputStream, extension,0); + String picData = ossService.uploadImages(inputStream, extension, 0); videoAlarmReport.setPicData(picData); } @@ -68,4 +81,39 @@ } } } + + + @Scheduled(cron = "0 0 15 * * ?") + @Transactional(rollbackFor = Exception.class) + public void deleteAlarmTask() { + System.out.println("----------------鎵ц娓呴櫎鏁版嵁浠诲姟:"); + int i = 1; + while (true) { + String beginTime = "2020-01-01 00:00:00"; + String endTime = LocalDateTime.now().plusDays(-3).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + Page<BaseCaseVO> page = baseCaseService.selectVideoInspection(i, 10, null, null, beginTime, endTime, null); + + System.out.println("----------------娓呴櫎鏁版嵁浠诲姟鎬绘潯鏁�:" + page.getTotal()); + if (page.getRecords().size() > 0) { + page.getRecords().forEach(baseCaseVO -> { + String picData = baseCaseVO.getPicData(); + String[] urls = picData.split(","); + for (String url : urls) { + try { + ossService.deleteImages(url); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } + baseCaseService.removeById(baseCaseVO.getBaseId()); + imageService.removeById(baseCaseVO.getImageId()); + + System.out.println("----------------娓呴櫎鏁版嵁鏁版嵁鎴愬姛锛宨d:" + baseCaseVO.getBaseId()); + }); + } else { + break; + } + i++; + } + } } diff --git a/ycl-platform/src/main/java/com/ycl/util/SpringContextUtil.java b/ycl-platform/src/main/java/com/ycl/util/SpringContextUtil.java new file mode 100644 index 0000000..5a4749b --- /dev/null +++ b/ycl-platform/src/main/java/com/ycl/util/SpringContextUtil.java @@ -0,0 +1,17 @@ +package com.ycl.util; + +import org.springframework.context.ApplicationContext; + +public class SpringContextUtil { + private static ApplicationContext ac; + + public static <T> T getBean(String beanName, Class<T> clazz) { + T bean = ac.getBean(beanName, clazz); + return bean; + } + + public static void setAc(ApplicationContext applicationContext) { + ac = applicationContext; + } + +} diff --git a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java index 62cf9b9..32e7bb2 100644 --- a/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java +++ b/ycl-platform/src/main/java/com/ycl/vo/casePool/BaseCaseVO.java @@ -15,6 +15,7 @@ private String longitude; private String latitude; private String picData; + private Integer imageId; private String grade; private String address; private String algoName; diff --git a/ycl-platform/src/main/resources/application-dev.yml b/ycl-platform/src/main/resources/application-dev.yml index 4dd418e..8919cba 100644 --- a/ycl-platform/src/main/resources/application-dev.yml +++ b/ycl-platform/src/main/resources/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 28082 + port: 8082 tomcat: uri-encoding: UTF-8 servlet: @@ -82,10 +82,11 @@ aliyun: oss: - endpoint: https://oss-accelerate.aliyuncs.com + endpoint: https://oss-cn-shenzhen.aliyuncs.com keyId: LTAIDlTWjHW0IVyW keySecret: 6fO78NmgyF49TK5GWFAzXuSAexl9PL bucketName: xshlivelesson + prefixUrl: https://xshlivelesson.oss-cn-shenzhen.aliyuncs.com/ #涓撴湁閽夐拤鍙傛暟 zzding : diff --git a/ycl-platform/src/main/resources/application-prod.yml b/ycl-platform/src/main/resources/application-prod.yml index ce662ad..743008f 100644 --- a/ycl-platform/src/main/resources/application-prod.yml +++ b/ycl-platform/src/main/resources/application-prod.yml @@ -86,6 +86,8 @@ keyId: Tkf72Q1gdzETsZf6 keySecret: tRk39S6B1kSGARRdS4DF6jxr5nBYj5 bucketName: zhzfptoss + # 鍘烵SS鍦板潃澶� + prefixUrl: http://zhzfptoss.oss-cn-zjls-lszwy-d01-a.ops.zjlscloud.com/ #涓撴湁閽夐拤鍙傛暟 zzding : @@ -93,4 +95,7 @@ app-secret : 0GPY3aQDL3l38J7p6K37DV6BCXIOLzrynU71Br36 domain-name : openplatform-pro.ding.zj.gov.cn protocal : https - tenant-id : 196729 \ No newline at end of file + tenant-id : 196729 +mybatis-plus: + configuration: + log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl diff --git a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml index 5a4f79d..1d1099d 100644 --- a/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml +++ b/ycl-platform/src/main/resources/mapper/caseHandler/BaseCaseMapper.xml @@ -278,6 +278,7 @@ t3.longitude, t3.latitude, t4.pic_data, + t4.id as imageId, t5.`name` as grade, t3.address, t3.plat_resource_id as platResourceId, 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 148d96b..58f9ca9 100644 --- a/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java +++ b/ycl-platform/src/test/java/com/ycl/sccgplatform/Test1.java @@ -8,13 +8,17 @@ 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.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; @@ -26,6 +30,8 @@ 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") @@ -33,7 +39,13 @@ public class Test1 { @Autowired + private IBaseCaseService baseCaseService; + + @Autowired private OssService ossService; + + @Autowired + private IViolationsService violationsService; @Resource private UnlawfulMapper unlawfuldao; @@ -42,7 +54,7 @@ @Test void test() { - String fileUrl = "https://huachuang-resource.oss-cn-beijing.aliyuncs.com/瀹跺涵鏁欒偛/涓浗闄惰鐭ュ崗浼氬搴暀鑲蹭笓濮斾細.doc?Expires=1738857178&OSSAccessKeyId=LTAIxtcfDe3fgfcf&Signature=wTwx6JA6VWbPB0skVySy9MCexog="; + 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; @@ -55,10 +67,8 @@ String[] urlArray = fileUrl.split("Expires="); - String[] urlArray2 = urlArray[0].split("aliyuncs.com/"); - - String objectName = urlArray2[1].replace("?", ""); - + String objectName = urlArray[0].replace(ConstantPropertiesUtils.PREFIX_URL, ""); + objectName = objectName.replace("?", ""); ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); @@ -207,7 +217,7 @@ // AnalyzerDataCB analyzerDataCB; @Test - void alarmTest() { + void alarmTest() throws UnsupportedEncodingException { // analyzerDataCB.invoke(null, 0, null, null, 0, null, 0, null); @@ -220,6 +230,35 @@ // 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) { + try { + ossService.deleteImages(url); + } catch (UnsupportedEncodingException e) { + throw new RuntimeException(e); + } + } + baseCaseService.removeById(baseCaseVO.getBaseId()); + violationsService.removeById(baseCaseVO.getBaseId()); + }); + } else { + break; + } + i++; + } } diff --git a/ycl-smoke/pom.xml b/ycl-smoke/pom.xml index f7cdd77..aa8e8b2 100644 --- a/ycl-smoke/pom.xml +++ b/ycl-smoke/pom.xml @@ -30,12 +30,12 @@ <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> - <dependency> - <groupId>com.ycl</groupId> - <artifactId>ycl-generator</artifactId> - <version>1.0.0</version> - <scope>compile</scope> - </dependency> +<!-- <dependency>--> +<!-- <groupId>com.ycl</groupId>--> +<!-- <artifactId>ycl-generator</artifactId>--> +<!-- <version>1.0.0</version>--> +<!-- <scope>compile</scope>--> +<!-- </dependency>--> </dependencies> <!-- <build>--> -- Gitblit v1.8.0