From 6c19eb74b11c6cbf475d43496b90cdee2a28d8b7 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 11 十一月 2024 18:46:00 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java | 130 +++++++++++++++++++++++++++++++++--------- 1 files changed, 101 insertions(+), 29 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 b0279f3..0187534 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 @@ -45,6 +45,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; @@ -644,9 +645,33 @@ }else{ clientCourseVO.setIsVip(0); } - // 查询学习人数和头像列表 - if (data!=null){ + 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); + clientCourseVO.setIsBuy(1); + }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{ @@ -658,6 +683,7 @@ clientCourseVO.setIsBuy(1); } } + } // 查询是否已收藏课程 clientCourseVO.setIsCollect(courseUserFavoriteService.lambdaQuery() @@ -673,15 +699,24 @@ .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+b); + courseChapter.setVirtualLearnedNum(0); + 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); - - + clientCourseVO.setIsBuy(2); // 查询推荐课程 List<Course> list = courseService.lambdaQuery().eq(Course::getCateId, byId.getCateId()) .eq(Course::getCourseType,1) @@ -703,8 +738,11 @@ List<AppUser> data3 = remoteAppUserService.getUserByCourseId(id).getData(); cours.setCount(data3.size()); } - clientCourseVO.setList2(courses); + clientCourseVO.setList2(courses); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } /** @@ -768,6 +806,9 @@ cours.setCount(data1.size()); } clientCourseVO.setList2(courses); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } @@ -802,10 +843,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); } @@ -878,6 +922,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") @@ -958,18 +1007,38 @@ 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()); + courseVOS.add(courseVO); + } + } // 查询两个相同类型的线上免费课程 List<Course> freeCourseList = courseService.lambdaQuery() .eq(Course::getCourseType, 1) .eq(Course::getChargeType, 1) .list(); // 远程查询用户观看历史 - List<Long> data1 = remoteAppUserService.getCourseHistoryByUserId(userId).getData(); if (!data1.isEmpty()){ // 随机获取两个 if (CollUtils.isNotEmpty(freeCourseList) && freeCourseList.size() > 2) { - int size = freeCourseList.size(); - int index = (int) (Math.random() * size); List<Course> courses = new ArrayList<>(); for (Course cours : freeCourseList) { List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, cours.getId()).list(); @@ -985,7 +1054,7 @@ cours.setVirtualLearnedNum(0); } for (int i = 0; i < 2; i++) { - courses.add(freeCourseList.get(index)); + courses.add(freeCourseList.get(i)); } studyPageVO.setFreeCourseList(courses); }else{ @@ -1006,20 +1075,24 @@ for (Long l : data1) { CourseChapter byId1 = courseChapterService.getById(l); Course byId = courseService.getById(byId1.getCourseId()); - 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; + 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()); + courseVOS.add(courseVO); } - courseVO.setCount(a+b); - courseVO.setRealLearnedNum(a+b); - courseVO.setVirtualLearnedNum(0); - courseVOS.add(courseVO); } studyPageVO.setCourseList(courseVOS); return R.ok(studyPageVO); @@ -1045,7 +1118,6 @@ studyPageVO.setFreeCourseList(courses); } studyPageVO.setCourseList(courseVOS); - return R.ok(studyPageVO); } -- Gitblit v1.7.1