From 111652d23733d04e379c2454c8b39171596a6b50 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 09 十一月 2024 14:28:51 +0800 Subject: [PATCH] 代码提交 --- xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java | 200 ++++++++++++++++++++++++++++++++------------------ 1 files changed, 128 insertions(+), 72 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..07f5572 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 @@ -142,11 +142,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); } @@ -612,21 +617,54 @@ @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); + 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); + } + // 查询学习人数和头像列表 + 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); + } + } + } + // 查询是否已收藏课程 + clientCourseVO.setIsCollect(courseUserFavoriteService.lambdaQuery() + .eq(CourseUserFavorite::getAppUserId, userId) + .eq(CourseUserFavorite::getCourseId, id).one() == null ? 2 : 1); } + + // 查询用户是否已购买该课程 // 查询章节 List<CourseChapter> page = courseChapterService.lambdaQuery() @@ -641,22 +679,7 @@ } 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()) @@ -680,10 +703,7 @@ cours.setCount(data3.size()); } clientCourseVO.setList2(courses); - // 查询是否已收藏课程 - clientCourseVO.setIsCollect(courseUserFavoriteService.lambdaQuery() - .eq(CourseUserFavorite::getAppUserId, userId) - .eq(CourseUserFavorite::getCourseId, id).one() == null ? 2 : 1); + return R.ok(clientCourseVO); } /** @@ -792,28 +812,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 +824,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 = "确认订单页面") @@ -865,10 +892,12 @@ Long userId = loginUser.getUserid(); Course byId = courseService.getById(courseId); List<Course> list = courseService.lambdaQuery().eq(Course::getCateId, byId.getCateId()) + .ne(Course::getId,courseId) .eq(Course::getCourseType, 1).list(); for (Course course : list) { List<AppUser> data = remoteAppUserService.getUserByCourseId(courseId).getData(); - course.setCount(data.size()); + course.setCount(data.size()+course.getVirtualLearnedNum()); + course.setRealLearnedNum(data.size()+course.getVirtualLearnedNum()); } List<Course> courses = new ArrayList<>(); @@ -915,19 +944,46 @@ .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)); + // 远程查询用户观看历史 + 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 (int i = 0; i < 2; i++) { + courses.add(freeCourseList.get(index)); + } + studyPageVO.setFreeCourseList(courses); + }else{ + studyPageVO.setFreeCourseList(freeCourseList); } - studyPageVO.setFreeCourseList(courses); + 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)); + 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; + } + } + studyPageVO.setFreeCourseList(courses); + } + return R.ok(studyPageVO); } - return R.ok(studyPageVO); + } } -- Gitblit v1.7.1