diff --git a/src/main/java/com/peanut/modules/medical/controller/CourseController.java b/src/main/java/com/peanut/modules/medical/controller/CourseController.java index 065219bb..9c9c6f33 100644 --- a/src/main/java/com/peanut/modules/medical/controller/CourseController.java +++ b/src/main/java/com/peanut/modules/medical/controller/CourseController.java @@ -1,5 +1,6 @@ package com.peanut.modules.medical.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.peanut.common.utils.R; import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity; @@ -50,9 +51,7 @@ public class CourseController { //我的课程-全部 @RequestMapping("/getUserCourseBuy") public R getUserCourseBuy(@RequestBody Map param){ - List courseMedicineList = courseMedicalService.getCourseMedicalTree(); - param.put("courseMedicineList",courseMedicineList); - List courseList = courseService.getUserCourseBuy(param); + Page courseList = courseService.getUserCourseBuy(param); return R.ok().put("courseList",courseList); } diff --git a/src/main/java/com/peanut/modules/medical/service/CourseService.java b/src/main/java/com/peanut/modules/medical/service/CourseService.java index e41f0d5b..0a96f3f1 100644 --- a/src/main/java/com/peanut/modules/medical/service/CourseService.java +++ b/src/main/java/com/peanut/modules/medical/service/CourseService.java @@ -23,7 +23,7 @@ public interface CourseService extends IService { List getUserCourseStudying(Map param); - List getUserCourseBuy(Map param); + Page getUserCourseBuy(Map param); List getCourseExpire(Map param); 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 ad197f99..0442797e 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 @@ -10,6 +10,7 @@ import com.peanut.modules.common.entity.*; import com.peanut.modules.common.to.ParamTo; import com.peanut.modules.medical.service.CourseService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -104,16 +105,44 @@ public class CourseServiceImpl extends ServiceImpl impl } @Override - public List getUserCourseBuy(Map param) { - MyUserEntity user = userDao.selectById(param.get("userId").toString()); - List resultList = new ArrayList<>(); - List courseMedicineList = (List)param.get("courseMedicineList"); - for (CourseMedicine c : courseMedicineList){ - if (getCourseByMedicine(c,user)){ - resultList.add(c); + public Page getUserCourseBuy(Map param) { + MyUserEntity user =ShiroUtils.getUser(); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseToMedicine::getCourseId); + //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 (StringUtils.isNotEmpty(param.get("medicalId").toString())){ + wrapper.eq(CourseToMedicine::getMedicalId,param.get("medicalId")); + } + if (StringUtils.isNotEmpty(param.get("title").toString())){ + wrapper.like(CourseEntity::getTitle,param.get("title")); + } + 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); + 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); + co.setCourseCatalogueEntityList(courseCatalogueEntities); } } - return resultList; + return courseEntityPage; } @Override @@ -139,60 +168,4 @@ public class CourseServiceImpl extends ServiceImpl impl return null; } } - - - private boolean getCourseByMedicine(CourseMedicine c,MyUserEntity user){ - if (c.getChildren()!=null&&c.getChildren().size() > 0){ - for (CourseMedicine child : c.getChildren()){ - return getCourseByMedicine(child,user); - } - } - List courseEntities = null; - //0-普通 1超级vip 2医学vip 3国学vip - if ("1".equals(user.getVip())||"2".equals(user.getVip())){ - MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); - wrapper.leftJoin(CourseEntity.class,CourseEntity::getId,CourseToMedicine::getCourseId); - wrapper.selectAll(CourseEntity.class); - wrapper.eq(CourseToMedicine::getMedicalId,c.getId()); - wrapper.orderByAsc(CourseEntity::getSort); - courseEntities = toMedicineDao.selectJoinList(CourseEntity.class, wrapper); - 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); - List courseCatalogueEntities = courseCatalogueDao.selectList(new LambdaQueryWrapper().eq(CourseCatalogueEntity::getCourseId, co.getId()).orderByAsc(CourseCatalogueEntity::getSort)); - co.setCourseCatalogueEntityList(courseCatalogueEntities); - } - c.setCourseList(courseEntities); - return true; - } - }else if ("0".equals(user.getVip())||"3".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(CourseToMedicine.class,CourseToMedicine::getCourseId,UserCourseBuyEntity::getCourseId); - wrapper.selectAll(CourseEntity.class); - wrapper.eq(UserCourseBuyEntity::getUserId,user.getId()); - wrapper.eq(CourseToMedicine::getMedicalId,c.getId()); - wrapper.orderByAsc(CourseEntity::getSort); - courseEntities = courseBuyDao.selectJoinList(CourseEntity.class, wrapper); - 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); - List courseCatalogueEntities = courseCatalogueDao.selectList( - new MPJLambdaWrapper() - .selectAll(CourseCatalogueEntity.class) - .leftJoin(UserCourseBuyEntity.class, UserCourseBuyEntity::getCatalogueId,CourseCatalogueEntity::getId) - .eq(CourseCatalogueEntity::getCourseId, co.getId()) - .eq(UserCourseBuyEntity::getUserId, user.getId()) - .orderByAsc(CourseCatalogueEntity::getSort)); - co.setCourseCatalogueEntityList(courseCatalogueEntities); - } - c.setCourseList(courseEntities); - return true; - } - } - return false; - } }