|
@@ -20,10 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.net.HttpURLConnection;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
/**
|
|
@@ -130,15 +127,18 @@ public class LiveRoomServiceImpl implements LiveRoomService {
|
|
|
.eq("type", 0));
|
|
|
if (Objects.nonNull(video)) {
|
|
|
return;
|
|
|
- } else {
|
|
|
- video = new ImLiveRoomVideo();
|
|
|
}
|
|
|
+ imLiveRoomVideoService.save(initImLiveRoomVideo(roomId, recordId,new Date()));
|
|
|
+ }
|
|
|
+
|
|
|
+ private ImLiveRoomVideo initImLiveRoomVideo(String roomId, String recordId,Date now) {
|
|
|
+ ImLiveRoomVideo video = new ImLiveRoomVideo();
|
|
|
video.setRoomUid(roomId);
|
|
|
video.setRecordId(recordId);
|
|
|
- video.setStartTime(new Date());
|
|
|
+ video.setStartTime(now);
|
|
|
video.setType(0);
|
|
|
- video.setCreatedTime(new Date());
|
|
|
- imLiveRoomVideoService.save(video);
|
|
|
+ video.setCreatedTime(now);
|
|
|
+ return video;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -161,26 +161,28 @@ public class LiveRoomServiceImpl implements LiveRoomService {
|
|
|
String roomId = recordNotify.getRoomId();
|
|
|
//写入数据库
|
|
|
try {
|
|
|
- ImLiveRoomVideo video = imLiveRoomVideoService.getOne(new QueryWrapper<ImLiveRoomVideo>()
|
|
|
- .eq("room_uid_", roomId)
|
|
|
- .eq("record_id_", recordNotify.getRecordId())
|
|
|
- .eq("type", 0));
|
|
|
- if (Objects.isNull(video)) {
|
|
|
+ Date now = new Date();
|
|
|
+ //获取最后一次录制视频
|
|
|
+ ImLiveRoomVideo video = imLiveRoomVideoService.getDao().getLastRecord(roomId,recordNotify.getRecordId());
|
|
|
+ if(Objects.isNull(video)){
|
|
|
+ log.error("获取录制视频失败:roomId : {} ,recordId:{}", roomId, recordNotify.getRecordId());
|
|
|
return;
|
|
|
}
|
|
|
- Date now = new Date();
|
|
|
- video.setEndTime(now);
|
|
|
- video.setType(2);
|
|
|
- //逗号拼接录制视频地址
|
|
|
- String videoUrl = video.getUrl();
|
|
|
- if (StringUtils.isEmpty(videoUrl)) {
|
|
|
- videoUrl = fileUrl;
|
|
|
- } else {
|
|
|
- videoUrl = videoUrl + "," + fileUrl;
|
|
|
+ if (StringUtils.isNotEmpty(video.getUrl())) {
|
|
|
+ //保存切片
|
|
|
+ ImLiveRoomVideo imLiveRoomVideo = initImLiveRoomVideo(roomId, recordNotify.getRecordId(), now);
|
|
|
+ imLiveRoomVideo.setStartTime(video.getEndTime());
|
|
|
+ video.setUrl(fileUrl);
|
|
|
+ video.setType(2);
|
|
|
+ imLiveRoomVideoService.save(imLiveRoomVideo);
|
|
|
+ return;
|
|
|
+ }else {
|
|
|
+ video.setEndTime(now);
|
|
|
+ video.setType(2);
|
|
|
+ video.setUrl(fileUrl);
|
|
|
+ video.setCreatedTime(now);
|
|
|
+ imLiveRoomVideoService.updateById(video);
|
|
|
}
|
|
|
- video.setUrl(videoUrl);
|
|
|
- video.setCreatedTime(now);
|
|
|
- imLiveRoomVideoService.updateById(video);
|
|
|
} catch (Exception e) {
|
|
|
log.error("recordSync >>>> error : {}", e.getMessage());
|
|
|
}
|