优化章节列表
This commit is contained in:
@@ -7,7 +7,6 @@ import com.peanut.common.utils.ShiroUtils;
|
|||||||
import com.peanut.modules.common.dao.CourseCatalogueChapterDao;
|
import com.peanut.modules.common.dao.CourseCatalogueChapterDao;
|
||||||
import com.peanut.modules.common.dao.CourseCatalogueChapterVideoDao;
|
import com.peanut.modules.common.dao.CourseCatalogueChapterVideoDao;
|
||||||
import com.peanut.modules.common.dao.UserCourseBuyDao;
|
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.CourseCatalogueChapterEntity;
|
||||||
import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity;
|
import com.peanut.modules.common.entity.CourseCatalogueChapterVideoEntity;
|
||||||
import com.peanut.modules.common.entity.UserCourseBuyEntity;
|
import com.peanut.modules.common.entity.UserCourseBuyEntity;
|
||||||
@@ -16,11 +15,9 @@ import com.peanut.modules.sociology.service.CourseCatalogueChapterService;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("sociologyCourseCatalogueChapterService")
|
@Service("sociologyCourseCatalogueChapterService")
|
||||||
@@ -29,24 +26,19 @@ public class CourseCatalogueChapterServiceImpl extends ServiceImpl<CourseCatalog
|
|||||||
private CourseCatalogueChapterVideoDao courseCatalogueChapterVideoDao;
|
private CourseCatalogueChapterVideoDao courseCatalogueChapterVideoDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
private UserCourseBuyDao userCourseBuyDao;
|
private UserCourseBuyDao userCourseBuyDao;
|
||||||
@Autowired
|
|
||||||
private UserCourseVideoPositionDao userCourseVideoPositionDao;
|
|
||||||
@Override
|
@Override
|
||||||
public List<CourseCatalogueChapterEntity> getCourseCatalogueChapterList(int id) {
|
public List<CourseCatalogueChapterEntity> getCourseCatalogueChapterList(int id) {
|
||||||
LambdaQueryWrapper<CourseCatalogueChapterEntity> wrapper = new LambdaQueryWrapper<>();
|
MPJLambdaWrapper<CourseCatalogueChapterEntity> 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.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);
|
wrapper.orderByAsc(CourseCatalogueChapterEntity::getSort);
|
||||||
List<CourseCatalogueChapterEntity> list = this.list(wrapper);
|
List<CourseCatalogueChapterEntity> list = this.list(wrapper);
|
||||||
if (list!=null&&list.size() > 0) {
|
|
||||||
for (CourseCatalogueChapterEntity courseCatalogueChapterEntity : list) {
|
|
||||||
MPJLambdaWrapper<UserCourseVideoPositionEntity> 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;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user