yanghb
2024-04-15 6bc25b33e90d45904d1843e927fa709dfeb51d7f
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CourseController.java
@@ -17,6 +17,7 @@
import cn.stylefeng.guns.modular.business.entity.*;
import cn.stylefeng.guns.modular.business.service.*;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
import cn.stylefeng.roses.kernel.customer.modular.entity.Customer;
import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService;
import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
@@ -118,46 +119,50 @@
        }
        return new SuccessResponseData<>(course);
    }
    @Resource
    private CacheOperatorApi<List<CourseResponseDTO>> roleInfoCacheApi1;
    /**
     * 获取课程管理列表(分页)
     */
    @ApiOperation("获取课程管理列表(分页)")
    @GetResource(name = "获取课程管理列表(分页)", path = "/page", requiredPermission = false)
    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());
        }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);
    public ResponseData<List<CourseResponseDTO>> page(CourseRequest courseRequest) {
        List<CourseResponseDTO> course = roleInfoCacheApi1.get("course");
        return new SuccessResponseData<>(course);
        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())));
    }