鉴权时添加太湖云医课程
This commit is contained in:
@@ -1,7 +1,11 @@
|
|||||||
package com.peanut.modules.common.service;
|
package com.peanut.modules.common.service;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import com.peanut.common.utils.R;
|
||||||
import com.peanut.modules.common.entity.CourseTaihumed;
|
import com.peanut.modules.common.entity.CourseTaihumed;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
public interface CourseTaihumedService extends IService<CourseTaihumed> {
|
public interface CourseTaihumedService extends IService<CourseTaihumed> {
|
||||||
|
Map<String,Object> checkPermission(Map<String,Object> params);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,135 @@
|
|||||||
package com.peanut.modules.common.service.impl;
|
package com.peanut.modules.common.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.peanut.common.utils.DateUtils;
|
||||||
|
import com.peanut.common.utils.R;
|
||||||
|
import com.peanut.common.utils.ShiroUtils;
|
||||||
import com.peanut.modules.common.dao.CourseTaihumedDao;
|
import com.peanut.modules.common.dao.CourseTaihumedDao;
|
||||||
import com.peanut.modules.common.entity.CourseTaihumed;
|
import com.peanut.modules.common.dao.CourseToTaihumedDao;
|
||||||
|
import com.peanut.modules.common.dao.CourseToTalentDao;
|
||||||
|
import com.peanut.modules.common.dao.TaihuTalentDao;
|
||||||
|
import com.peanut.modules.common.entity.*;
|
||||||
import com.peanut.modules.common.service.CourseTaihumedService;
|
import com.peanut.modules.common.service.CourseTaihumedService;
|
||||||
|
import com.peanut.modules.common.service.UserVipService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("commonCourseTaihumedService")
|
@Service("commonCourseTaihumedService")
|
||||||
public class CourseTaihumedServiceImpl extends ServiceImpl<CourseTaihumedDao, CourseTaihumed> implements CourseTaihumedService {
|
public class CourseTaihumedServiceImpl extends ServiceImpl<CourseTaihumedDao, CourseTaihumed> implements CourseTaihumedService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CourseTaihumedDao coursetaihumedDao;
|
||||||
|
@Autowired
|
||||||
|
private CourseToTaihumedDao courseToTaihumedDao;
|
||||||
|
@Autowired
|
||||||
|
private UserVipService userVipService;
|
||||||
|
@Autowired
|
||||||
|
private TaihuTalentDao taihuTalentDao;
|
||||||
|
@Autowired
|
||||||
|
private CourseToTalentDao courseToTalentDao;
|
||||||
|
|
||||||
|
public Map<String,Object> checkPermission(Map<String,Object> params){
|
||||||
|
Map<String,Object> res = new HashMap<>();
|
||||||
|
boolean flag = false;
|
||||||
|
String msg = "";
|
||||||
|
//查询当前课程绑定的标签
|
||||||
|
List<CourseToTaihumed> courseToTaihumeds = courseToTaihumedDao.selectList(new LambdaQueryWrapper<CourseToTaihumed>()
|
||||||
|
.eq(CourseToTaihumed::getCourseId,params.get("courseId")));
|
||||||
|
List<Integer> taihumedLabelIds = new ArrayList<>();
|
||||||
|
//当前课程的顶级标签
|
||||||
|
for (CourseToTaihumed ctt:courseToTaihumeds){
|
||||||
|
topLael(taihumedLabelIds,ctt.getTaihumedId());
|
||||||
|
}
|
||||||
|
//超级vip可看当前板块所有课程
|
||||||
|
for (int i:taihumedLabelIds){
|
||||||
|
if (i==99&&userVipService.is4569SVip(ShiroUtils.getUId())){
|
||||||
|
flag = true;
|
||||||
|
List<UserVip> userVips = userVipService.list(new LambdaQueryWrapper<UserVip>()
|
||||||
|
.eq(UserVip::getUserId,ShiroUtils.getUId())
|
||||||
|
.eq(UserVip::getState,0)
|
||||||
|
.in(UserVip::getType,4,5,6,9)
|
||||||
|
.orderByAsc(UserVip::getEndTime));
|
||||||
|
msg = DateUtils.format(userVips.get(0).getEndTime(),"yyyy-MM-dd HH:mm:ss");
|
||||||
|
}
|
||||||
|
if (i==100&&userVipService.is78SVip(ShiroUtils.getUId())){
|
||||||
|
flag = true;
|
||||||
|
List<UserVip> userVips = userVipService.list(new LambdaQueryWrapper<UserVip>()
|
||||||
|
.eq(UserVip::getUserId,ShiroUtils.getUId())
|
||||||
|
.eq(UserVip::getState,0)
|
||||||
|
.in(UserVip::getType,7,8)
|
||||||
|
.orderByAsc(UserVip::getEndTime));
|
||||||
|
msg = DateUtils.format(userVips.get(0).getEndTime(),"yyyy-MM-dd HH:mm:ss");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!flag){
|
||||||
|
//太湖英才可看自己和当前板块的所有课程orderList
|
||||||
|
TaihuTalent taihuTalent = taihuTalentDao.selectOne(new LambdaQueryWrapper<TaihuTalent>()
|
||||||
|
.eq(TaihuTalent::getUserId, ShiroUtils.getUId()));
|
||||||
|
if (taihuTalent != null){
|
||||||
|
List<CourseToTalent> courseToTalents = courseToTalentDao.selectList(new LambdaQueryWrapper<CourseToTalent>()
|
||||||
|
.eq(CourseToTalent::getTalentId,taihuTalent.getId()));
|
||||||
|
List<Integer> collect = courseToTalents.stream().map(CourseToTalent::getCourseId).collect(Collectors.toList());
|
||||||
|
List<CourseToTaihumed> cTTs = courseToTaihumedDao.selectList(new LambdaQueryWrapper<CourseToTaihumed>()
|
||||||
|
.in(CourseToTaihumed::getCourseId,collect)
|
||||||
|
.ne(CourseToTaihumed::getTaihumedId,101));
|
||||||
|
List<Integer> tls = new ArrayList<>();
|
||||||
|
for (CourseToTaihumed ctt:cTTs){
|
||||||
|
topLael(tls,ctt.getTaihumedId());
|
||||||
|
}
|
||||||
|
for (int i:tls){
|
||||||
|
for (int j:taihumedLabelIds){
|
||||||
|
if (i==j){
|
||||||
|
flag = true;
|
||||||
|
msg = "本人课程及标签下所有";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!flag){
|
||||||
|
//会议论坛
|
||||||
|
if (collect.contains(params.get("courseId"))){
|
||||||
|
flag = true;
|
||||||
|
msg = "本人课程";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// if (!flag){
|
||||||
|
// //不是太湖英才,不是vip,查询买课
|
||||||
|
// List<UserCourseBuyEntity> ucbs = userCourseBuyService.list(new LambdaQueryWrapper<UserCourseBuyEntity>()
|
||||||
|
// .eq(UserCourseBuyEntity::getUserId,ShiroUtils.getUId())
|
||||||
|
// .eq(UserCourseBuyEntity::getCatalogueId,params.get("catalogueId"))
|
||||||
|
// .orderByDesc(UserCourseBuyEntity::getEndTime));
|
||||||
|
// if (ucbs.size() > 0){
|
||||||
|
// flag = true;
|
||||||
|
// endTime = ucbs.get(0).getEndTime()==null?"":ucbs.get(0).getEndTime().toString();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
res.put("flag",flag);
|
||||||
|
res.put("msg",msg);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public void topLael(List<Integer> list, int courseTaihumedId){
|
||||||
|
CourseTaihumed courseTaihumed = coursetaihumedDao.selectById(courseTaihumedId);
|
||||||
|
if (courseTaihumed.getPid()==0){
|
||||||
|
list.add(courseTaihumed.getId());
|
||||||
|
}else {
|
||||||
|
CourseTaihumed pCourseTaihumed = coursetaihumedDao.selectOne(new LambdaQueryWrapper<CourseTaihumed>()
|
||||||
|
.eq(CourseTaihumed::getId,courseTaihumed.getPid()));
|
||||||
|
topLael(list,pCourseTaihumed.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,15 +12,15 @@ import com.peanut.common.utils.ShiroUtils;
|
|||||||
import com.peanut.common.utils.SpdbUtil;
|
import com.peanut.common.utils.SpdbUtil;
|
||||||
import com.peanut.modules.common.dao.*;
|
import com.peanut.modules.common.dao.*;
|
||||||
import com.peanut.modules.common.entity.*;
|
import com.peanut.modules.common.entity.*;
|
||||||
|
import com.peanut.modules.common.service.CourseTaihumedService;
|
||||||
import com.peanut.modules.common.service.UserVipService;
|
import com.peanut.modules.common.service.UserVipService;
|
||||||
import com.peanut.modules.common.to.ParamTo;
|
import com.peanut.modules.common.to.ParamTo;
|
||||||
import com.peanut.modules.master.service.CourseCatalogueChapterVideoService;
|
import com.peanut.modules.master.service.CourseCatalogueChapterVideoService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.Date;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("masterCourseCatalogueChapterVideoService")
|
@Service("masterCourseCatalogueChapterVideoService")
|
||||||
@@ -45,6 +45,8 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
|||||||
private PlayToken playToken;
|
private PlayToken playToken;
|
||||||
@Autowired
|
@Autowired
|
||||||
private VideoM3u8Dao videoM3u8Dao;
|
private VideoM3u8Dao videoM3u8Dao;
|
||||||
|
@Autowired
|
||||||
|
private CourseTaihumedService courseTaihumedService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Page getCourseCatalogueChapterVideoList(ParamTo param) {
|
public Page getCourseCatalogueChapterVideoList(ParamTo param) {
|
||||||
@@ -68,7 +70,7 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
|||||||
Integer uId = ShiroUtils.getUId();
|
Integer uId = ShiroUtils.getUId();
|
||||||
MyUserEntity userEntity = userDao.selectById(uId);
|
MyUserEntity userEntity = userDao.selectById(uId);
|
||||||
//审查课程观看权限
|
//审查课程观看权限
|
||||||
if(courseCatalogueChapterEntity.getIsAudition()==0&&!courseCheckVip(userEntity,courseCatalogueEntity.getCourseId())&&!courseCheckBuy(userEntity,courseCatalogueEntity)){
|
if(courseCatalogueChapterEntity.getIsAudition()==0&&!taihumedCourseCheckVip(courseCatalogueEntity.getCourseId())&&!courseCheckVip(userEntity,courseCatalogueEntity.getCourseId())&&!courseCheckBuy(userEntity,courseCatalogueEntity)){
|
||||||
return R.error(505,"鉴权失败!");
|
return R.error(505,"鉴权失败!");
|
||||||
}
|
}
|
||||||
//处理课程开始计时的逻辑
|
//处理课程开始计时的逻辑
|
||||||
@@ -189,6 +191,13 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl<CourseCa
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean taihumedCourseCheckVip(int courseId){
|
||||||
|
Map<String,Object> map = new HashMap<>();
|
||||||
|
map.put("courseId",courseId);
|
||||||
|
Map<String,Object> cp = courseTaihumedService.checkPermission(map);
|
||||||
|
return (boolean)cp.get("flag");
|
||||||
|
}
|
||||||
|
|
||||||
private boolean courseCheckBuy(MyUserEntity u,CourseCatalogueEntity courseCatalogueEntity){
|
private boolean courseCheckBuy(MyUserEntity u,CourseCatalogueEntity courseCatalogueEntity){
|
||||||
LambdaQueryWrapper<UserCourseBuyEntity> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<UserCourseBuyEntity> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.eq(UserCourseBuyEntity::getUserId,u.getId());
|
wrapper.eq(UserCourseBuyEntity::getUserId,u.getId());
|
||||||
|
|||||||
Reference in New Issue
Block a user