yanghb
2024-04-15 f7bed575dc1397dc214fe77af0cf6228c6dfc92a
4.15
3个文件已修改
304 ■■■■ 已修改文件
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CourseController.java 74 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java 228 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java
@@ -257,7 +257,7 @@
            });
            roleInfoCacheApi.put("customer",counsellinginfoResponseDTOS,600L);
            return  new SuccessResponseData<>(counsellinginfoResponseDTOS);
        }
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())));
    }
rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java
@@ -64,9 +64,9 @@
     * @Scheduled(cron = "0 0/30 * * * *")
     */
    @Resource
    private CacheOperatorApi<List<CounsellinginfoResponseDTO>> roleInfoCacheApi;
    @Resource
    private CacheOperatorApi<List<CourseResponseDTO>> roleInfoCacheApi1;
    private CacheOperatorApi<List<Object>> roleInfoCacheApi;
//    @Resource
//    private CacheOperatorApi<List<Object>> roleInfoCacheApi1;
    @Resource
    private CustomerService customerService;
    @Resource
@@ -81,118 +81,118 @@
    private ICourseService courseService;
    @Resource
    private ICourseOrderService courseOrderService;
    @Scheduled(fixedRate = 1000 * 60)
    public void list1() {
        LambdaQueryWrapper<Course> lambdaQueryWrapper = new LambdaQueryWrapper<Course>().eq(Course::getIsDelete,false)
                .orderByDesc(Course::getSort,Course::getCreateTime);
            lambdaQueryWrapper.eq(Course::getListingStatus,1);
//        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);
                    }
                });
            }
            roleInfoCacheApi1.put("course",courseResponseDTOList);
        }
    }
        @Scheduled(fixedRate = 1000 * 60)
    public void list() {
        LambdaQueryWrapper<CounsellingInfo> lambdaQueryWrapper = new LambdaQueryWrapper<CounsellingInfo>().eq(CounsellingInfo::getIsDelete,false)
                .orderByDesc(CounsellingInfo::getSort,CounsellingInfo::getCreateTime).eq(CounsellingInfo::getListingStatus,1);
        //默认普通查询
//        if (searchType != null  && searchType.intValue() == 1){
            List<Customer> customerList1 = customerService.getWorkerListByLineStatusAndPost(null, null, PostIdEnum.PO_22.getCode(), CustomerWorkStatusEnum.ON_WORK.getCode());
            if (CollectionUtil.isNotEmpty(customerList1)){
                List<Long> customerIds = customerList1.stream().map(Customer::getCustomerId).collect(Collectors.toList());
                lambdaQueryWrapper.in(CounsellingInfo::getUserId,customerIds);
            }
//        }
        List<CounsellingInfo> page = this.counsellingInfoService.list(lambdaQueryWrapper);
        if (CollectionUtil.isNotEmpty(page)){
            List<Long> counseIds = page.stream().map(CounsellingInfo::getId).collect(Collectors.toList());
            QueryWrapper<CounsellingOrder> orderQueryWrapper = new QueryWrapper<CounsellingOrder>().select("counselling_info_id counsellingInfoId,count(1) num ");
            //查询是否首次咨询
            orderQueryWrapper.lambda().eq(CounsellingOrder::getUserId,LoginContext.me().getLoginUser().getUserId()).in(CounsellingOrder::getStatusFlag,1,2).in(CounsellingOrder::getCounsellingInfoId,counseIds)
                    .eq(CounsellingOrder::getOrderType,1).groupBy(CounsellingOrder::getCounsellingInfoId).having(" num > 0 ");
            List<Map<String,Object>> mapList = this.counsellingOrderService.listMaps(orderQueryWrapper);
            Map<Long,Object> fristMap = new HashMap<>();
            if (CollectionUtil.isNotEmpty(mapList)){
                mapList.stream().forEach(stringObjectMap -> {
                    fristMap.put(Long.parseLong(stringObjectMap.get("counsellingInfoId").toString()),stringObjectMap.get("num"));
                });
            }
            //查询标签总条数
            List<CounsellingTag> counsellingTags = this.counsellingTagService.list(new LambdaQueryWrapper<CounsellingTag>()
                    .select(CounsellingTag::getId,CounsellingTag::getTagName));
            List<Long> custommerIds = page.stream().map(CounsellingInfo::getUserId).collect(Collectors.toList());
            //查询客户ids
            List<Customer> customerList = this.customerService.list(new LambdaQueryWrapper<Customer>().select(Customer::getCustomerId,Customer::getNickName).in(Customer::getCustomerId,custommerIds));
            //查询套餐最低价
            List<Map<String,Object>> lowMapList = this.counsellingSetMealService.listMaps(new QueryWrapper<CounsellingSetMeal>().select(" counselling_info_id counsellingInfoId,IFNULL(min(price),0) price ").lambda().in(CounsellingSetMeal::getCounsellingInfoId,counseIds)
                    .eq(CounsellingSetMeal::getSetMealType,1).eq(CounsellingSetMeal::getIsDelete,0));
            List<CounsellinginfoResponseDTO> counsellinginfoResponseDTOS = BeanUtil.copyToList(page,CounsellinginfoResponseDTO.class, CopyOptions.create());
            counsellinginfoResponseDTOS.stream().forEach(counsellinginfoResponseDTO -> {
                if (fristMap.get(counsellinginfoResponseDTO.getId()) != null){
                    counsellinginfoResponseDTO.setIsFirstBuy(true);
                }
                if (StrUtil.isNotBlank(counsellinginfoResponseDTO.getCounsellingTagIds())){
                    List<String> counsellingTagList = Arrays.asList(counsellinginfoResponseDTO.getCounsellingTagIds().split(","));
                    String tagNames = counsellingTags.stream().filter(cou -> counsellingTagList.contains(cou.getId().toString())).map(CounsellingTag::getTagName).collect(Collectors.joining(","));
                    //获取课程标签名称
//                    LambdaQueryWrapper<CounsellingTag> counsellingTagLambdaQueryWrapper = new QueryWrapper<CounsellingTag>().select(" GROUP_CONCAT(tag_name)  tagName ").lambda();
//                    Map<String,Object> map = counsellingTagService.getMap(counsellingTagLambdaQueryWrapper.in(CounsellingTag::getId,counsellinginfoResponseDTO.getCounsellingTagIds().split(",")));
//                    if (ObjectUtil.isNotEmpty(map)){
                    counsellinginfoResponseDTO.setCounsellingTagNames(tagNames);
//    @Scheduled(fixedRate = 1000 * 60)
//    public void list1() {
//        LambdaQueryWrapper<Course> lambdaQueryWrapper = new LambdaQueryWrapper<Course>().eq(Course::getIsDelete,false)
//                .orderByDesc(Course::getSort,Course::getCreateTime);
//            lambdaQueryWrapper.eq(Course::getListingStatus,1);
////        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);
//                    }
                }
                counsellinginfoResponseDTO.setPersonalProfile(null);
                counsellinginfoResponseDTO.setNikeName(customerList.stream().filter(cus -> counsellinginfoResponseDTO.getUserId().longValue() == cus.getCustomerId().longValue()).findFirst().get().getNickName());
//                BigDecimal lowPrice = this.counsellingSetMealService.getObj(new QueryWrapper<CounsellingSetMeal>().select(" counselling_info_id counsellingInfoId,IFNULL(min(price),0) price ").lambda().eq(CounsellingSetMeal::getCounsellingInfoId,counsellinginfoResponseDTO.getId())
//                        .eq(CounsellingSetMeal::getSetMealType,1).eq(CounsellingSetMeal::getIsDelete,0),Convert::toBigDecimal);
                if (CollectionUtil.isNotEmpty(lowMapList)){
                    lowMapList.stream().forEach(stringObjectMap -> {
                        if (stringObjectMap.get("counsellingInfoId") != null){
                            counsellinginfoResponseDTO.setLowPrice(new BigDecimal(stringObjectMap.get("price").toString()));
                        }
                    });
                    if (counsellinginfoResponseDTO.getLowPrice() == null){
                        counsellinginfoResponseDTO.setLowPrice(new BigDecimal(0));
                    }
                }
            });
            roleInfoCacheApi.put("customer",counsellinginfoResponseDTOS);
        }
    }
