|
|
|
|
@@ -1,18 +1,13 @@
|
|
|
|
|
package com.peanut.modules.master.service.impl;
|
|
|
|
|
|
|
|
|
|
import com.aliyun.vod20170321.models.GetVideoPlayAuthResponse;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.peanut.common.utils.ShiroUtils;
|
|
|
|
|
import com.peanut.common.utils.SpdbUtil;
|
|
|
|
|
import com.peanut.modules.common.dao.CourseCatalogueChapterDao;
|
|
|
|
|
import com.peanut.modules.common.dao.CourseCatalogueChapterVideoDao;
|
|
|
|
|
import com.peanut.modules.common.dao.CourseCatalogueDao;
|
|
|
|
|
import com.peanut.modules.common.dao.UserToCourseDao;
|
|
|
|
|
import com.peanut.modules.common.entity.CourseCatalogueChapterEntity;
|
|
|
|
|
import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity;
|
|
|
|
|
import com.peanut.modules.common.entity.CourseCatalogueEntity;
|
|
|
|
|
import com.peanut.modules.common.entity.UserToCourseEntity;
|
|
|
|
|
import com.peanut.modules.common.dao.*;
|
|
|
|
|
import com.peanut.modules.common.entity.*;
|
|
|
|
|
import com.peanut.modules.common.to.ParamTo;
|
|
|
|
|
import com.peanut.modules.master.service.CourseCatalogueChapterVideoService;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
@@ -22,6 +17,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
import javax.xml.ws.soap.Addressing;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
|
@Service("masterCourseCatalogueChapterVideoService")
|
|
|
|
|
@@ -32,6 +28,9 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
|
|
|
|
private CourseCatalogueDao courseCatalogueDao;
|
|
|
|
|
@Autowired
|
|
|
|
|
private UserToCourseDao userToCourseDao;
|
|
|
|
|
@Autowired
|
|
|
|
|
private UserCourseVideoPositionDao userCourseVideoPositionDao;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Page getCourseCatalogueChapterVideoList(ParamTo param) {
|
|
|
|
|
LambdaQueryWrapper<CourseCatalogueChapterVideoEntity> wrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
@@ -63,9 +62,44 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
|
|
|
|
}
|
|
|
|
|
//加密视频组装playauth
|
|
|
|
|
if(video.getType()==1){
|
|
|
|
|
String playAuth = SpdbUtil.getPlayAuth(video.getVideo());
|
|
|
|
|
GetVideoPlayAuthResponse p = SpdbUtil.getPlayAuth(video.getVideo());
|
|
|
|
|
String playAuth = p.getBody().getPlayAuth();
|
|
|
|
|
video.setPlayAuth(playAuth);
|
|
|
|
|
//获取播放记录
|
|
|
|
|
UserCourseVideoPositionEntity videoPosition = getVideoPosition(video, uId, p.getBody().getVideoMeta().getDuration().intValue());
|
|
|
|
|
video.setUserCourseVideoPositionEntity(videoPosition);
|
|
|
|
|
}else{
|
|
|
|
|
UserCourseVideoPositionEntity videoPosition = getVideoPosition(video, uId, 0);
|
|
|
|
|
video.setUserCourseVideoPositionEntity(videoPosition);
|
|
|
|
|
}
|
|
|
|
|
return video;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private UserCourseVideoPositionEntity getVideoPosition(CourseCatalogueChapterVideoEntity video,int userId,int duration){
|
|
|
|
|
List<UserCourseVideoPositionEntity> userCourseVideoPositionEntities = userCourseVideoPositionDao.selectList(new LambdaQueryWrapper<UserCourseVideoPositionEntity>().eq(UserCourseVideoPositionEntity::getUserId, userId).eq(UserCourseVideoPositionEntity::getVideoId, video.getId()));
|
|
|
|
|
if(video.getType()==0){
|
|
|
|
|
if(userCourseVideoPositionEntities.size()>0){
|
|
|
|
|
return userCourseVideoPositionEntities.get(0);
|
|
|
|
|
}else{
|
|
|
|
|
UserCourseVideoPositionEntity userCourseVideoPositionEntity = new UserCourseVideoPositionEntity();
|
|
|
|
|
userCourseVideoPositionEntity.setUserId(userId);
|
|
|
|
|
userCourseVideoPositionEntity.setVideoId(video.getId());
|
|
|
|
|
userCourseVideoPositionDao.insert(userCourseVideoPositionEntity);
|
|
|
|
|
return userCourseVideoPositionEntity;
|
|
|
|
|
}
|
|
|
|
|
}else{//加密视频
|
|
|
|
|
if(userCourseVideoPositionEntities.size()>0){
|
|
|
|
|
return userCourseVideoPositionEntities.get(0);
|
|
|
|
|
}else{
|
|
|
|
|
UserCourseVideoPositionEntity userCourseVideoPositionEntity = new UserCourseVideoPositionEntity();
|
|
|
|
|
userCourseVideoPositionEntity.setUserId(userId);
|
|
|
|
|
userCourseVideoPositionEntity.setVideoId(video.getId());
|
|
|
|
|
userCourseVideoPositionEntity.setDuration(duration);
|
|
|
|
|
userCourseVideoPositionDao.insert(userCourseVideoPositionEntity);
|
|
|
|
|
return userCourseVideoPositionEntity;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|