From 9a96597e666fa32caefcfff5246b4cb722e9b1bc Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 16 一月 2024 14:10:27 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into main-dev --- src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java | 83 +++++++++++++++++++++++++++++++++++++++++ 1 files changed, 83 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java b/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java new file mode 100644 index 0000000..f98977f --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java @@ -0,0 +1,83 @@ +package com.genersoft.iot.vmp.conf; + + +import com.alibaba.fastjson2.JSONObject; +import com.genersoft.iot.vmp.media.zlm.AssistRESTfulUtils; +import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.service.IMediaServerService; +import com.genersoft.iot.vmp.service.bean.CloudRecordItem; +import com.genersoft.iot.vmp.storager.dao.CloudRecordServiceMapper; +import com.genersoft.iot.vmp.vmanager.cloudRecord.CloudRecordController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +/** + * 褰曞儚鏂囦欢瀹氭椂鍒犻櫎 + */ +@Component +public class CloudRecordTimer { + + private final static Logger logger = LoggerFactory.getLogger(CloudRecordTimer.class); + + @Autowired + private IMediaServerService mediaServerService; + + @Autowired + private CloudRecordServiceMapper cloudRecordServiceMapper; + + @Autowired + private ZLMRESTfulUtils zlmresTfulUtils; + + /** + * 瀹氭椂鏌ヨ寰呭垹闄ょ殑褰曞儚鏂囦欢 + */ +// @Scheduled(fixedRate = 10000) //姣忎簲绉掓墽琛屼竴娆★紝鏂逛究娴嬭瘯 + @Scheduled(cron = "0 0 0 * * ?") //姣忓ぉ鐨�0鐐规墽琛� + public void execute(){ + logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 寮�濮嬫竻鐞嗚繃鏈熷綍鍍忔枃浠�"); + // 鑾峰彇閰嶇疆浜哸ssist鐨勬祦濯掍綋鑺傜偣 + List<MediaServerItem> mediaServerItemList = mediaServerService.getAllOnline(); + if (mediaServerItemList.isEmpty()) { + return; + } + long result = 0; + for (MediaServerItem mediaServerItem : mediaServerItemList) { + + Calendar lastCalendar = Calendar.getInstance(); + if (mediaServerItem.getRecordDay() > 0) { + lastCalendar.setTime(new Date()); + // 鑾峰彇淇濆瓨鐨勬渶鍚庢埅鑷虫棩[鏈燂紝鍥犱负姣忎釜鑺傜偣閮芥湁涓�涓棩鏈燂紝涔熷氨鏄敮鎸佹瘡涓妭鐐硅缃笉鍚岀殑淇濆瓨鏃ユ湡锛� + lastCalendar.add(Calendar.DAY_OF_MONTH, -mediaServerItem.getRecordDay()); + Long lastDate = lastCalendar.getTimeInMillis(); + + // 鑾峰彇鍒版埅鑷虫棩鏈熶箣鍓嶇殑褰曞儚鏂囦欢鍒楄〃锛屾枃浠跺垪琛ㄦ弧瓒虫湭琚敹钘忓拰淇濇寔鐨勩�傝繖涓や釜瀛楁鐩墠鍏辫兘涓�鑷达紝 + // 涓烘垜鑷繁涓氬姟绯荤粺鐩稿叧鐨勪唬鐮侊紝澶у浣跨敤鐨勬椂鍊欑洿鎺ヤ娇鐢ㄦ敹钘忥紙collect锛夎繖涓�涓被鍨嬪嵆鍙� + List<CloudRecordItem> cloudRecordItemList = cloudRecordServiceMapper.queryRecordListForDelete(lastDate, mediaServerItem.getId()); + if (cloudRecordItemList.isEmpty()) { + continue; + } + // TODO 鍚庣画鍙互鍒犻櫎绌轰簡鐨勮繃鏈熸棩鏈熸枃浠跺す + for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { + String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName(); + JSONObject jsonObject = zlmresTfulUtils.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(), + cloudRecordItem.getStream(), date, cloudRecordItem.getFileName()); + if (jsonObject.getInteger("code") != 0) { + logger.warn("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍒犻櫎纾佺洏鏂囦欢閿欒锛� {}:{}", cloudRecordItem.getFilePath(), jsonObject); + } + } + result += cloudRecordServiceMapper.deleteList(cloudRecordItemList); + } + } + logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍏辨竻鐞唟}涓繃鏈熷綍鍍忔枃浠�", result); + } +} -- Gitblit v1.8.0