加密视频验证
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.peanut.modules.common.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -26,4 +27,7 @@ public class CourseCatalogueChapterVideoEntity {
|
||||
|
||||
@TableLogic
|
||||
private Integer delFlag;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String playAuth;
|
||||
}
|
||||
|
||||
@@ -7,4 +7,6 @@ import com.peanut.modules.common.to.ParamTo;
|
||||
|
||||
public interface CourseCatalogueChapterVideoService extends IService<CourseCatalogueChapterVideoEntity> {
|
||||
Page getCourseCatalogueChapterVideoList(ParamTo param);
|
||||
|
||||
CourseCatalogueChapterVideoEntity checkVideo(CourseCatalogueChapterVideoEntity video) throws Exception;
|
||||
}
|
||||
|
||||
@@ -3,17 +3,35 @@ package com.peanut.modules.master.service.impl;
|
||||
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.to.ParamTo;
|
||||
import com.peanut.modules.master.service.CourseCatalogueChapterVideoService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.xml.ws.soap.Addressing;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@Service("masterCourseCatalogueChapterVideoService")
|
||||
public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCatalogueChapterVideoDao, CourseCatalogueChapterVideoEntity> implements CourseCatalogueChapterVideoService {
|
||||
|
||||
@Autowired
|
||||
private CourseCatalogueChapterDao courseCatalogueChapterDao;
|
||||
@Autowired
|
||||
private CourseCatalogueDao courseCatalogueDao;
|
||||
@Autowired
|
||||
private UserToCourseDao userToCourseDao;
|
||||
@Override
|
||||
public Page getCourseCatalogueChapterVideoList(ParamTo param) {
|
||||
LambdaQueryWrapper<CourseCatalogueChapterVideoEntity> wrapper = new LambdaQueryWrapper<>();
|
||||
@@ -22,4 +40,32 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
||||
Page<CourseCatalogueChapterVideoEntity> page = this.page(new Page<>(param.getPage(), param.getLimit()), wrapper);
|
||||
return page;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public CourseCatalogueChapterVideoEntity checkVideo(CourseCatalogueChapterVideoEntity video) throws Exception {
|
||||
CourseCatalogueChapterEntity courseCatalogueChapterEntity = courseCatalogueChapterDao.selectById(video.getChapterId());
|
||||
CourseCatalogueEntity courseCatalogueEntity = courseCatalogueDao.selectById(courseCatalogueChapterEntity.getCatalogueId());
|
||||
Integer uId = ShiroUtils.getUId();
|
||||
List<UserToCourseEntity> userToCourseEntities = userToCourseDao.selectList(new LambdaQueryWrapper<UserToCourseEntity>().eq(UserToCourseEntity::getUserId, uId).eq(UserToCourseEntity::getCourseId, courseCatalogueEntity.getCourseId()));
|
||||
//用户课程足迹
|
||||
if(userToCourseEntities.size()!=0){
|
||||
UserToCourseEntity userToCourseEntity = userToCourseEntities.get(0);
|
||||
userToCourseEntity.setUpdateTime(new Date());
|
||||
userToCourseDao.updateById(userToCourseEntity);
|
||||
}else{
|
||||
UserToCourseEntity userToCourseEntity = new UserToCourseEntity();
|
||||
userToCourseEntity.setUserId(uId);
|
||||
userToCourseEntity.setCourseId(courseCatalogueEntity.getCourseId());
|
||||
userToCourseEntity.setCreateTime(new Date());
|
||||
userToCourseEntity.setUpdateTime(new Date());
|
||||
userToCourseDao.insert(userToCourseEntity);
|
||||
}
|
||||
//加密视频组装playauth
|
||||
if(video.getType()==1){
|
||||
String playAuth = SpdbUtil.getPlayAuth(video.getVideo());
|
||||
video.setPlayAuth(playAuth);
|
||||
}
|
||||
return video;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,19 @@
|
||||
package com.peanut.modules.sociology.controller;
|
||||
|
||||
import com.aliyun.tea.TeaException;
|
||||
import com.aliyun.teautil.models.RuntimeOptions;
|
||||
import com.aliyun.vod20170321.Client;
|
||||
import com.aliyun.vod20170321.models.*;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.peanut.common.utils.R;
|
||||
import com.peanut.common.utils.ShiroUtils;
|
||||
import com.peanut.common.utils.SpdbUtil;
|
||||
import com.peanut.modules.common.dao.CourseCatalogueChapterVideoDao;
|
||||
import com.peanut.modules.common.entity.CourseCatalogueChapterEntity;
|
||||
import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity;
|
||||
import com.peanut.modules.common.entity.CourseEntity;
|
||||
import com.peanut.modules.common.to.ParamTo;
|
||||
import com.peanut.modules.master.service.CourseCatalogueChapterVideoService;
|
||||
import com.peanut.modules.sociology.service.CourseCatalogueChapterService;
|
||||
import com.peanut.modules.sociology.service.CourseService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -26,6 +34,8 @@ public class CourseController {
|
||||
private CourseService courseService;
|
||||
@Autowired
|
||||
private CourseCatalogueChapterService courseCatalogueChapterService;
|
||||
@Autowired
|
||||
private CourseCatalogueChapterVideoService courseCatalogueChapterVideoService;
|
||||
|
||||
/**
|
||||
* 获取用户最近学习课程列表
|
||||
@@ -95,4 +105,22 @@ public class CourseController {
|
||||
return R.ok().put("chapterList",courseCatalogueChapterList);
|
||||
}
|
||||
|
||||
@RequestMapping("/getPlayAuth")
|
||||
public R getPlayAuth(@RequestBody Map<String,String> map) throws Exception {
|
||||
String playAuth = SpdbUtil.getPlayAuth(map.get("vid"));
|
||||
return R.ok().put("playAuth",playAuth);
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证video权限,并解决足迹,加密视频签名问题
|
||||
* @param video
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@RequestMapping("/checkVideo")
|
||||
public R checkVideo(@RequestBody CourseCatalogueChapterVideoEntity video) throws Exception {
|
||||
CourseCatalogueChapterVideoEntity courseCatalogueChapterVideoEntity = courseCatalogueChapterVideoService.checkVideo(video);
|
||||
return R.ok().put("video",courseCatalogueChapterVideoEntity);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user