//                });
//            }
//            roleInfoCacheApi.put("course", Collections.singletonList(courseResponseDTOList));
//        }
//
//
//
//
//    }
//        @Scheduled(fixedRate = 1000 * 60)
//
//    public void list() {
//        LambdaQueryWrapper<CounsellingInfo> lambdaQueryWrapper = new LambdaQueryWrapper<CounsellingInfo>().eq(CounsellingInfo::getIsDelete,false)
//                .orderByDesc(CounsellingInfo::getSort,CounsellingInfo::getCreateTime).eq(CounsellingInfo::getListingStatus,1);
//        //默认普通查询
////        if (searchType != null  && searchType.intValue() == 1){
//            List<Customer> customerList1 = customerService.getWorkerListByLineStatusAndPost(null, null, PostIdEnum.PO_22.getCode(), CustomerWorkStatusEnum.ON_WORK.getCode());
//            if (CollectionUtil.isNotEmpty(customerList1)){
//                List<Long> customerIds = customerList1.stream().map(Customer::getCustomerId).collect(Collectors.toList());
//                lambdaQueryWrapper.in(CounsellingInfo::getUserId,customerIds);
//            }
////        }
//        List<CounsellingInfo> page = this.counsellingInfoService.list(lambdaQueryWrapper);
//        if (CollectionUtil.isNotEmpty(page)){
//            List<Long> counseIds = page.stream().map(CounsellingInfo::getId).collect(Collectors.toList());
//            QueryWrapper<CounsellingOrder> orderQueryWrapper = new QueryWrapper<CounsellingOrder>().select("counselling_info_id counsellingInfoId,count(1) num ");
//            //查询是否首次咨询
//            orderQueryWrapper.lambda().eq(CounsellingOrder::getUserId,LoginContext.me().getLoginUser().getUserId()).in(CounsellingOrder::getStatusFlag,1,2).in(CounsellingOrder::getCounsellingInfoId,counseIds)
//                    .eq(CounsellingOrder::getOrderType,1).groupBy(CounsellingOrder::getCounsellingInfoId).having(" num > 0 ");
//            List<Map<String,Object>> mapList = this.counsellingOrderService.listMaps(orderQueryWrapper);
//            Map<Long,Object> fristMap = new HashMap<>();
//            if (CollectionUtil.isNotEmpty(mapList)){
//
//                mapList.stream().forEach(stringObjectMap -> {
//                    fristMap.put(Long.parseLong(stringObjectMap.get("counsellingInfoId").toString()),stringObjectMap.get("num"));
//                });
//            }
//            //查询标签总条数
//            List<CounsellingTag> counsellingTags = this.counsellingTagService.list(new LambdaQueryWrapper<CounsellingTag>()
//                    .select(CounsellingTag::getId,CounsellingTag::getTagName));
//            List<Long> custommerIds = page.stream().map(CounsellingInfo::getUserId).collect(Collectors.toList());
//            //查询客户ids
//            List<Customer> customerList = this.customerService.list(new LambdaQueryWrapper<Customer>().select(Customer::getCustomerId,Customer::getNickName).in(Customer::getCustomerId,custommerIds));
//            //查询套餐最低价
//            List<Map<String,Object>> lowMapList = this.counsellingSetMealService.listMaps(new QueryWrapper<CounsellingSetMeal>().select(" counselling_info_id counsellingInfoId,IFNULL(min(price),0) price ").lambda().in(CounsellingSetMeal::getCounsellingInfoId,counseIds)
//                    .eq(CounsellingSetMeal::getSetMealType,1).eq(CounsellingSetMeal::getIsDelete,0));
//
//            List<CounsellinginfoResponseDTO> counsellinginfoResponseDTOS = BeanUtil.copyToList(page,CounsellinginfoResponseDTO.class, CopyOptions.create());
//            counsellinginfoResponseDTOS.stream().forEach(counsellinginfoResponseDTO -> {
//                if (fristMap.get(counsellinginfoResponseDTO.getId()) != null){
//                    counsellinginfoResponseDTO.setIsFirstBuy(true);
//                }
//                if (StrUtil.isNotBlank(counsellinginfoResponseDTO.getCounsellingTagIds())){
//                    List<String> counsellingTagList = Arrays.asList(counsellinginfoResponseDTO.getCounsellingTagIds().split(","));
//                    String tagNames = counsellingTags.stream().filter(cou -> counsellingTagList.contains(cou.getId().toString())).map(CounsellingTag::getTagName).collect(Collectors.joining(","));
//                    //获取课程标签名称
////                    LambdaQueryWrapper<CounsellingTag> counsellingTagLambdaQueryWrapper = new QueryWrapper<CounsellingTag>().select(" GROUP_CONCAT(tag_name)  tagName ").lambda();
////                    Map<String,Object> map = counsellingTagService.getMap(counsellingTagLambdaQueryWrapper.in(CounsellingTag::getId,counsellinginfoResponseDTO.getCounsellingTagIds().split(",")));
////                    if (ObjectUtil.isNotEmpty(map)){
//                    counsellinginfoResponseDTO.setCounsellingTagNames(tagNames);
////                    }
//                }
//                counsellinginfoResponseDTO.setPersonalProfile(null);
//
//                counsellinginfoResponseDTO.setNikeName(customerList.stream().filter(cus -> counsellinginfoResponseDTO.getUserId().longValue() == cus.getCustomerId().longValue()).findFirst().get().getNickName());
//
////                BigDecimal lowPrice = this.counsellingSetMealService.getObj(new QueryWrapper<CounsellingSetMeal>().select(" counselling_info_id counsellingInfoId,IFNULL(min(price),0) price ").lambda().eq(CounsellingSetMeal::getCounsellingInfoId,counsellinginfoResponseDTO.getId())
////                        .eq(CounsellingSetMeal::getSetMealType,1).eq(CounsellingSetMeal::getIsDelete,0),Convert::toBigDecimal);
//
//
//                if (CollectionUtil.isNotEmpty(lowMapList)){
//                    lowMapList.stream().forEach(stringObjectMap -> {
//                        if (stringObjectMap.get("counsellingInfoId") != null){
//                            counsellinginfoResponseDTO.setLowPrice(new BigDecimal(stringObjectMap.get("price").toString()));
//                        }
//                    });
//                    if (counsellinginfoResponseDTO.getLowPrice() == null){
//                        counsellinginfoResponseDTO.setLowPrice(new BigDecimal(0));
//                    }
//                }
//
//
//            });
//            roleInfoCacheApi.put("customer", Collections.singletonList(counsellinginfoResponseDTOS));
//        }
//    }
    @Scheduled(fixedRate = 1000 * 30)
    public void autoStartMentalAppointment() {
        // 当前时间