This commit is contained in:
wangjinlei
2024-05-28 18:24:50 +08:00
parent 1b47c563dd
commit 0dadb2e7d4

View File

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.xml.ws.soap.Addressing;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -36,6 +37,12 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
private AsyncService asyncService;
@Autowired
private UserCourseBuyDao userCourseBuyDao;
@Autowired
private CourseToSociologyDao courseToSociologyDao;
@Autowired
private CourseToMedicineDao courseToMedicineDao;
@Autowired
private MyUserDao userDao;
@Override
public Page getCourseCatalogueChapterVideoList(ParamTo param) {
@@ -57,16 +64,28 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
CourseCatalogueChapterEntity courseCatalogueChapterEntity = courseCatalogueChapterDao.selectById(video.getChapterId());
CourseCatalogueEntity courseCatalogueEntity = courseCatalogueDao.selectById(courseCatalogueChapterEntity.getCatalogueId());
Integer uId = ShiroUtils.getUId();
MyUserEntity userEntity = userDao.selectById(uId);
//审查课程观看权限
if(!courseCheckVip(userEntity,courseCatalogueEntity.getCourseId())&&!courseCheckBuy(userEntity,courseCatalogueEntity)){
return R.error(505,"鉴权失败!");
}
//处理课程开始计时的逻辑
// if(courseCatalogueChapterEntity.getIsAudition()==0){
// userCourseBuyDao.selectList(new LambdaQueryWrapper<UserCourseBuyEntity>()
// .eq(UserCourseBuyEntity::getUserId,uId)
// .eq())
// }
if(courseCatalogueChapterEntity.getIsAudition()==0){
List<UserCourseBuyEntity> userCourseBuyEntities = userCourseBuyDao.selectList(new LambdaQueryWrapper<UserCourseBuyEntity>()
.eq(UserCourseBuyEntity::getUserId, uId)
.eq(UserCourseBuyEntity::getCatalogueId, courseCatalogueEntity.getId())
.eq(UserCourseBuyEntity::getEndTime,null));
if (userCourseBuyEntities.size()>0){
for (UserCourseBuyEntity u:userCourseBuyEntities){
u.setStartTime(new Date());
Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_MONTH,u.getDays());
u.setEndTime(cal.getTime());
userCourseBuyDao.updateById(u);
}
}
}
//处理用户课程足迹
List<UserToCourseEntity> userToCourseEntities = userToCourseDao.selectList(new LambdaQueryWrapper<UserToCourseEntity>().eq(UserToCourseEntity::getUserId, uId).eq(UserToCourseEntity::getCourseId, courseCatalogueEntity.getCourseId()));
if (userToCourseEntities.size() != 0) {
@@ -143,4 +162,32 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
return userCourseVideoPositionEntity;
}
}
private boolean courseCheckVip(MyUserEntity u,int courseId){
if(u.getVip()=="1"){
return true;
}
if(u.getVip()=="3"){
Integer integer = courseToSociologyDao.selectCount(new LambdaQueryWrapper<CourseToSociologyEntity>().eq(CourseToSociologyEntity::getCourseId, courseId));
if(integer>0){
return true;
}
}
if(u.getVip()=="2"){
Integer integer = courseToMedicineDao.selectCount(new LambdaQueryWrapper<CourseToMedicine>().eq(CourseToMedicine::getCourseId, courseId));
if(integer>0){
return true;
}
}
return false;
}
private boolean courseCheckBuy(MyUserEntity u,CourseCatalogueEntity courseCatalogueEntity){
LambdaQueryWrapper<UserCourseBuyEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(UserCourseBuyEntity::getUserId,u.getId());
wrapper.eq(UserCourseBuyEntity::getCatalogueId,courseCatalogueEntity.getId());
wrapper.and(r->r.eq(UserCourseBuyEntity::getEndTime,null).or().lt(UserCourseBuyEntity::getEndTime,new Date()));
Integer integer = userCourseBuyDao.selectCount(wrapper);
return integer>0;
}
}