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