From 1901fceb6ddaa56a57f3131191454554c3e77e68 Mon Sep 17 00:00:00 2001 From: guohongjin <guohongjin@test.com> Date: 星期三, 01 五月 2024 13:56:51 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PsychologicalCounseling --- rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java | 188 +++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 173 insertions(+), 15 deletions(-) diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java b/rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java index e166013..6118dfd 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java @@ -6,11 +6,12 @@ import cn.hutool.core.util.ObjUtil; import cn.hutool.json.JSONUtil; import cn.stylefeng.guns.modular.business.dto.ImPushDataDTO; -import cn.stylefeng.guns.modular.business.dto.MentalTestMyTestTopicDTO; +import cn.stylefeng.guns.modular.business.dto.MentalTestMyTestRecordTopicDTO; import cn.stylefeng.guns.modular.business.entity.MentalAppointment; -import cn.stylefeng.guns.modular.business.service.IMentalAppointmentService; -import cn.stylefeng.guns.modular.business.service.IMentalTestRecordService; +import cn.stylefeng.guns.modular.business.service.*; import cn.stylefeng.guns.modular.business.service.impl.ImBizService; +import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi; +import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService; import cn.stylefeng.roses.kernel.rule.enums.*; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.extern.slf4j.Slf4j; @@ -47,11 +48,140 @@ * Corn表达式 @Scheduled(cron = Corn表达式) * @Scheduled(cron = "0 0/30 * * * *") */ + @Resource + private CacheOperatorApi<List<Object>> roleInfoCacheApi; +// @Resource +// private CacheOperatorApi<List<Object>> roleInfoCacheApi1; + @Resource + private CustomerService customerService; + @Resource + private ICounsellingInfoService counsellingInfoService; + @Resource + private ICounsellingOrderService counsellingOrderService; + @Resource + private ICounsellingTagService counsellingTagService; + @Resource + private ICounsellingSetMealService counsellingSetMealService; + @Resource + 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); +// } +// }); +// } +// 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() { // 当前时间 DateTime dateTime = DateUtil.date(); - // 待开始预约单 List<MentalAppointment> mentalAppointmentList = mentalAppointmentService.list( Wrappers.<MentalAppointment>lambdaUpdate() @@ -62,31 +192,33 @@ ); // 我的测试(含题库信息) - List<MentalTestMyTestTopicDTO> myTestRecordTopicList = new ArrayList<>(); + List<MentalTestMyTestRecordTopicDTO> myTestRecordTopicList = new ArrayList<>(); if (CollUtil.isNotEmpty(mentalAppointmentList)) { myTestRecordTopicList = mentalTestRecordService.myTestRecordTopicByMentalAppointmentId(null, mentalAppointmentList.stream().map(MentalAppointment::getId).collect(Collectors.toList())); } for (MentalAppointment o : mentalAppointmentList) { - MentalTestMyTestTopicDTO mentalTestMyTestTopicDTO = myTestRecordTopicList.stream().filter(rt -> rt.getMentalAppointmentId().equals(o.getId())).findFirst().orElse(new MentalTestMyTestTopicDTO()); + if (o.getType()==null) { + MentalTestMyTestRecordTopicDTO mentalTestMyTestRecordTopicDTO = myTestRecordTopicList.stream().filter(rt -> rt.getMentalAppointmentId().equals(o.getId())).findFirst().orElse(new MentalTestMyTestRecordTopicDTO()); - // 发送IM消息 - ImPushDataDTO pushData = ImPushDataDTO.builder() + // 发送IM消息 + ImPushDataDTO pushData = ImPushDataDTO.builder() .type(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getCode()) .title(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getName()) .content("做了" - + ObjUtil.defaultIfEmpty(mentalTestMyTestTopicDTO.getTitle(), "心理测试题") + + ObjUtil.defaultIfEmpty(mentalTestMyTestRecordTopicDTO.getTitle(), "心理测试题") + ",帮我分析一下!") .objId(ObjUtil.toString(o.getId())) .data1(ObjUtil.toString(o.getUserId())) .data2(ObjUtil.toString(o.getWorkerId())) - .data3(ObjUtil.toString(mentalTestMyTestTopicDTO.getId())) + .data3(ObjUtil.toString(mentalTestMyTestRecordTopicDTO.getId())) .build(); - imBizService.messageSendPrivate( - ObjUtil.toString(o.getUserId()), - new String[]{ObjUtil.toString(o.getWorkerId())}, - pushData - ); + imBizService.messageSendPrivate( + ObjUtil.toString(o.getUserId()), + new String[]{ObjUtil.toString(o.getWorkerId())}, + pushData + ); + } // 开始预约咨询 mentalAppointmentService.update( @@ -99,6 +231,32 @@ } } +// @Scheduled(fixedRate = 1000 * 30) +// public void autoStartMentalAppointment1() { +// // 当前时间 +// DateTime dateTime = DateUtil.date(); +// // 待开始预约单 +// List<MentalAppointment> mentalAppointmentList = mentalAppointmentService.list( +// Wrappers.<MentalAppointment>lambdaUpdate() +// .eq(MentalAppointment::getStatusFlag, MentalAppointmentStatusEnum.WAIT_SERVICE.getCode()) +// .eq(MentalAppointment::getType,"1") +// .apply("DATE_ADD(appointment_day, INTERVAL TIME_TO_SEC(begin_time_point) SECOND) < NOW()") +//// .le(MentalAppointment::getAppointmentDay, dateTime.toDateStr()) +//// .le(MentalAppointment::getBeginTimePoint, DateUtil.format(dateTime, "HH:mm")) +// ); +// +// for (MentalAppointment o : mentalAppointmentList) { +// // 开始预约咨询 +// mentalAppointmentService.update( +// Wrappers.<MentalAppointment>lambdaUpdate() +// .eq(MentalAppointment::getId, o.getId()) +// .set(MentalAppointment::getStatusFlag, MentalAppointmentStatusEnum.IN_SERVICE.getCode()) +// .set(MentalAppointment::getConsultStatus, MentalAppointmentConsultStatusEnum.IN_CONSULT.getCode()) +// ); +// log.info("开始预约咨询: {}", JSONUtil.toJsonStr(o)); +// } +// } + @Scheduled(fixedRate = 1000 * 60) public void autoEndMentalAppointment() { // 当前时间 -- Gitblit v1.7.1