diff --git a/src/main/java/com/peanut/modules/sociology/service/impl/CourseServiceImpl.java b/src/main/java/com/peanut/modules/sociology/service/impl/CourseServiceImpl.java index 0d288fb5..4c5e5921 100644 --- a/src/main/java/com/peanut/modules/sociology/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/peanut/modules/sociology/service/impl/CourseServiceImpl.java @@ -26,6 +26,8 @@ public class CourseServiceImpl extends ServiceImpl impl @Autowired private CourseToSociologyDao courseToSociologyDao; @Autowired + private CourseToMedicineDao courseToMedicineDao; + @Autowired private CourseCatalogueDao courseCatalogueDao; @Autowired private UserCourseBuyDao userCourseBuyDao; @@ -43,6 +45,8 @@ public class CourseServiceImpl extends ServiceImpl impl private MyUserDao userDao; @Autowired private ShopProductDao shopProductDao; + @Autowired + private UserVipDao userVipDao; //根据标签获取课程列表 @@ -271,6 +275,7 @@ public class CourseServiceImpl extends ServiceImpl impl @Override public List getUserCourseStudying() { + MyUserEntity user = ShiroUtils.getUser(); MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); wrapper.leftJoin(CourseToSociologyEntity.class,CourseToSociologyEntity::getCourseId,CourseEntity::getId); wrapper.leftJoin(UserCourseStudying.class,UserCourseStudying::getCourseId,CourseEntity::getId); @@ -284,16 +289,45 @@ public class CourseServiceImpl extends ServiceImpl impl if (courseCatalogueEntities.size() > 0) { //查询目录添加,购买的课程目录详细信息 for (CourseCatalogueEntity courseCatalogueEntity : courseCatalogueEntities) { + List userVipList = userVipDao.selectList(new LambdaQueryWrapper().eq(UserVip::getUserId, user.getId())); List userCourseBuyList = userCourseBuyDao.selectList(new LambdaQueryWrapper().eq(UserCourseBuyEntity::getUserId, ShiroUtils.getUId()).eq(UserCourseBuyEntity::getCatalogueId, courseCatalogueEntity.getId())); //完成度、上次学习时间 catalogueCompletion(courseCatalogueEntity); //是否购买,生效时间 - if (userCourseBuyList.size() > 0) { + if ("1".equals(user.getVip())||"3".equals(user.getVip())){ + //是超级会员或者国学会员 + if (userVipList.size() > 0) { + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + } courseCatalogueEntity.setIsBuy(1); - courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); - courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); - }else { - courseCatalogueEntity.setIsBuy(0); + }else if ("0".equals(user.getVip())){ + //普通用户 + if (userCourseBuyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); + }else { + courseCatalogueEntity.setIsBuy(0); + } + }else if ("2".equals(user.getVip())){ + //医学会员 + //买的国学课程 + if (userCourseBuyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); + }else { + //医学课程会员免费 + List courseToMedicineList = courseToMedicineDao.selectList(new LambdaQueryWrapper().eq(CourseToMedicine::getCourseId, courseCatalogueEntity.getCourseId())); + if (courseToMedicineList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + }else { + courseCatalogueEntity.setIsBuy(0); + } + } } } } @@ -356,7 +390,7 @@ public class CourseServiceImpl extends ServiceImpl impl wrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId()); wrapper.orderByAsc(CourseEntity::getSort); courseEntities = courseToSociologyDao.selectJoinList(CourseEntity.class, wrapper); - }else if ("0".equals(user.getVip())||"2".equals(user.getVip())){ + }else if ("0".equals(user.getVip())){ MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); wrapper.leftJoin(CourseCatalogueEntity.class,CourseCatalogueEntity::getId,UserCourseBuyEntity::getCatalogueId); wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseCatalogueEntity::getCourseId); @@ -366,6 +400,23 @@ public class CourseServiceImpl extends ServiceImpl impl wrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId()); wrapper.orderByAsc(CourseEntity::getSort); courseEntities = userCourseBuyDao.selectJoinList(CourseEntity.class, wrapper); + }else if ("2".equals(user.getVip())){ + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.leftJoin(CourseCatalogueEntity.class,CourseCatalogueEntity::getId,UserCourseBuyEntity::getCatalogueId); + wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseCatalogueEntity::getCourseId); + wrapper.leftJoin(CourseToSociologyEntity.class,CourseToSociologyEntity::getCourseId,UserCourseBuyEntity::getCourseId); + wrapper.selectAll(CourseEntity.class); + wrapper.eq(UserCourseBuyEntity::getUserId,user.getId()); + wrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId()); + wrapper.orderByAsc(CourseEntity::getSort); + courseEntities = userCourseBuyDao.selectJoinList(CourseEntity.class, wrapper); + //添加 国学医学都有的课程 + MPJLambdaWrapper vipWrapper = new MPJLambdaWrapper<>(); + vipWrapper.leftJoin(CourseToSociologyEntity.class,CourseToSociologyEntity::getCourseId,CourseEntity::getId); + vipWrapper.exists("select * from course_to_medicine where del_flag = 0 and course_id = t.id"); + vipWrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId()); + vipWrapper.selectAll(CourseEntity.class); + courseEntities.addAll(this.getBaseMapper().selectList(vipWrapper)); } if(courseEntities!=null&&courseEntities.size()>0){ for (CourseEntity co:courseEntities){ @@ -377,15 +428,44 @@ public class CourseServiceImpl extends ServiceImpl impl //查询目录添加,购买的课程目录详细信息 for (CourseCatalogueEntity courseCatalogueEntity : courseCatalogueEntities) { List userCourseBuyList = userCourseBuyDao.selectList(new LambdaQueryWrapper().eq(UserCourseBuyEntity::getUserId, user.getId()).eq(UserCourseBuyEntity::getCatalogueId, courseCatalogueEntity.getId())); + List userVipList = userVipDao.selectList(new LambdaQueryWrapper().eq(UserVip::getUserId, user.getId())); //完成度、上次学习时间 // catalogueCompletion(courseCatalogueEntity); //是否购买,生效时间 - if (userCourseBuyList.size() > 0) { + if ("1".equals(user.getVip())||"3".equals(user.getVip())){ + //是超级会员或者国学会员 + if (userVipList.size() > 0) { + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + } courseCatalogueEntity.setIsBuy(1); - courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); - courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); - }else { - courseCatalogueEntity.setIsBuy(0); + }else if ("0".equals(user.getVip())){ + //普通用户 + if (userCourseBuyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); + }else { + courseCatalogueEntity.setIsBuy(0); + } + }else if ("2".equals(user.getVip())){ + //医学会员 + //买的国学课程 + if (userCourseBuyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); + }else { + //医学课程会员免费 + List courseToMedicineList = courseToMedicineDao.selectList(new LambdaQueryWrapper().eq(CourseToMedicine::getCourseId, courseCatalogueEntity.getCourseId())); + if (courseToMedicineList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + }else { + courseCatalogueEntity.setIsBuy(0); + } + } } } }