From bed179b642eeabc06b37557d6b863df7d33ac04d Mon Sep 17 00:00:00 2001 From: wuchunlei Date: Thu, 20 Jun 2024 16:23:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9A=84=E8=AF=BE=E7=A8=8B-=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CourseServiceImpl.java | 74 ++++++++++++++++--- 1 file changed, 64 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java index 0442797e..6634aaf2 100644 --- a/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java +++ b/src/main/java/com/peanut/modules/medical/service/impl/CourseServiceImpl.java @@ -3,6 +3,7 @@ package com.peanut.modules.medical.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.github.yulichang.toolkit.JoinWrappers; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.common.dao.*; @@ -27,11 +28,13 @@ public class CourseServiceImpl extends ServiceImpl impl @Autowired MyUserDao userDao; @Autowired - private CourseToMedicineDao toMedicineDao; + private CourseToSociologyDao courseToSociologyDao; @Autowired private CourseCatalogueDao courseCatalogueDao; @Autowired - private UserCourseBuyDao courseBuyDao; + private UserCourseBuyDao userCourseBuyDao; + @Autowired + private UserVipDao userVipDao; @Override public Page getMedicalCourseList(ParamTo param) { @@ -107,13 +110,24 @@ public class CourseServiceImpl extends ServiceImpl impl @Override public Page getUserCourseBuy(Map param) { MyUserEntity user =ShiroUtils.getUser(); - MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseToMedicine::getCourseId); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.leftJoin(CourseToMedicine.class,CourseToMedicine::getCourseId,CourseEntity::getId); //0-普通 1超级vip 2医学vip 3国学vip if ("0".equals(user.getVip())||"3".equals(user.getVip())){ wrapper.leftJoin(CourseCatalogueEntity.class,CourseCatalogueEntity::getCourseId,CourseEntity::getId); wrapper.leftJoin(UserCourseBuyEntity.class,UserCourseBuyEntity::getCatalogueId,CourseCatalogueEntity::getId); wrapper.eq(UserCourseBuyEntity::getUserId,user.getId()); + if ("3".equals(user.getVip())){ + MPJLambdaWrapper vipWrapper = new MPJLambdaWrapper<>(CourseEntity.class); + vipWrapper.leftJoin(CourseToMedicine.class,CourseToMedicine::getCourseId,CourseEntity::getId); + vipWrapper.exists("select * from course_to_sociology where del_flag = 0 and course_id = t.id"); + vipWrapper.selectAll(CourseEntity.class); + vipWrapper.first("("); + vipWrapper.last(")"); + wrapper.first("("); + wrapper.last(")"); + wrapper.union(vipWrapper); + } } if (StringUtils.isNotEmpty(param.get("medicalId").toString())){ wrapper.eq(CourseToMedicine::getMedicalId,param.get("medicalId")); @@ -124,21 +138,61 @@ public class CourseServiceImpl extends ServiceImpl impl wrapper.distinct(); wrapper.selectAll(CourseEntity.class); wrapper.orderByAsc(CourseEntity::getSort); - Page courseEntityPage = toMedicineDao.selectJoinPage(new Page<>(Long.parseLong(param.get("page").toString()), Long.parseLong(param.get("limit").toString())), CourseEntity.class, wrapper); + Page courseEntityPage = this.getBaseMapper().selectJoinPage(new Page<>(Long.parseLong(param.get("page").toString()), Long.parseLong(param.get("limit").toString())), CourseEntity.class, wrapper); List courseEntities = courseEntityPage.getRecords(); if(courseEntities!=null&&courseEntities.size()>0){ for (CourseEntity co:courseEntities){ int i = studyingDao.selectCount(new LambdaQueryWrapper().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId())); co.setIsStudying(i>0?1:0); MPJLambdaWrapper catalogueWrapper = new MPJLambdaWrapper(); - catalogueWrapper.selectAll(CourseCatalogueEntity.class); catalogueWrapper.eq(CourseCatalogueEntity::getCourseId, co.getId()); - if ("0".equals(user.getVip())||"3".equals(user.getVip())){ - catalogueWrapper.leftJoin(UserCourseBuyEntity.class, UserCourseBuyEntity::getCatalogueId,CourseCatalogueEntity::getId); - catalogueWrapper.eq(UserCourseBuyEntity::getUserId, user.getId()); - } catalogueWrapper.orderByAsc(CourseCatalogueEntity::getSort); List courseCatalogueEntities = courseCatalogueDao.selectList(catalogueWrapper); + if (courseCatalogueEntities.size() > 0) { + //查询目录添加,购买的课程目录详细信息 + 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 ("1".equals(user.getVip())||"2".equals(user.getVip())){ + //是超级会员或者医学学会员 + if (userVipList.size() > 0) { + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + } + courseCatalogueEntity.setIsBuy(1); + }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 ("3".equals(user.getVip())){ + //国学会员 + //买的医学课程 + if (userCourseBuyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime()); + }else { + //国学课程会员免费 + List courseToSociologyList = courseToSociologyDao.selectList(new LambdaQueryWrapper().eq(CourseToSociologyEntity::getCourseId, courseCatalogueEntity.getCourseId())); + if (courseToSociologyList.size() > 0) { + courseCatalogueEntity.setIsBuy(1); + courseCatalogueEntity.setStartTime(userVipList.get(0).getStartTime()); + courseCatalogueEntity.setEndTime(userVipList.get(0).getEndTime()); + }else { + courseCatalogueEntity.setIsBuy(0); + } + } + } + } + } co.setCourseCatalogueEntityList(courseCatalogueEntities); } }