yanghb
2024-04-15 f7bed575dc1397dc214fe77af0cf6228c6dfc92a
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CourseController.java
@@ -120,49 +120,49 @@
        return new SuccessResponseData<>(course);
    }
    @Resource
    private CacheOperatorApi<List<CourseResponseDTO>> roleInfoCacheApi1;
    private CacheOperatorApi<List<Object>> 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) {
//        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 -> {
//                   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);
//                   }
//                });
//            }
//         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())));
        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 -> {
                   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);
                   }
                });
            }
         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())));
    }