我的课程-修改

This commit is contained in:
wuchunlei
2024-06-18 18:15:16 +08:00
parent afd5617d16
commit 3634bb77aa
3 changed files with 49 additions and 31 deletions

View File

@@ -70,5 +70,10 @@ public class CourseCatalogueEntity{
*/
@TableField(exist = false)
private Date endTime;
/**
* 上次学习时间
*/
@TableField(exist = false)
private Date lastStudyTime;
}

View File

@@ -19,6 +19,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -217,8 +219,9 @@ public class CourseController {
//我的课程-全部
@RequestMapping("/getUserCourseBuy")
public R getUserCourseBuy(@RequestBody Map<String,Object> param){
public R getUserCourseBuy(){
List<CourseSociologyEntity> courseSociologyList = courseSociologyService.getCourseSociologyTree();
Map<String,Object> param = new HashMap<>();
param.put("courseSociologyList",courseSociologyList);
List courseList = courseService.getUserCourseBuy(param);
return R.ok().put("courseList",courseList);

View File

@@ -127,7 +127,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
Integer uId = ShiroUtils.getUId();
for (CourseCatalogueEntity c :courseCatalogueEntities){
List<UserCourseBuyEntity> userCourseBuyList = userCourseBuyDao.selectList(new LambdaQueryWrapper<UserCourseBuyEntity>().eq(UserCourseBuyEntity::getUserId, uId).eq(UserCourseBuyEntity::getCatalogueId, c.getId()));
c.setCompletion(catalogueCompletion(c));
//完成度、上次学习时间
catalogueCompletion(c);
if (userCourseBuyList.size() > 0) {
c.setIsBuy(1);
c.setStartTime(userCourseBuyList.get(0).getStartTime());
@@ -225,21 +226,29 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
return R.ok();
}
private Integer catalogueCompletion(CourseCatalogueEntity c){
private void catalogueCompletion(CourseCatalogueEntity c){
List<CourseCatalogueChapterEntity> courseCatalogueChapterEntities = courseCatalogueChapterDao.selectList(new LambdaQueryWrapper<CourseCatalogueChapterEntity>().eq(CourseCatalogueChapterEntity::getCatalogueId, c.getId()));
Integer act = 0;
Date date = null;
for (CourseCatalogueChapterEntity cc : courseCatalogueChapterEntities){
List<CourseCatalogueChapterVideoEntity> courseCatalogueChapterVideoEntities = courseCatalogueChapterVideoDao.selectList(new LambdaQueryWrapper<CourseCatalogueChapterVideoEntity>().eq(CourseCatalogueChapterVideoEntity::getChapterId, cc.getId()));
List<Integer> collect = courseCatalogueChapterVideoEntities.stream().map(CourseCatalogueChapterVideoEntity::getId).collect(Collectors.toList());
if(collect.size()==0){
continue;
}
Integer integer = userCourseVideoPositionDao.selectCount(new LambdaQueryWrapper<UserCourseVideoPositionEntity>().eq(UserCourseVideoPositionEntity::getUserId, ShiroUtils.getUId()).in(UserCourseVideoPositionEntity::getVideoId, collect));
if (integer>0){
List<UserCourseVideoPositionEntity> videoPositionList = userCourseVideoPositionDao.selectList(new LambdaQueryWrapper<UserCourseVideoPositionEntity>().eq(UserCourseVideoPositionEntity::getUserId, ShiroUtils.getUId()).in(UserCourseVideoPositionEntity::getVideoId, collect).orderByDesc(UserCourseVideoPositionEntity::getCreateTime));
if (videoPositionList.size()>0){
act++;
if (date!=null){
date = date.getTime()>videoPositionList.get(0).getCreateTime().getTime()?date:videoPositionList.get(0).getCreateTime();
}else {
date = videoPositionList.get(0).getCreateTime();
}
}
}
return courseCatalogueChapterEntities.size()==0?0:act * 100 / courseCatalogueChapterEntities.size();
int completion = courseCatalogueChapterEntities.size()==0?0:act * 100 / courseCatalogueChapterEntities.size();
c.setCompletion(completion);
c.setLastStudyTime(date);
}
@Override
@@ -278,7 +287,7 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
@Override
public List getUserCourseBuy(Map<String, Object> param) {
MyUserEntity user = userDao.selectById(param.get("userId").toString());
MyUserEntity user = ShiroUtils.getUser();
List<CourseSociologyEntity> resultList = new ArrayList<>();
List<CourseSociologyEntity> courseSociologyList = (List<CourseSociologyEntity>)param.get("courseSociologyList");
for (CourseSociologyEntity c : courseSociologyList){
@@ -329,16 +338,6 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
wrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId());
wrapper.orderByAsc(CourseEntity::getSort);
courseEntities = courseToSociologyDao.selectJoinList(CourseEntity.class, wrapper);
if(courseEntities!=null&&courseEntities.size()>0){
for (CourseEntity co:courseEntities){
int i = studyingDao.selectCount(new LambdaQueryWrapper<UserCourseStudying>().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId()));
co.setIsStudying(i>0?1:0);
List<CourseCatalogueEntity> courseCatalogueEntities = courseCatalogueDao.selectList(new LambdaQueryWrapper<CourseCatalogueEntity>().eq(CourseCatalogueEntity::getCourseId, co.getId()).orderByAsc(CourseCatalogueEntity::getSort));
co.setCourseCatalogueEntityList(courseCatalogueEntities);
}
c.setCourseList(courseEntities);
return true;
}
}else if ("0".equals(user.getVip())||"2".equals(user.getVip())){
MPJLambdaWrapper<UserCourseBuyEntity> wrapper = new MPJLambdaWrapper<>();
wrapper.leftJoin(CourseCatalogueEntity.class,CourseCatalogueEntity::getId,UserCourseBuyEntity::getCatalogueId);
@@ -349,22 +348,33 @@ public class CourseServiceImpl extends ServiceImpl<CourseDao, CourseEntity> impl
wrapper.eq(CourseToSociologyEntity::getSociologyId,c.getId());
wrapper.orderByAsc(CourseEntity::getSort);
courseEntities = userCourseBuyDao.selectJoinList(CourseEntity.class, wrapper);
if(courseEntities!=null&&courseEntities.size()>0){
for (CourseEntity co:courseEntities){
int i = studyingDao.selectCount(new LambdaQueryWrapper<UserCourseStudying>().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId()));
co.setIsStudying(i>0?1:0);
List<CourseCatalogueEntity> courseCatalogueEntities = courseCatalogueDao.selectList(
new MPJLambdaWrapper<CourseCatalogueEntity>()
.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);
}
if(courseEntities!=null&&courseEntities.size()>0){
for (CourseEntity co:courseEntities){
//添加是否加入正在学习
int i = studyingDao.selectCount(new LambdaQueryWrapper<UserCourseStudying>().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId()));
co.setIsStudying(i>0?1:0);
List<CourseCatalogueEntity> courseCatalogueEntities = courseCatalogueDao.selectList(new MPJLambdaWrapper<CourseCatalogueEntity>().eq(CourseCatalogueEntity::getCourseId, co.getId()).orderByAsc(CourseCatalogueEntity::getSort));
if (courseCatalogueEntities.size() > 0) {
//查询目录添加,购买的课程目录详细信息
for (CourseCatalogueEntity courseCatalogueEntity : courseCatalogueEntities) {
List<UserCourseBuyEntity> userCourseBuyList = userCourseBuyDao.selectList(new LambdaQueryWrapper<UserCourseBuyEntity>().eq(UserCourseBuyEntity::getUserId, user.getId()).eq(UserCourseBuyEntity::getCatalogueId, courseCatalogueEntity.getId()));
//完成度、上次学习时间
catalogueCompletion(courseCatalogueEntity);
//是否购买,生效时间
if (userCourseBuyList.size() > 0) {
courseCatalogueEntity.setIsBuy(1);
courseCatalogueEntity.setStartTime(userCourseBuyList.get(0).getStartTime());
courseCatalogueEntity.setEndTime(userCourseBuyList.get(0).getEndTime());
}else {
courseCatalogueEntity.setIsBuy(0);
}
}
}
c.setCourseList(courseEntities);
return true;
co.setCourseCatalogueEntityList(courseCatalogueEntities);
}
c.setCourseList(courseEntities);
return true;
}
return false;
}