diff --git a/src/main/java/com/peanut/modules/sociology/service/impl/CourseCatalogueChapterServiceImpl.java b/src/main/java/com/peanut/modules/sociology/service/impl/CourseCatalogueChapterServiceImpl.java index a49645a8..bd2bb9ec 100644 --- a/src/main/java/com/peanut/modules/sociology/service/impl/CourseCatalogueChapterServiceImpl.java +++ b/src/main/java/com/peanut/modules/sociology/service/impl/CourseCatalogueChapterServiceImpl.java @@ -7,7 +7,6 @@ import com.peanut.common.utils.ShiroUtils; import com.peanut.modules.common.dao.CourseCatalogueChapterDao; import com.peanut.modules.common.dao.CourseCatalogueChapterVideoDao; import com.peanut.modules.common.dao.UserCourseBuyDao; -import com.peanut.modules.common.dao.UserCourseVideoPositionDao; import com.peanut.modules.common.entity.CourseCatalogueChapterEntity; import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity; import com.peanut.modules.common.entity.UserCourseBuyEntity; @@ -16,11 +15,9 @@ import com.peanut.modules.sociology.service.CourseCatalogueChapterService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; - import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.stream.Collectors; @Slf4j @Service("sociologyCourseCatalogueChapterService") @@ -29,24 +26,19 @@ public class CourseCatalogueChapterServiceImpl extends ServiceImpl getCourseCatalogueChapterList(int id) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + MPJLambdaWrapper wrapper = new MPJLambdaWrapper<>(); + wrapper.selectAll(CourseCatalogueChapterEntity.class); + wrapper.selectMax(UserCourseVideoPositionEntity::getId,CourseCatalogueChapterEntity::getIsLearned); + wrapper.disableSubLogicDel().leftJoin(CourseCatalogueChapterVideoEntity.class,CourseCatalogueChapterVideoEntity::getChapterId,CourseCatalogueChapterEntity::getId); + wrapper.disableSubLogicDel().leftJoin(UserCourseVideoPositionEntity.class,on->on.eq(UserCourseVideoPositionEntity::getVideoId,CourseCatalogueChapterVideoEntity::getId).eq(UserCourseVideoPositionEntity::getUserId,ShiroUtils.getUId())); wrapper.eq(CourseCatalogueChapterEntity::getCatalogueId,id); + wrapper.and(t->t.eq(CourseCatalogueChapterVideoEntity::getDelFlag,0).or().isNull(CourseCatalogueChapterVideoEntity::getDelFlag)); + wrapper.and(t->t.eq(UserCourseVideoPositionEntity::getDelFlag,0).or().isNull(UserCourseVideoPositionEntity::getDelFlag)); + wrapper.groupBy(CourseCatalogueChapterEntity::getId); wrapper.orderByAsc(CourseCatalogueChapterEntity::getSort); List list = this.list(wrapper); - if (list!=null&&list.size() > 0) { - for (CourseCatalogueChapterEntity courseCatalogueChapterEntity : list) { - MPJLambdaWrapper videoPositionWrapper = new MPJLambdaWrapper(); - videoPositionWrapper.leftJoin(CourseCatalogueChapterVideoEntity.class,CourseCatalogueChapterVideoEntity::getId,UserCourseVideoPositionEntity::getVideoId); - videoPositionWrapper.eq(CourseCatalogueChapterVideoEntity::getChapterId,courseCatalogueChapterEntity.getId()); - videoPositionWrapper.eq(UserCourseVideoPositionEntity::getUserId,ShiroUtils.getUId()); - int count = userCourseVideoPositionDao.selectCount(videoPositionWrapper); - courseCatalogueChapterEntity.setIsLearned(count>0?1:0); - } - } return list; }