| | |
| | | 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.media.bean.MediaServer; |
| | | import com.genersoft.iot.vmp.media.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.stereotype.Component; |
| | | |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | @Autowired |
| | | private CloudRecordServiceMapper cloudRecordServiceMapper; |
| | | |
| | | @Autowired |
| | | private ZLMRESTfulUtils zlmresTfulUtils; |
| | | |
| | | /** |
| | | * 定时查询待删除的录像文件 |
| | | */ |
| | |
| | | public void execute(){ |
| | | logger.info("[录像文件定时清理] 开始清理过期录像文件"); |
| | | // 获取配置了assist的流媒体节点 |
| | | List<MediaServerItem> mediaServerItemList = mediaServerService.getAllOnline(); |
| | | List<MediaServer> mediaServerItemList = mediaServerService.getAllOnline(); |
| | | if (mediaServerItemList.isEmpty()) { |
| | | return; |
| | | } |
| | | long result = 0; |
| | | for (MediaServerItem mediaServerItem : mediaServerItemList) { |
| | | for (MediaServer mediaServerItem : mediaServerItemList) { |
| | | |
| | | Calendar lastCalendar = Calendar.getInstance(); |
| | | if (mediaServerItem.getRecordDay() > 0) { |
| | |
| | | if (cloudRecordItemList.isEmpty()) { |
| | | continue; |
| | | } |
| | | // TODO 后续可以删除空了的过期日期文件夹 |
| | | for (CloudRecordItem cloudRecordItem : cloudRecordItemList) { |
| | | String date = new File(cloudRecordItem.getFilePath()).getParentFile().getName(); |
| | | JSONObject jsonObject = zlmresTfulUtils.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(), |
| | | boolean deleteResult = mediaServerService.deleteRecordDirectory(mediaServerItem, cloudRecordItem.getApp(), |
| | | cloudRecordItem.getStream(), date, cloudRecordItem.getFileName()); |
| | | if (jsonObject.getInteger("code") != 0) { |
| | | logger.warn("[录像文件定时清理] 删除磁盘文件错误: {}:{}", cloudRecordItem.getFilePath(), jsonObject); |
| | | if (deleteResult) { |
| | | logger.warn("[录像文件定时清理] 删除磁盘文件成功: {}", cloudRecordItem.getFilePath()); |
| | | } |
| | | } |
| | | result += cloudRecordServiceMapper.deleteList(cloudRecordItemList); |