|
|
@@ -0,0 +1,75 @@
|
|
|
+package com.genersoft.iot.vmp.extend.service;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.genersoft.iot.vmp.extend.dto.ExtendRecordPageDto;
|
|
|
+import com.genersoft.iot.vmp.extend.entity.ExtendRecord;
|
|
|
+import com.genersoft.iot.vmp.extend.mapper.ExtendRecordMapper;
|
|
|
+import com.genersoft.iot.vmp.media.bean.MediaServer;
|
|
|
+import com.genersoft.iot.vmp.media.service.IMediaServerService;
|
|
|
+import com.genersoft.iot.vmp.utils.CloudRecordUtils;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class ExtendRecordService extends ServiceImpl<ExtendRecordMapper, ExtendRecord> {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IMediaServerService mediaServerService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 分页查询
|
|
|
+ * @param dto
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public PageInfo<ExtendRecord> page(ExtendRecordPageDto dto) {
|
|
|
+ PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
|
|
|
+ LambdaQueryWrapper<ExtendRecord> lqw = new LambdaQueryWrapper<>();
|
|
|
+ if(StrUtil.isNotBlank(dto.getDeviceId())) {
|
|
|
+ if(StrUtil.isNotBlank(dto.getChannelId())) {
|
|
|
+ lqw.eq(ExtendRecord :: getStream,dto.getDeviceId()+"_"+dto.getChannelId());
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ lqw.likeRight(ExtendRecord :: getStream,dto.getDeviceId()+"_");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ if(StrUtil.isNotBlank(dto.getChannelId())) {
|
|
|
+ lqw.likeLeft(ExtendRecord :: getStream,"_"+dto.getChannelId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(StrUtil.isNotBlank(dto.getDate())) {
|
|
|
+ Date date = DateUtil.parse(dto.getDate(),"yyyy-MM-dd");
|
|
|
+ long dateStart = date.getTime();
|
|
|
+ long dateEnd = dateStart + 1000l*60*60*24 -1;
|
|
|
+ lqw.and((wrapper)->{
|
|
|
+ wrapper.between(ExtendRecord :: getStartTime,dateStart,dateEnd);
|
|
|
+ wrapper.or().between(ExtendRecord :: getEndTime,dateStart,dateEnd);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ List<ExtendRecord> rsList = list(lqw);
|
|
|
+
|
|
|
+ // 填充播放完整路径
|
|
|
+ Map<String,MediaServer> mediaServerMap = new HashMap<>();
|
|
|
+ for(ExtendRecord temp : rsList) {
|
|
|
+ String mediaServerId = temp.getMediaServerId();
|
|
|
+ MediaServer mediaServer = mediaServerMap.get(mediaServerId);
|
|
|
+ if(mediaServer == null) {
|
|
|
+ mediaServer = mediaServerService.getOne(mediaServerId);
|
|
|
+ mediaServerMap.put(mediaServerId,mediaServer);
|
|
|
+ }
|
|
|
+ temp.setDownloadFileInfo(CloudRecordUtils.getDownloadFilePath(mediaServer, temp.getFilePath()));
|
|
|
+ }
|
|
|
+ return new PageInfo<>(rsList);
|
|
|
+ }
|
|
|
+
|
|
|
+}
|