我的课程-修改

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) @TableField(exist = false)
private Date endTime; 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.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -217,8 +219,9 @@ public class CourseController {
//我的课程-全部 //我的课程-全部
@RequestMapping("/getUserCourseBuy") @RequestMapping("/getUserCourseBuy")
public R getUserCourseBuy(@RequestBody Map<String,Object> param){ public R getUserCourseBuy(){
List<CourseSociologyEntity> courseSociologyList = courseSociologyService.getCourseSociologyTree(); List<CourseSociologyEntity> courseSociologyList = courseSociologyService.getCourseSociologyTree();
Map<String,Object> param = new HashMap<>();
param.put("courseSociologyList",courseSociologyList); param.put("courseSociologyList",courseSociologyList);
List courseList = courseService.getUserCourseBuy(param); List courseList = courseService.getUserCourseBuy(param);
return R.ok().put("courseList",courseList); return R.ok().put("courseList",courseList);

View File

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