From dd663d0ac783755d889e270eee57ee58630c88c8 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期五, 28 二月 2025 17:46:52 +0800 Subject: [PATCH] 冥想2.0新增代码 --- xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java | 462 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 350 insertions(+), 112 deletions(-) diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java index 685d5ac..c83515b 100644 --- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java +++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java @@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xinquan.common.core.constant.SecurityConstants; import com.xinquan.common.core.domain.R; @@ -45,6 +46,7 @@ import io.swagger.annotations.ApiOperation; import java.io.IOException; +import java.math.BigDecimal; import java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -142,11 +144,16 @@ @PathVariable("pageSize") Integer pageSize, @PathVariable("ids")String ids) { - + List<Long> collect = courseChapterService.lambdaQuery().in(CourseChapter::getId, Arrays.asList(ids.split(","))) + .list().stream().map(CourseChapter::getCourseId).collect(Collectors.toList()); + if(collect.isEmpty()){ + collect.add(-1L); + } Page<Course> page = courseService .lambdaQuery() - .in(Course::getId,Arrays.asList(ids.split(","))) + .in(Course::getId,collect) .page(new Page<>(pageCurr, pageSize)); + if (page.getRecords().isEmpty()){ return R.ok(page); } @@ -307,7 +314,7 @@ .eq(Objects.nonNull(courseDTO.getCourseType()), Course::getCourseType, courseDTO.getCourseType()) .eq(Objects.nonNull(courseDTO.getChargeType()), Course::getChargeType, courseDTO.getChargeType()) .eq(Objects.nonNull(courseDTO.getListingStatus()), Course::getListingStatus, courseDTO.getListingStatus()) - .orderByDesc(Course::getSortNum); + .orderByDesc(Course::getCreateTime); if (org.springframework.util.StringUtils.hasLength(courseDTO.getCourseTitle())){ List<Long> collect = courseService.lambdaQuery().like(Course::getCourseTitle, courseDTO.getCourseTitle()).list() .stream().map(Course::getId).collect(Collectors.toList()); @@ -336,18 +343,17 @@ long count1 = courseUserFavoriteService.count(new LambdaQueryWrapper<CourseUserFavorite>() .eq(CourseUserFavorite::getCourseId, record.getId())); record.setCollectCount(count1); - // 查询学习人数 -// record.setCount(remoteAppUserService.getUserByCourseId(record.getId()).getData().size()); - int size1 = courseLearningRecordService.lambdaQuery().eq(CourseLearningRecord::getCourseId, record.getId()) - .groupBy(CourseLearningRecord::getAppUserId).list().size(); List<CourseChapter> list = courseChapterService.lambdaQuery() .eq(CourseChapter::getCourseId, record.getId()).list(); - // 章节列表累加虚拟学习人数 - int temp = 0; + int a = 0; + int b = 0; for (CourseChapter courseChapter : list) { - temp+=courseChapter.getVirtualLearnedNum(); + a+= courseChapter.getVirtualLearnedNum(); + Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data1; + courseChapter.setRealLearnedNum(Integer.valueOf(data1+"")); } - record.setCount(size1+temp); + record.setCount(a+b); } return R.ok(PageDTO.of(page, Course.class)); } @@ -368,22 +374,19 @@ } List<CourseChapter> list = courseChapterService.lambdaQuery() .eq(CourseChapter::getCourseId, uid).list(); - int temp = 0; - int temp1 = 0; + + int a = 0; + int b = 0; for (CourseChapter courseChapter : list) { - int size = courseLearningRecordService.lambdaQuery() - .eq(CourseLearningRecord::getChapterId, courseChapter.getId()) - .list().size(); - courseChapter.setRealLearnedNum(size+courseChapter.getVirtualLearnedNum()); - temp+=courseChapter.getVirtualLearnedNum(); - temp1+=size; + a+= courseChapter.getVirtualLearnedNum(); + Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data1; + courseChapter.setRealLearnedNum(Integer.valueOf(data1+"")); } - int size1 = courseLearningRecordService.lambdaQuery() - .eq(CourseLearningRecord::getCourseId, uid).groupBy(CourseLearningRecord::getAppUserId) - .list().size(); - byId.setVirtualLearnedNum(temp); - byId.setRealLearnedNum(size1); - byId.setCount(temp+size1); + + byId.setVirtualLearnedNum(a); + byId.setRealLearnedNum(b); + byId.setCount(a+b); byId.setList(list); int size = courseUserFavoriteService.lambdaQuery() .eq(CourseUserFavorite::getCourseId, uid).list().size(); @@ -405,9 +408,15 @@ @PostMapping("/updateCourse") @ApiOperation(value = "修改课程管理", tags = "管理后台-课程管理") public R updateCourse(@RequestBody Course homeBackgroundMusic) { + LambdaUpdateWrapper<Course> courseLambdaUpdateWrapper = new LambdaUpdateWrapper<>(); + courseLambdaUpdateWrapper.eq(Course::getId, homeBackgroundMusic.getId()); + courseLambdaUpdateWrapper.set(Course::getDetailUrl, homeBackgroundMusic.getDetailUrl()); + courseLambdaUpdateWrapper.set(Course::getDetailName, homeBackgroundMusic.getDetailName()); + courseService.update(homeBackgroundMusic, courseLambdaUpdateWrapper); homeBackgroundMusic.setUpdateBy(SecurityUtils.getUsername()); homeBackgroundMusic.setUpdateTime(LocalDateTime.now()); - return R.ok(courseService.updateById(homeBackgroundMusic)); + courseService.updateById(homeBackgroundMusic); + return R.ok(); } @PostMapping("/deleteCourse") @ApiOperation(value = "批量删除", tags = "管理后台-课程管理") @@ -478,6 +487,7 @@ orderCourseVO.setGeneralPrice(meditation.getGeneralPrice()); orderCourseVO.setIosPrice(meditation.getIosPrice()); orderCourseVO.setCoverUrl(meditation.getCoverUrl()); + orderCourseVO.setCoverDescription(meditation.getCoverDescription()); orderCourseVO.setCount(meditation.getRealLearnedNum()+meditation.getVirtualLearnedNum()); orderCourseVOS.add(orderCourseVO); } @@ -500,16 +510,15 @@ orderCourseVO.setGeneralPrice(record.getGeneralPrice()); orderCourseVO.setIosPrice(record.getIosPrice()); orderCourseVO.setCoverUrl(record.getCoverUrl()); - List<AppUser> data1 = remoteAppUserService.getUserByCourseId(record.getId()).getData(); - List<CourseChapter> list = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, record.getId()).list(); int temp = 0 ; + int temp1 = 0 ; for (CourseChapter courseChapter : list) { temp+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + temp1+=data2; } - int size = courseLearningRecordService.lambdaQuery().eq(CourseLearningRecord::getCourseId, record.getId()) - .groupBy(CourseLearningRecord::getAppUserId).list().size(); - orderCourseVO.setCount(temp+size); + orderCourseVO.setCount(temp+temp1); orderCourseVOS.add(orderCourseVO); } break; @@ -612,21 +621,84 @@ @ApiImplicitParam(value = "课程id", name = "id", required = true, dataType = "String"), }) public R<ClientCourseVO> getPayCourseInfoById(@RequestParam(value = "id")Long id) { - LoginUser loginUser = tokenService.getLoginUser(); - if (loginUser==null){ - return R.tokenError("登录失效"); - } - Long userId = loginUser.getUserid(); - AppUserVO data1 = remoteAppUserService.getCurrentUser().getData(); - Course byId = courseService.getById(id); ClientCourseVO clientCourseVO = new ClientCourseVO(); BeanUtils.copyProperties(byId, clientCourseVO); - if (data1.getVipExpireTime()!=null && data1.getVipExpireTime().isAfter(LocalDateTime.now())){ - clientCourseVO.setIsVip(1); + clientCourseVO.setIsBuy(2); + List<AppUser> data = remoteAppUserService.getUserByCourseId(id).getData(); + if (byId.getChargeType()==1 && tokenService.getLoginUser()==null){ + if (data!=null){ + clientCourseVO.setCount(data.size()); + if (data.size()>=5){ + clientCourseVO.setHeaders(data.stream().limit(5).map(AppUser::getAvatar).collect(Collectors.toList())); + }else{ + clientCourseVO.setHeaders(data.stream().map(AppUser::getAvatar).collect(Collectors.toList())); + } + } }else{ - clientCourseVO.setIsVip(0); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userId = loginUser.getUserid(); + AppUser data1 = remoteAppUserService.getAppUserById(userId + "").getData(); + if (data1.getVipExpireTime()!=null && data1.getVipExpireTime().isAfter(LocalDateTime.now())){ + clientCourseVO.setIsVip(1); + }else{ + clientCourseVO.setIsVip(0); + } + List<Long> collect9 = data.stream().map(AppUser::getId).collect(Collectors.toList()); + if (!collect9.isEmpty()){ + if (collect9.contains(userId)){ + clientCourseVO.setIsBuy(1); + } + } + if(byId.getChargeType() != 1){ + List<CourseChapter> list = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId.getId()) + .list(); + // 累加实际学习人数 + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list) { + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + a+=data2; + b+=courseChapter.getVirtualLearnedNum(); + } + clientCourseVO.setCount(a+b); + }else if (data!=null){ + // 查询学习人数和头像列表 + clientCourseVO.setCount(data.size()); + List<CourseChapter> list = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId.getId()) + .list(); + // 累加实际学习人数 + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list) { + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + a+=data2; + b+=courseChapter.getVirtualLearnedNum(); + } + clientCourseVO.setCount(a+b); + if (data.size()>=5){ + clientCourseVO.setHeaders(data.stream().limit(5).map(AppUser::getAvatar).collect(Collectors.toList())); + }else{ + clientCourseVO.setHeaders(data.stream().map(AppUser::getAvatar).collect(Collectors.toList())); + } + List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); + if (!collect.isEmpty()){ + if (collect.contains(userId)){ + clientCourseVO.setIsBuy(1); + } + } + + } + // 查询是否已收藏课程 + clientCourseVO.setIsCollect(courseUserFavoriteService.lambdaQuery() + .eq(CourseUserFavorite::getAppUserId, userId) + .eq(CourseUserFavorite::getCourseId, id).one() == null ? 2 : 1); } + + // 查询用户是否已购买该课程 // 查询章节 List<CourseChapter> page = courseChapterService.lambdaQuery() @@ -634,33 +706,29 @@ .orderByDesc(CourseChapter::getSortNum) .list(); for (CourseChapter courseChapter : page) { - int size = courseLearningRecordService.lambdaQuery() - .eq(CourseLearningRecord::getChapterId, courseChapter.getId()) - .list().size(); - courseChapter.setRealLearnedNum(size+courseChapter.getVirtualLearnedNum()); + // 累加实际学习人数 + int a = 0; + int b = 0; + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + a+=data2; + b+=courseChapter.getVirtualLearnedNum(); + courseChapter.setRealLearnedNum(a); + courseChapter.setVirtualLearnedNum(b); + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser!=null){ + Integer data1 = remoteAppUserService.getCourseChapterHistoryState(loginUser.getUserid(), courseChapter.getId()).getData(); + courseChapter.setIsOver(data1); + }else{ + courseChapter.setIsOver(2); + } } clientCourseVO.setList(page); - clientCourseVO.setIsBuy(0); - // 查询学习人数和头像列表 - List<AppUser> data = remoteAppUserService.getUserByCourseId(id).getData(); - if (data!=null){ - clientCourseVO.setCount(data.size()); - if (data.size()>=5){ - clientCourseVO.setHeaders(data.stream().limit(5).map(AppUser::getAvatar).collect(Collectors.toList())); - }else{ - clientCourseVO.setHeaders(data.stream().map(AppUser::getAvatar).collect(Collectors.toList())); - } - List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); - if (!collect.isEmpty()){ - if (collect.contains(userId)){ - clientCourseVO.setIsBuy(1); - } - } - } // 查询推荐课程 List<Course> list = courseService.lambdaQuery().eq(Course::getCateId, byId.getCateId()) .eq(Course::getCourseType,1) + .eq(Course::getListingStatus,1) + .ne(Course::getId,id) .eq(Course::getRecommend, 1).list(); List<Course> courses = new ArrayList<>(); // 随机获取两个课程 @@ -669,21 +737,21 @@ int index = (int) (Math.random() * size); if (size >= 2){ for (int i = 0; i < 2; i++) { - courses.add(list.get(index)); + courses.add(list.get(i)); } }else{ - courses.add(list.get(index)); + courses.addAll(list); } } for (Course cours : courses) { List<AppUser> data3 = remoteAppUserService.getUserByCourseId(id).getData(); cours.setCount(data3.size()); } + clientCourseVO.setList2(courses); - // 查询是否已收藏课程 - clientCourseVO.setIsCollect(courseUserFavoriteService.lambdaQuery() - .eq(CourseUserFavorite::getAppUserId, userId) - .eq(CourseUserFavorite::getCourseId, id).one() == null ? 2 : 1); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } /** @@ -728,6 +796,8 @@ // 查询推荐课程 List<Course> list = courseService.lambdaQuery().eq(Course::getCateId, byId.getCateId()) .eq(Course::getCourseType,1) + .eq(Course::getListingStatus,1) + .ne(Course::getId,id) .eq(Course::getRecommend, 1).list(); List<Course> courses = new ArrayList<>(); // 随机获取两个课程 @@ -747,6 +817,9 @@ cours.setCount(data1.size()); } clientCourseVO.setList2(courses); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } @@ -781,10 +854,13 @@ .eq(CourseChapter::getCourseId, record.getId()).list(); // 章节列表累加虚拟学习人数 int temp = 0; + int temp1 = 0; for (CourseChapter courseChapter : list) { temp+=courseChapter.getVirtualLearnedNum(); + Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + temp1+=data1; } - record.setCount(size1+temp); + record.setCount(temp1+temp); } return R.ok(coursePageList); } @@ -792,28 +868,11 @@ @ApiOperation(value = "课程学习页面") @ApiImplicitParams({ @ApiImplicitParam(value = "章节id", name = "chapterId", required = true, dataType = "Long"), - }) public R<List<CourseChapter>> studyPageByChapterId(@RequestParam(value = "chapterId")Long chapterId) { - LoginUser loginUser = tokenService.getLoginUser(); - if (loginUser==null){ - return R.tokenError("登录失效"); - } - Long userid = loginUser.getUserid(); + CourseChapter byId1 = courseChapterService.getById(chapterId); Course byId = courseService.getById(byId1.getCourseId()); - // 新增学习记录 - CourseLearningRecord one = courseLearningRecordService.lambdaQuery().eq(CourseLearningRecord::getAppUserId, userid) - .eq(CourseLearningRecord::getChapterId, chapterId).one(); - if (one==null){ - CourseLearningRecord courseLearningRecord = new CourseLearningRecord(); - courseLearningRecord.setAppUserId(userid); - if (byId!=null){ - courseLearningRecord.setCourseId(byId.getId()); - } - courseLearningRecord.setChapterId(chapterId); - courseLearningRecordService.save(courseLearningRecord); - } Long id = byId1.getCourseId(); // 查询章节 List<CourseChapter> page = courseChapterService.lambdaQuery() @@ -821,19 +880,43 @@ .orderByDesc(CourseChapter::getSortNum) .list(); - for (CourseChapter courseChapter : page) { - AppUserViewingHistory data = remoteAppUserService.getCourseStudyHistory(courseChapter.getId()).getData(); - if (data!=null){ - courseChapter.setMinuteLook(data.getMinuteLook()); - courseChapter.setSecondLook(data.getSecondLook()); - courseChapter.setIsOver(data.getIsOver()); - } - int size = courseLearningRecordService - .lambdaQuery().eq(CourseLearningRecord::getChapterId, courseChapter.getId()) - .list().size(); - courseChapter.setRealLearnedNum(size+courseChapter.getVirtualLearnedNum()); + for (CourseChapter courseChapter : page) { + AppUserViewingHistory data = remoteAppUserService.getCourseStudyHistory(courseChapter.getId()).getData(); + if (data!=null){ + courseChapter.setMinuteLook(data.getMinuteLook()); + courseChapter.setSecondLook(data.getSecondLook()); + courseChapter.setIsOver(data.getIsOver()); } - return R.ok(page); + int size = courseLearningRecordService + .lambdaQuery().eq(CourseLearningRecord::getChapterId, courseChapter.getId()) + .list().size(); + courseChapter.setRealLearnedNum(size+courseChapter.getVirtualLearnedNum()); + } + if (byId.getChargeType() == 1&&tokenService.getLoginUser()==null){ + return R.ok(page); + }else{ + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + Long userid = loginUser.getUserid(); + // 新增学习记录 + CourseLearningRecord one = courseLearningRecordService.lambdaQuery().eq(CourseLearningRecord::getAppUserId, userid) + .eq(CourseLearningRecord::getChapterId, chapterId).one(); + if (one==null){ + CourseLearningRecord courseLearningRecord = new CourseLearningRecord(); + courseLearningRecord.setAppUserId(userid); + if (byId!=null){ + courseLearningRecord.setCourseId(byId.getId()); + } + courseLearningRecord.setChapterId(chapterId); + courseLearningRecordService.save(courseLearningRecord); + } + + return R.ok(page); + + } + } @PostMapping("/confirmOrder") @ApiOperation(value = "确认订单页面") @@ -850,6 +933,11 @@ Course byId = courseService.getById(courseId); AppUser data = remoteAppUserService.getAppUserById(userId + "").getData(); byId.setBalance(data.getBalance()); + System.err.println("课程类型"+byId.getChargeType()); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } + System.err.println("返回数据"+byId); return R.ok(byId); } @PostMapping("/successOrder") @@ -865,10 +953,21 @@ Long userId = loginUser.getUserid(); Course byId = courseService.getById(courseId); List<Course> list = courseService.lambdaQuery().eq(Course::getCateId, byId.getCateId()) + .eq(Course::getListingStatus,1) + .ne(Course::getId,courseId) .eq(Course::getCourseType, 1).list(); for (Course course : list) { List<AppUser> data = remoteAppUserService.getUserByCourseId(courseId).getData(); - course.setCount(data.size()); + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, course).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data1; + } + course.setCount(a+b); + course.setRealLearnedNum(a+b); } List<Course> courses = new ArrayList<>(); @@ -905,9 +1004,48 @@ .list(); for (Course course : page) { CourseVO courseVO = new CourseVO(); + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, course.getId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data1 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data1; + } + course.setCount(a+b); + course.setRealLearnedNum(a+b); + course.setVirtualLearnedNum(0); BeanUtils.copyProperties(course, courseVO); - courseVOS.add(courseVO); - studyPageVO.setCourseList(courseVOS); + List<Long> collect = courseVOS.stream().map(CourseVO::getId).collect(Collectors.toList()); + if (!collect.contains(courseVO.getId())){ + courseVOS.add(courseVO); + } + } + } + List<Long> data1 = remoteAppUserService.getCourseHistoryByUserId(userId).getData(); + for (Long l : data1) { + CourseChapter byId1 = courseChapterService.getById(l); + Course byId = courseService.getById(byId1.getCourseId()); + if (byId!=null){ + CourseVO courseVO = new CourseVO(); + BeanUtils.copyProperties(byId, courseVO); + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId1.getCourseId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + courseVO.setCount(a+b); + courseVO.setRealLearnedNum(a+b); + courseVO.setVirtualLearnedNum(0); + courseVO.setId(byId.getId()); + courseVO.setCoverUrl(byId.getCoverUrl()); + List<Long> collect = courseVOS.stream().map(CourseVO::getId).collect(Collectors.toList()); + if (!collect.contains(courseVO.getId())){ + courseVOS.add(courseVO); + } } } // 查询两个相同类型的线上免费课程 @@ -915,19 +1053,119 @@ .eq(Course::getCourseType, 1) .eq(Course::getChargeType, 1) .list(); - // 随机获取两个 - if (CollUtils.isNotEmpty(freeCourseList) && freeCourseList.size() > 2) { - int size = freeCourseList.size(); - int index = (int) (Math.random() * size); - List<Course> courses = new ArrayList<>(); - for (int i = 0; i < 2; i++) { - courses.add(freeCourseList.get(index)); + // 远程查询用户观看历史 + if (!data1.isEmpty()){ + // 随机获取两个 + if (CollUtils.isNotEmpty(freeCourseList) && freeCourseList.size() > 2) { + List<Course> courses = new ArrayList<>(); + for (Course cours : freeCourseList) { + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, cours.getId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + cours.setCount(a+b); + cours.setRealLearnedNum(a+b); + cours.setVirtualLearnedNum(0); + } + for (int i = 0; i < 2; i++) { + courses.add(freeCourseList.get(i)); + } + studyPageVO.setFreeCourseList(courses); + }else{ + for (Course cours : freeCourseList) { + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, cours.getId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + cours.setCount(a+b); + cours.setRealLearnedNum(a+b); + } + studyPageVO.setFreeCourseList(freeCourseList); } - studyPageVO.setFreeCourseList(courses); + for (Long l : data1) { + CourseChapter byId1 = courseChapterService.getById(l); + Course byId = courseService.getById(byId1.getCourseId()); + if (byId!=null){ + CourseVO courseVO = new CourseVO(); + BeanUtils.copyProperties(byId, courseVO); + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId1.getCourseId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + courseVO.setCount(a+b); + courseVO.setRealLearnedNum(a+b); + courseVO.setVirtualLearnedNum(0); + courseVO.setId(byId.getId()); + courseVO.setCoverUrl(byId.getCoverUrl()); + List<Long> collect = courseVOS.stream().map(CourseVO::getId).collect(Collectors.toList()); + if (!collect.contains(courseVO.getId())){ + courseVOS.add(courseVO); + } + } + } + studyPageVO.setCourseList(courseVOS); + return R.ok(studyPageVO); }else{ - studyPageVO.setFreeCourseList(freeCourseList); + List<Course> list1 = courseService.lambdaQuery() + .eq(Course::getChargeType, 1) + .eq(Course::getListingStatus, 1) + .list(); + if (list1.size()>=2){ + List<Course> courses = new ArrayList<>(); + courses.add(list1.get(0)); + courses.add(list1.get(1)); + for (Course cours : courses) { + List<CourseChapter> list3 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, cours.getId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list3) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + cours.setCount(a+b); + cours.setRealLearnedNum(a+b); + } + studyPageVO.setFreeCourseList(courses); + }else if (list1.size()==1){ + List<Course> courses = new ArrayList<>(); + courses.add(list1.get(0)); + for (Course course : freeCourseList) { + if (!course.getId().equals(list1.get(0).getId())){ + courses.add(course); + break; + } + } + for (Course cours : courses) { + List<CourseChapter> list3 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, cours.getId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list3) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + cours.setCount(a+b); + cours.setRealLearnedNum(a+b); + } + studyPageVO.setFreeCourseList(courses); + } + studyPageVO.setCourseList(courseVOS); + return R.ok(studyPageVO); } - return R.ok(studyPageVO); + } } -- Gitblit v1.7.1