支持云端录像打包下载
This commit is contained in:
@@ -6,6 +6,7 @@ import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||
import com.genersoft.iot.vmp.service.bean.CloudRecordItem;
|
||||
import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;
|
||||
import com.genersoft.iot.vmp.service.bean.ErrorCallback;
|
||||
import com.genersoft.iot.vmp.vmanager.cloudRecord.bean.CloudRecordUrl;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
import java.util.List;
|
||||
@@ -68,4 +69,8 @@ public interface ICloudRecordService {
|
||||
void deleteFileByIds(Set<Integer> ids);
|
||||
|
||||
void loadMP4File(String app, String stream, int cloudRecordId, ErrorCallback<StreamInfo> callback);
|
||||
|
||||
List<CloudRecordUrl> getUrlListByIds(List<Integer> ids);
|
||||
|
||||
List<CloudRecordUrl> getUrlList(String app, String stream, String callId);
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
import com.genersoft.iot.vmp.storager.dao.CloudRecordServiceMapper;
|
||||
import com.genersoft.iot.vmp.utils.DateUtil;
|
||||
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
|
||||
import com.genersoft.iot.vmp.vmanager.cloudRecord.bean.CloudRecordUrl;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -385,4 +386,46 @@ public class CloudRecordServiceImpl implements ICloudRecordService {
|
||||
throw new ControllerException(ErrorCode.ERROR100.getCode(), stringBuilder.toString());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CloudRecordUrl> getUrlListByIds(List<Integer> ids) {
|
||||
List<CloudRecordItem> cloudRecordItems = cloudRecordServiceMapper.queryRecordByIds(ids);
|
||||
if (cloudRecordItems.isEmpty()) {
|
||||
return List.of();
|
||||
}
|
||||
return getCloudRecordUrl(cloudRecordItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CloudRecordUrl> getUrlList(String app, String stream, String callId) {
|
||||
List<CloudRecordItem> cloudRecordItems = cloudRecordServiceMapper.queryRecordByAppStreamAndCallId(app, stream, callId);
|
||||
if (cloudRecordItems.isEmpty()) {
|
||||
return List.of();
|
||||
}
|
||||
return getCloudRecordUrl(cloudRecordItems);
|
||||
}
|
||||
|
||||
private List<CloudRecordUrl> getCloudRecordUrl(List<CloudRecordItem> cloudRecordItems) {
|
||||
if (cloudRecordItems.isEmpty()) {
|
||||
return List.of();
|
||||
}
|
||||
List<CloudRecordUrl> resultList = new ArrayList<>();
|
||||
for (CloudRecordItem cloudRecordItem : cloudRecordItems) {
|
||||
CloudRecordUrl cloudRecordUrl = new CloudRecordUrl();
|
||||
cloudRecordUrl.setId(cloudRecordItem.getId());
|
||||
cloudRecordUrl.setFileName(cloudRecordItem.getStartTime() + ".mp4");
|
||||
cloudRecordUrl.setFilePath(cloudRecordItem.getFilePath());
|
||||
if (!userSetting.getServerId().equals(cloudRecordItem.getServerId())) {
|
||||
cloudRecordUrl.setDownloadUrl(redisRpcPlayService.getRecordPlayUrl(cloudRecordItem.getServerId(), cloudRecordItem.getId()).getHttpPath());
|
||||
}else {
|
||||
MediaServer mediaServer = mediaServerService.getOne(cloudRecordItem.getMediaServerId());
|
||||
mediaServer.setStreamIp(mediaServer.getIp());
|
||||
DownloadFileInfo downloadFilePath = mediaServerService.getDownloadFilePath(mediaServer, RecordInfo.getInstance(cloudRecordItem));
|
||||
cloudRecordUrl.setDownloadUrl(downloadFilePath.getHttpPath());
|
||||
}
|
||||
resultList.add(cloudRecordUrl);
|
||||
}
|
||||
|
||||
return resultList;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user