From 20943c22ea68ef1dc4be8dd0e6721c7336ca3400 Mon Sep 17 00:00:00 2001
From: yanghb <yanghb>
Date: 星期四, 11 四月 2024 16:09:16 +0800
Subject: [PATCH] 4.9

---
 rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java                   |   64 +++++++++++++++++----
 rest/src/main/java/cn/stylefeng/rest/modular/work/OrderOutTimeCancelWork.java                                 |    2 
 common-buiness/src/main/java/cn/stylefeng/guns/modular/business/service/impl/CounsellingOrderServiceImpl.java |   57 ++++++++++++++++++
 rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java                                  |    5 +
 rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/MentalAnalysisTimeConfigController.java        |    1 
 5 files changed, 112 insertions(+), 17 deletions(-)

diff --git a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/service/impl/CounsellingOrderServiceImpl.java b/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/service/impl/CounsellingOrderServiceImpl.java
index 1e08628..af8a114 100644
--- a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/service/impl/CounsellingOrderServiceImpl.java
+++ b/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());
diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java b/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java
index 4995c54..e07c9c7 100644
--- a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java
+++ b/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));
     }
 
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 c1e7e87..e166013 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
@@ -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"))
         );
 
         // 我的测试(含题库信息)
diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/work/OrderOutTimeCancelWork.java b/rest/src/main/java/cn/stylefeng/rest/modular/work/OrderOutTimeCancelWork.java
index 510c6cb..09a438b 100644
--- a/rest/src/main/java/cn/stylefeng/rest/modular/work/OrderOutTimeCancelWork.java
+++ b/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());
diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/MentalAnalysisTimeConfigController.java b/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/MentalAnalysisTimeConfigController.java
index 0b344fe..179962d 100644
--- a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/MentalAnalysisTimeConfigController.java
+++ b/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(

--
Gitblit v1.7.1