From 75fccfaf1774b0902eec6e7dd8b2dac8105fa04b Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 01 十一月 2023 10:45:36 +0800 Subject: [PATCH] 使用zlm原生接口删除录像文件 --- src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java | 31 +++++++++++++++++++++++-------- 1 files changed, 23 insertions(+), 8 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 index 9424750..7e11833 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/CloudRecordTimer.java @@ -3,8 +3,10 @@ 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; @@ -13,6 +15,7 @@ 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; @@ -33,12 +36,13 @@ private CloudRecordServiceMapper cloudRecordServiceMapper; @Autowired - private AssistRESTfulUtils assistRESTfulUtils; + private ZLMRESTfulUtils zlmresTfulUtils; /** * 瀹氭椂鏌ヨ寰呭垹闄ょ殑褰曞儚鏂囦欢 */ @Scheduled(cron = "0 0 0 * * ?") //姣忓ぉ鐨�0鐐规墽琛� +// @Scheduled(fixedRate = 5000) public void execute(){ logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 寮�濮嬫竻鐞嗚繃鏈熷綍鍍忔枃浠�"); // 鑾峰彇閰嶇疆浜哸ssist鐨勬祦濯掍綋鑺傜偣 @@ -55,18 +59,29 @@ // 鑾峰彇淇濆瓨鐨勬渶鍚庢埅鑷虫棩鏈燂紝鍥犱负姣忎釜鑺傜偣閮芥湁涓�涓棩鏈燂紝涔熷氨鏄敮鎸佹瘡涓妭鐐硅缃笉鍚岀殑淇濆瓨鏃ユ湡锛� lastCalendar.add(Calendar.DAY_OF_MONTH, -mediaServerItem.getRecordDate()); Long lastDate = lastCalendar.getTimeInMillis(); + // 鑾峰彇鍒版埅鑷虫棩鏈熶箣鍓嶇殑褰曞儚鏂囦欢鍒楄〃锛屾枃浠跺垪琛ㄦ弧瓒虫湭琚敹钘忓拰淇濇寔鐨勩�傝繖涓や釜瀛楁鐩墠鍏辫兘涓�鑷达紝 // 涓烘垜鑷繁涓氬姟绯荤粺鐩稿叧鐨勪唬鐮侊紝澶у浣跨敤鐨勬椂鍊欑洿鎺ヤ娇鐢ㄦ敹钘忥紙collect锛夎繖涓�涓被鍨嬪嵆鍙� - List<String> filePathList = cloudRecordServiceMapper.queryRecordFilePathListForDelete(lastDate, mediaServerItem.getId()); - if (filePathList.isEmpty()) { + List<CloudRecordItem> cloudRecordItemList = cloudRecordServiceMapper.queryRecordListForDelete(lastDate, mediaServerItem.getId()); + if (cloudRecordItemList.isEmpty()) { continue; } - // 鍏堣皟鐢╝ssist鍒犻櫎纾佺洏鏂囦欢锛屽垹闄ゆ垚鍔熷悗鍐嶅垹闄ゆ暟鎹簱璁板綍 - JSONObject jsonObject = assistRESTfulUtils.deleteFiles(mediaServerItem, filePathList); - if (jsonObject != null && jsonObject.getInteger("code") == 0 && jsonObject.getInteger("data") > 0) { - result += jsonObject.getInteger("data"); - cloudRecordServiceMapper.deleteByFileList(filePathList, mediaServerItem.getId()); + List<Integer> cloudRecordItemIdList = new ArrayList<>(); + 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) { + cloudRecordItemIdList.add(cloudRecordItem.getId()); + }else { + logger.warn("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍒犻櫎纾佺洏鏂囦欢閿欒锛� {}", jsonObject); + } } + if (cloudRecordItemIdList.isEmpty()) { + continue; + } + cloudRecordServiceMapper.deleteList(cloudRecordItemIdList, mediaServerItem.getId()); + result += cloudRecordItemIdList.size(); } } logger.info("[褰曞儚鏂囦欢瀹氭椂娓呯悊] 鍏辨竻鐞唟}涓繃鏈熷綍鍍忔枃浠�", result); -- Gitblit v1.8.0