diff --git a/src/main/java/com/peanut/modules/common/service/CourseTaihumedService.java b/src/main/java/com/peanut/modules/common/service/CourseTaihumedService.java index 56317c87..b44c3d46 100644 --- a/src/main/java/com/peanut/modules/common/service/CourseTaihumedService.java +++ b/src/main/java/com/peanut/modules/common/service/CourseTaihumedService.java @@ -1,7 +1,11 @@ package com.peanut.modules.common.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.peanut.common.utils.R; import com.peanut.modules.common.entity.CourseTaihumed; +import java.util.Map; + public interface CourseTaihumedService extends IService { + Map checkPermission(Map params); } diff --git a/src/main/java/com/peanut/modules/common/service/impl/CourseTaihumedServiceImpl.java b/src/main/java/com/peanut/modules/common/service/impl/CourseTaihumedServiceImpl.java index 54578f99..82fa1e3d 100644 --- a/src/main/java/com/peanut/modules/common/service/impl/CourseTaihumedServiceImpl.java +++ b/src/main/java/com/peanut/modules/common/service/impl/CourseTaihumedServiceImpl.java @@ -1,13 +1,135 @@ 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.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.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.UserVipService; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; 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 @Service("commonCourseTaihumedService") public class CourseTaihumedServiceImpl extends ServiceImpl implements CourseTaihumedService { + + @Autowired + private CourseTaihumedDao coursetaihumedDao; + @Autowired + private CourseToTaihumedDao courseToTaihumedDao; + @Autowired + private UserVipService userVipService; + @Autowired + private TaihuTalentDao taihuTalentDao; + @Autowired + private CourseToTalentDao courseToTalentDao; + + public Map checkPermission(Map params){ + Map res = new HashMap<>(); + boolean flag = false; + String msg = ""; + //查询当前课程绑定的标签 + List courseToTaihumeds = courseToTaihumedDao.selectList(new LambdaQueryWrapper() + .eq(CourseToTaihumed::getCourseId,params.get("courseId"))); + List 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 userVips = userVipService.list(new LambdaQueryWrapper() + .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 userVips = userVipService.list(new LambdaQueryWrapper() + .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() + .eq(TaihuTalent::getUserId, ShiroUtils.getUId())); + if (taihuTalent != null){ + List courseToTalents = courseToTalentDao.selectList(new LambdaQueryWrapper() + .eq(CourseToTalent::getTalentId,taihuTalent.getId())); + List collect = courseToTalents.stream().map(CourseToTalent::getCourseId).collect(Collectors.toList()); + List cTTs = courseToTaihumedDao.selectList(new LambdaQueryWrapper() + .in(CourseToTaihumed::getCourseId,collect) + .ne(CourseToTaihumed::getTaihumedId,101)); + List 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 ucbs = userCourseBuyService.list(new LambdaQueryWrapper() +// .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 list, int courseTaihumedId){ + CourseTaihumed courseTaihumed = coursetaihumedDao.selectById(courseTaihumedId); + if (courseTaihumed.getPid()==0){ + list.add(courseTaihumed.getId()); + }else { + CourseTaihumed pCourseTaihumed = coursetaihumedDao.selectOne(new LambdaQueryWrapper() + .eq(CourseTaihumed::getId,courseTaihumed.getPid())); + topLael(list,pCourseTaihumed.getId()); + } + + } } diff --git a/src/main/java/com/peanut/modules/master/service/impl/CourseCatalogueChapterVideoServiceImpl.java b/src/main/java/com/peanut/modules/master/service/impl/CourseCatalogueChapterVideoServiceImpl.java index ec35f942..0f609f13 100644 --- a/src/main/java/com/peanut/modules/master/service/impl/CourseCatalogueChapterVideoServiceImpl.java +++ b/src/main/java/com/peanut/modules/master/service/impl/CourseCatalogueChapterVideoServiceImpl.java @@ -12,15 +12,15 @@ import com.peanut.common.utils.ShiroUtils; import com.peanut.common.utils.SpdbUtil; import com.peanut.modules.common.dao.*; 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.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 java.util.Calendar; -import java.util.Date; -import java.util.List; + +import java.util.*; @Slf4j @Service("masterCourseCatalogueChapterVideoService") @@ -45,6 +45,8 @@ public class CourseCatalogueChapterVideoServiceImpl extends ServiceImpl map = new HashMap<>(); + map.put("courseId",courseId); + Map cp = courseTaihumedService.checkPermission(map); + return (boolean)cp.get("flag"); + } + private boolean courseCheckBuy(MyUserEntity u,CourseCatalogueEntity courseCatalogueEntity){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(UserCourseBuyEntity::getUserId,u.getId());