common-buiness/src/main/java/cn/stylefeng/guns/modular/business/service/impl/CounsellingOrderServiceImpl.java
@@ -16,6 +16,7 @@ import cn.stylefeng.guns.modular.business.service.*; import cn.stylefeng.guns.utils.GeneralUtil; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfo; import cn.stylefeng.roses.kernel.customer.modular.entity.Customer; import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService; import cn.stylefeng.roses.kernel.rule.enums.*; @@ -64,7 +65,8 @@ private ICounsellingUserService counsellingUserService; @Resource private IAreaService areaService; @Resource IMentalAppointmentService mentalAppointmentService; @Override public Page<CounsellingOrderResponseDTO> findCounsellingOrderPage(Page<CounsellingOrderRequest> page, CounsellingOrderRequest counsellingOrderRequest) { @@ -154,6 +156,39 @@ counsellingOrder.setUserInfoJson(JSONUtil.toJsonStr(customerUpdateRequest)); } // 发送IM消息 ImPushDataDTO pushData1 = ImPushDataDTO.builder() .type(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getCode()) .title(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getName()) .content("预约成功"+",请注意预约时间:"+counsellingOrder.getEffectiveEndTime()+"~"+counsellingOrder.getEffectiveEndTime()) // .content("预约成功!") .objId(ObjUtil.toString(counsellingInfo.getId())) .data1(ObjUtil.toString(counsellingOrder.getUserId())) .data2(ObjUtil.toString(counsellingInfo.getUserId())) .build(); imBizService.messageSendPrivate( ObjUtil.toString(counsellingOrder.getUserId()), new String[]{ObjUtil.toString(counsellingInfo.getUserId())}, pushData1 ); //将此条消息加入到可聊天的表中t_mental_appointment MentalAppointment mentalAppointment = MentalAppointment.builder() .userId(counsellingOrder.getUserId()) .appointmentDay(counsellingOrderRequest.getFirstAppointmentDate()) .beginTimePoint(counsellingOrderRequest.getFirstAppointmentTimes().split("-")[0]) .endTimePoint(counsellingOrderRequest.getFirstAppointmentTimes().split("-")[1]) .workerId(counsellingInfo.getUserId()) .build(); // 用户信息 CustomerInfo customerInfo = customerService.getCustomerInfoById(counsellingOrder.getUserId()); mentalAppointment.setUserName(customerInfo.getRealName()); mentalAppointment.setPhone(customerInfo.getLinkPhone()); mentalAppointmentService.save(mentalAppointment); } if (counsellingUserOld != null && counsellingUserOld.getConsultantUserId() != null){ counsellingOrder.setConsultantUserId(counsellingUserOld.getConsultantUserId()); @@ -179,6 +214,26 @@ } } // iImGroupService.createGroup(2,null,null,counsellingInfo.getUserId(),null,null,counsellingOrder.getUserId(),counsellingOrder.getCounsellingInfoId()); // 推送消息内容 String pushContent = "你有新的预约,请注意查收。预约用户:"+customerOld.getNickName(); // +"预约时间:"+counsellingOrder.getEffectiveEndTime()+"~"+counsellingOrder.getEffectiveEndTime(); // IM推送数据json ImPushDataDTO pushData = ImPushDataDTO.builder() .type(ImPushTypeEnum.S_TO_W_TIP_CONSULT_PAY_GROUP_SUCCESS.getCode()) .objId(ObjUtil.toString(counsellingInfo.getUserId())) .title("通知") .content(pushContent) // .extra("去查看。") .build(); // 发送预约提示 imBizService.messageSendSystem(counsellingOrder.getUserId()+"", new String[]{counsellingInfo.getUserId()+""}, pushData, ImUserTypeEnum.WORKER, PostIdEnum.PO_22, true); }else if (counsellingOrderRequest.getOrderType().intValue() ==2){ //获取下单人个人信息 Customer customerUser = this.customerService.getById(counsellingOrderRequest.getUserId()); rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java
@@ -25,6 +25,7 @@ import cn.stylefeng.rest.ijpay.controller.AliPayController; import cn.stylefeng.rest.ijpay.controller.WxPayController; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.customer.api.pojo.CustomerInfo; 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; @@ -56,6 +57,8 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicLong; import java.util.stream.Collectors; @@ -115,6 +118,8 @@ @Resource private AliPayController aliPayController; @Resource private IMentalAppointmentService mentalAppointmentService; @Value("${refund.alipay-url}") private String refundAlipayUrl; @@ -481,9 +486,10 @@ } @ApiOperation("咨询订单预约") @PostResource(name = "咨询订单预约", path = "/counsellingOrderReservation/saveCounsellingOrderReservation") public ResponseData<CounsellingOrderReservation> saveCounsellingOrderReservation(@RequestBody CounsellingReservationRequest counsellingReservationRequest){ public ResponseData<CounsellingOrderReservation> saveCounsellingOrderReservation(@RequestBody CounsellingReservationRequest counsellingReservationRequest) throws ParseException { //查询咨询师当天是否取消预约 CounsellingSpecialTimeConfig specialTimeConfig = this.counsellingSpecialTimeConfigService.getOne(new LambdaQueryWrapper<CounsellingSpecialTimeConfig>().eq(CounsellingSpecialTimeConfig::getCounsellingInfoId,counsellingReservationRequest.getCounsellingId()) .eq(CounsellingSpecialTimeConfig::getSpecialDay,counsellingReservationRequest.getDayTime()).eq(CounsellingSpecialTimeConfig::getIsCancelDay,1)); @@ -576,18 +582,50 @@ this.counsellingOrderService.updateById(counsellingOrder); this.counsellingUserService.updateById(counsellingUserOld); // 推送消息内容 String pushContent = "你的预约("+DateUtil.formatDate(counsellingOrder.getFirstAppointmentDate())+" "+counsellingOrder.getFirstAppointmentTimes()+")已确认,请按时参加"; // IM推送数据json ImPushDataDTO pushData = ImPushDataDTO.builder() .type(ImPushTypeEnum.S_TO_W_TIP_CONSULT_PAY_SUCCESS.getCode()) .objId(ObjUtil.toString(counsellingOrderReservation.getId())) .title("通知") .content(pushContent) // .extra("("+DateUtil.formatDate(counsellingOrder.getFirstAppointmentDate())+" "+counsellingOrder.getFirstAppointmentTimes()+")") //将此条消息加入到可聊天的表中t_mental_appointment MentalAppointment mentalAppointment = MentalAppointment.builder() .userId(counsellingOrder.getUserId()) .statusFlag(1) .appointmentDay(new SimpleDateFormat("yyyy-MM-dd").parse(counsellingReservationRequest.getDayTime())) .beginTimePoint(counsellingReservationRequest.getTimePoint().split("-")[0]) .endTimePoint(counsellingReservationRequest.getTimePoint().split("-")[1]) .workerId(counsellingUserOld.getUserId()) .build(); // 发送首次预约 imBizService.messageSendSystem(counsellingOrderReservation.getUserId()+"", new String[]{counsellingOrderReservation.getUserId()+""}, pushData, ImUserTypeEnum.USER, null, true); // 用户信息 CustomerInfo customerInfo = customerService.getCustomerInfoById(counsellingOrder.getUserId()); mentalAppointment.setUserName(customerInfo.getRealName()); mentalAppointment.setPhone(customerInfo.getLinkPhone()); mentalAppointmentService.save(mentalAppointment); CounsellingInfo counsellingInfo = this.counsellingInfoService.getById(counsellingOrder.getCounsellingInfoId()); // 发送IM消息 ImPushDataDTO pushData1 = ImPushDataDTO.builder() .type(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getCode()) .title(ImPushTypeEnum.C_TO_W_IM_1V1_START_CONSULT.getName()) .content("预约成功"+",请注意预约时间:"+counsellingOrder.getEffectiveEndTime()+"~"+counsellingOrder.getEffectiveEndTime()) // .content("预约成功!") .objId(ObjUtil.toString(counsellingInfo.getId())) .data1(ObjUtil.toString(counsellingOrder.getUserId())) .data2(ObjUtil.toString(counsellingInfo.getUserId())) .build(); imBizService.messageSendPrivate( ObjUtil.toString(counsellingOrder.getUserId()), new String[]{ObjUtil.toString(counsellingInfo.getUserId())}, pushData1); // // 推送消息内容 // String pushContent = "你的预约("+DateUtil.formatDate(counsellingOrder.getFirstAppointmentDate())+" "+counsellingOrder.getFirstAppointmentTimes()+")已确认,请按时参加"; // // IM推送数据json // ImPushDataDTO pushData = ImPushDataDTO.builder() // .type(ImPushTypeEnum.S_TO_W_TIP_CONSULT_PAY_SUCCESS.getCode()) // .objId(ObjUtil.toString(counsellingOrderReservation.getId())) // .title("通知") // .content(pushContent) //// .extra("("+DateUtil.formatDate(counsellingOrder.getFirstAppointmentDate())+" "+counsellingOrder.getFirstAppointmentTimes()+")") // .build(); // // 发送首次预约 // imBizService.messageSendSystem(counsellingOrderReservation.getUserId()+"", new String[]{counsellingOrderReservation.getUserId()+""}, pushData, ImUserTypeEnum.USER, null, true); }else{ counsellingOrderReservation.setStauts(1); counsellingOrderReservation.setReservationType(2); @@ -664,6 +702,8 @@ counsellingOrderReservationRequestDTO.setCustomerId(LoginContext.me().getLoginUser().getUserId()); } Page<CounsellingOrderReservation> page = this.counsellingOrderReservationService.findReservationPage(PageFactory.defaultPage(), counsellingOrderReservationRequestDTO); return new SuccessResponseData<>(PageResultFactory.createPageResult(page)); } rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java
@@ -56,8 +56,9 @@ List<MentalAppointment> mentalAppointmentList = mentalAppointmentService.list( Wrappers.<MentalAppointment>lambdaUpdate() .eq(MentalAppointment::getStatusFlag, MentalAppointmentStatusEnum.WAIT_SERVICE.getCode()) .le(MentalAppointment::getAppointmentDay, dateTime.toDateStr()) .le(MentalAppointment::getBeginTimePoint, DateUtil.format(dateTime, "HH:mm")) .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")) ); // 我的测试(含题库信息) rest/src/main/java/cn/stylefeng/rest/modular/work/OrderOutTimeCancelWork.java
@@ -459,7 +459,7 @@ } //查询服务中的预约 List<CounsellingOrderReservation> serviceList = this.counsellingOrderReservationService.list(new LambdaQueryWrapper<CounsellingOrderReservation>() .ge(CounsellingOrderReservation::getReservationEndTime,startTime).le(CounsellingOrderReservation::getReservationEndTime,nowDate) .le(CounsellingOrderReservation::getReservationEndTime,nowDate) .eq(CounsellingOrderReservation::getStauts,3)); if (CollectionUtil.isNotEmpty(serviceList)){ log.info("自动更新服务中的咨询,ids:"+serviceList.stream().map(CounsellingOrderReservation::getId).collect(Collectors.toList()).toString()); rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/MentalAnalysisTimeConfigController.java
@@ -174,7 +174,6 @@ DateTime dateTime = DateUtil.date(); String day = DateUtil.formatDate(dateTime); String time = DateUtil.format(dateTime, "HH:mm"); List<MentalAppointment> list = mentalAppointmentService.list( Wrappers.<MentalAppointment>lambdaUpdate() .in(MentalAppointment::getStatusFlag, Arrays.asList(