luodangjia
2024-04-28 94e9dc3adb80baf6e1d7d56e54a93917996bc339
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CourseController.java
@@ -120,49 +120,100 @@
        return new SuccessResponseData<>(course);
    }
    @Resource
    private CacheOperatorApi<List<CourseResponseDTO>> roleInfoCacheApi1;
    private CacheOperatorApi<List<CourseResponseDTO>> roleInfoCacheApi;
    /**
     * 获取课程管理列表(分页)
     */
    @ApiOperation("获取课程管理列表(分页)")
    @GetResource(name = "获取课程管理列表(分页)", path = "/page", requiredPermission = false)
    public ResponseData<List<CourseResponseDTO>> page(CourseRequest courseRequest) {
        List<CourseResponseDTO> course = roleInfoCacheApi1.get("course");
        return new SuccessResponseData<>(course);
    public ResponseData<PageResult<CourseResponseDTO>> page(CourseRequest courseRequest) {
//        LambdaQueryWrapper<Course> lambdaQueryWrapper = new LambdaQueryWrapper<Course>().eq(Course::getIsDelete,false)
//                    .orderByDesc(Course::getSort,Course::getCreateTime);
//        if (courseRequest.getListingStatus() != null){
//            lambdaQueryWrapper.eq(Course::getListingStatus,courseRequest.getListingStatus());
//        if (roleInfoCacheApi.get("course:"+LoginContext.me().getLoginUser().getUserId())!=null){
//                return  new SuccessResponseData<>(roleInfoCacheApi.get("course:"+LoginContext.me().getLoginUser().getUserId()));
//        }else {
//            lambdaQueryWrapper.eq(Course::getListingStatus,1);
//        }
//        lambdaQueryWrapper.like(StrUtil.isNotBlank(courseRequest.getCourseName()),Course::getCourseName,courseRequest.getCourseName());
//        Page<Course> page = this.courseService.page(PageFactory.defaultPage(), lambdaQueryWrapper);
//
//        if (CollectionUtil.isNotEmpty(page.getRecords())){
//            List<CourseResponseDTO> courseResponseDTOList = BeanUtil.copyToList(page.getRecords(),CourseResponseDTO.class, CopyOptions.create());
//            //查询当前人是否购买过课程
//            List<CourseOrder> courseOrderList = this.courseOrderService.list(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getCourseId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag,1));
//            if (CollectionUtil.isNotEmpty(courseOrderList)){
//                List<Long> courseIds = courseOrderList.stream().map(CourseOrder::getCourseId).collect(Collectors.toList());
//                courseResponseDTOList.forEach(course1 -> {
//                   if (courseIds.contains(course1.getId())){
//                       course1.setIsBuy(true);
//                       CourseOrder courseOrder = this.courseOrderService.getOne(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag,1)
//                               .eq(CourseOrder::getCourseId,course1.getId()).orderByAsc(CourseOrder::getPayTime)
//                               .last(" limit 1 "));
//                       if(courseOrder != null){
//                           course1.setCourseOrderId(courseOrder.getId());
//                       }
//                   }else{
//                       course1.setIsBuy(false);
//                   }
//                });
//            LambdaQueryWrapper<Course> lambdaQueryWrapper = new LambdaQueryWrapper<Course>().eq(Course::getIsDelete, false)
//                    .orderByDesc(Course::getSort, Course::getCreateTime);
//            if (courseRequest.getListingStatus() != null) {
//                lambdaQueryWrapper.eq(Course::getListingStatus, courseRequest.getListingStatus());
//            } else {
//                lambdaQueryWrapper.eq(Course::getListingStatus, 1);
//            }
//         return  new SuccessResponseData<>(PageResultFactory.createPageResult(courseResponseDTOList,page.getTotal(), Convert.toInt(page.getSize()),Convert.toInt(page.getCurrent())));
//            lambdaQueryWrapper.like(StrUtil.isNotBlank(courseRequest.getCourseName()), Course::getCourseName, courseRequest.getCourseName());
//            List<Course> page = this.courseService.list( lambdaQueryWrapper);
//
//            if (CollectionUtil.isNotEmpty(page)) {
//                List<CourseResponseDTO> courseResponseDTOList = BeanUtil.copyToList(page, CourseResponseDTO.class, CopyOptions.create());
//                //查询当前人是否购买过课程
//                List<CourseOrder> courseOrderList = this.courseOrderService.list(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getCourseId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag, 1));
//                if (CollectionUtil.isNotEmpty(courseOrderList)) {
//                    List<Long> courseIds = courseOrderList.stream().map(CourseOrder::getCourseId).collect(Collectors.toList());
//                    courseResponseDTOList.forEach(course1 -> {
//                        if (courseIds.contains(course1.getId())) {
//                            course1.setIsBuy(true);
//                            CourseOrder courseOrder = this.courseOrderService.getOne(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag, 1)
//                                    .eq(CourseOrder::getCourseId, course1.getId()).orderByAsc(CourseOrder::getPayTime)
//                                    .last(" limit 1 "));
//                            if (courseOrder != null) {
//                                course1.setCourseOrderId(courseOrder.getId());
//                            }
//                        } else {
//                            course1.setIsBuy(false);
//                        }
//                    });
//                }
//                roleInfoCacheApi.put("course:"+LoginContext.me().getLoginUser().getUserId(),courseResponseDTOList,600L);
//                return new SuccessResponseData<>(courseResponseDTOList);
//            }
//
//        }
//        return  new SuccessResponseData<>(PageResultFactory.createPageResult(new ArrayList<CourseResponseDTO>(),page.getTotal(), Convert.toInt(page.getSize()),Convert.toInt(page.getCurrent())));
//        return new SuccessResponseData<>();
        //缓存
//
//        List<Object> course = roleInfoCacheApi.get("course");
//        return new SuccessResponseData<>(course);
        LambdaQueryWrapper<Course> lambdaQueryWrapper = new LambdaQueryWrapper<Course>().eq(Course::getIsDelete,false)
                    .orderByDesc(Course::getSort,Course::getCreateTime);
        if (courseRequest.getListingStatus() != null){
            lambdaQueryWrapper.eq(Course::getListingStatus,courseRequest.getListingStatus());
        }else {
            lambdaQueryWrapper.eq(Course::getListingStatus,1);
        }
        lambdaQueryWrapper.like(StrUtil.isNotBlank(courseRequest.getCourseName()),Course::getCourseName,courseRequest.getCourseName());
        Page<Course> page = this.courseService.page(PageFactory.defaultPage(), lambdaQueryWrapper);
        if (CollectionUtil.isNotEmpty(page.getRecords())){
            List<CourseResponseDTO> courseResponseDTOList = BeanUtil.copyToList(page.getRecords(),CourseResponseDTO.class, CopyOptions.create());
            //查询当前人是否购买过课程
            List<CourseOrder> courseOrderList = this.courseOrderService.list(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getCourseId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag,1));
            if (CollectionUtil.isNotEmpty(courseOrderList)){
                List<Long> courseIds = courseOrderList.stream().map(CourseOrder::getCourseId).collect(Collectors.toList());
                courseResponseDTOList.forEach(course1 -> {
                    //不返回内容 内容文件太大
                    course1.setCourseContent(null);
                   if (courseIds.contains(course1.getId())){
                       course1.setIsBuy(true);
                       CourseOrder courseOrder = this.courseOrderService.getOne(new LambdaQueryWrapper<CourseOrder>().select(CourseOrder::getId).eq(CourseOrder::getUserId, LoginContext.me().getLoginUser().getUserId()).eq(CourseOrder::getStatusFlag,1)
                               .eq(CourseOrder::getCourseId,course1.getId()).orderByAsc(CourseOrder::getPayTime)
                               .last(" limit 1 "));
                       if(courseOrder != null){
                           course1.setCourseOrderId(courseOrder.getId());
                       }
                   }else{
                       course1.setIsBuy(false);
                   }
                });
            }else{
                courseResponseDTOList.forEach(course1 -> {
                    //不返回内容 内容文件太大
                    course1.setCourseContent(null);
                    course1.setIsBuy(false);
                });
            }
         return  new SuccessResponseData<>(PageResultFactory.createPageResult(courseResponseDTOList,page.getTotal(), Convert.toInt(page.getSize()),Convert.toInt(page.getCurrent())));
        }
        return  new SuccessResponseData<>(PageResultFactory.createPageResult(new ArrayList<CourseResponseDTO>(),page.getTotal(), Convert.toInt(page.getSize()),Convert.toInt(page.getCurrent())));
    }