我的课程-修改
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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,23 +348,34 @@ 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){
|
if(courseEntities!=null&&courseEntities.size()>0){
|
||||||
for (CourseEntity co:courseEntities){
|
for (CourseEntity co:courseEntities){
|
||||||
|
//添加是否加入正在学习
|
||||||
int i = studyingDao.selectCount(new LambdaQueryWrapper<UserCourseStudying>().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId()));
|
int i = studyingDao.selectCount(new LambdaQueryWrapper<UserCourseStudying>().eq(UserCourseStudying::getCourseId,co.getId()).eq(UserCourseStudying::getUserId,user.getId()));
|
||||||
co.setIsStudying(i>0?1:0);
|
co.setIsStudying(i>0?1:0);
|
||||||
List<CourseCatalogueEntity> courseCatalogueEntities = courseCatalogueDao.selectList(
|
List<CourseCatalogueEntity> courseCatalogueEntities = courseCatalogueDao.selectList(new MPJLambdaWrapper<CourseCatalogueEntity>().eq(CourseCatalogueEntity::getCourseId, co.getId()).orderByAsc(CourseCatalogueEntity::getSort));
|
||||||
new MPJLambdaWrapper<CourseCatalogueEntity>()
|
if (courseCatalogueEntities.size() > 0) {
|
||||||
.selectAll(CourseCatalogueEntity.class)
|
//查询目录添加,购买的课程目录详细信息
|
||||||
.leftJoin(UserCourseBuyEntity.class, UserCourseBuyEntity::getCatalogueId,CourseCatalogueEntity::getId)
|
for (CourseCatalogueEntity courseCatalogueEntity : courseCatalogueEntities) {
|
||||||
.eq(CourseCatalogueEntity::getCourseId, co.getId())
|
List<UserCourseBuyEntity> userCourseBuyList = userCourseBuyDao.selectList(new LambdaQueryWrapper<UserCourseBuyEntity>().eq(UserCourseBuyEntity::getUserId, user.getId()).eq(UserCourseBuyEntity::getCatalogueId, courseCatalogueEntity.getId()));
|
||||||
.eq(UserCourseBuyEntity::getUserId, user.getId())
|
//完成度、上次学习时间
|
||||||
.orderByAsc(CourseCatalogueEntity::getSort));
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
co.setCourseCatalogueEntityList(courseCatalogueEntities);
|
co.setCourseCatalogueEntityList(courseCatalogueEntities);
|
||||||
}
|
}
|
||||||
c.setCourseList(courseEntities);
|
c.setCourseList(courseEntities);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user