From 157989de1caa59f98c9d41e28d358ccbbe916261 Mon Sep 17 00:00:00 2001
From: yanghb <yanghb>
Date: 星期五, 12 四月 2024 09:03:38 +0800
Subject: [PATCH] 4.9

---
 rest/src/main/java/cn/stylefeng/rest/modular/order/controller/MentalTestOrderController.java               |   17 ++++++++
 rest/src/main/java/cn/stylefeng/rest/modular/user/controller/CounsellingInfoController.java                |   52 ++++++++++++++++---------
 rest/src/main/java/cn/stylefeng/rest/modular/work/MentalAppointmentWork.java                               |   46 ++++++++++++++++++----
 common-buiness/src/main/java/cn/stylefeng/guns/modular/business/mapper/mapping/MentalAppointmentMapper.xml |    1 
 4 files changed, 88 insertions(+), 28 deletions(-)

diff --git a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/mapper/mapping/MentalAppointmentMapper.xml b/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/mapper/mapping/MentalAppointmentMapper.xml
index f87038b..29ad38f 100644
--- a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/mapper/mapping/MentalAppointmentMapper.xml
+++ b/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/mapper/mapping/MentalAppointmentMapper.xml
@@ -10,6 +10,7 @@
             t_mental_appointment o
         LEFT JOIN toc_customer wu ON o.worker_id = wu.customer_id
         <where>
+            o.`type` is null
             <if test="statusFlagList != null and statusFlagList.size != 0">
                 AND o.status_flag IN
                 <foreach item="item" collection="statusFlagList" index="index" open="(" separator="," close=")">
diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/order/controller/MentalTestOrderController.java b/rest/src/main/java/cn/stylefeng/rest/modular/order/controller/MentalTestOrderController.java
index bdcf7f1..3b1c8a5 100644
--- a/rest/src/main/java/cn/stylefeng/rest/modular/order/controller/MentalTestOrderController.java
+++ b/rest/src/main/java/cn/stylefeng/rest/modular/order/controller/MentalTestOrderController.java
@@ -1,5 +1,6 @@
 package cn.stylefeng.rest.modular.order.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.core.util.StrUtil;
 import cn.stylefeng.guns.modular.business.dto.request.CreateOrderConsultOneRequest;
@@ -13,6 +14,10 @@
 import cn.stylefeng.guns.modular.business.service.IOrderConsultOneService;
 import cn.stylefeng.guns.modular.business.service.IOrderMentalTestService;
 import cn.stylefeng.rest.modular.order.service.MentalTestOrderBizService;
+import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
+import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
+import cn.stylefeng.roses.kernel.customer.modular.entity.Customer;
+import cn.stylefeng.roses.kernel.customer.modular.service.CustomerService;
 import cn.stylefeng.roses.kernel.rule.pojo.request.BaseIdRequest;
 import cn.stylefeng.roses.kernel.rule.pojo.response.ResponseData;
 import cn.stylefeng.roses.kernel.rule.pojo.response.SuccessResponseData;
@@ -69,12 +74,24 @@
         return new SuccessResponseData(list);
     }
 
+    @Resource
+    private CustomerService customerService;
+
     @ApiOperation(value = "1V1咨询预约性格分析下单")
     @PostResource(name = "1V1咨询预约性格分析下单", path = "/createOrderConsultOne")
     public ResponseData<OrderConsultOne> createOrderConsultOne(@RequestBody CreateOrderConsultOneRequest req) {
         Assert.isTrue(StrUtil.isNotBlank(req.getRealName()), "姓名不能为空");
         Assert.isTrue(StrUtil.isNotBlank(req.getLinkPhone()), "联系电话不能为空");
         OrderConsultOne o = mentalTestOrderBizService.createOrderConsultOne(req);
+        try {
+            Customer customer =new Customer();
+            BeanUtil.copyProperties(req,customer);
+            LoginUser loginUser = LoginContext.me().getLoginUser();
+            customer.setCustomerId(loginUser.getUserId());
+            customerService.updateById(customer);
+        }catch (Exception e){
+            log.info("修改用户信息报错");
+        }
         return new SuccessResponseData(o);
     }
 
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 e07c9c7..c1034f1 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
@@ -15,16 +15,14 @@
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONUtil;
 import cn.stylefeng.guns.modular.business.dto.*;
-import cn.stylefeng.guns.modular.business.dto.request.CounsellingOrderRequest;
-import cn.stylefeng.guns.modular.business.dto.request.CounsellingReservationRequest;
-import cn.stylefeng.guns.modular.business.dto.request.CounsellingUserRequest;
-import cn.stylefeng.guns.modular.business.dto.request.CreateCounsellingOrderRequest;
+import cn.stylefeng.guns.modular.business.dto.request.*;
 import cn.stylefeng.guns.modular.business.entity.*;
 import cn.stylefeng.guns.modular.business.service.*;
 import cn.stylefeng.guns.modular.business.service.impl.ImBizService;
 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.auth.api.pojo.login.LoginUser;
 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;
@@ -583,27 +581,31 @@
             this.counsellingUserService.updateById(counsellingUserOld);
 
 
+
+            CounsellingInfo counsellingInfo = this.counsellingInfoService.getById(counsellingOrder.getCounsellingInfoId());
+
+
             //将此条消息加入到可聊天的表中t_mental_appointment
             MentalAppointment mentalAppointment = MentalAppointment.builder()
                     .userId(counsellingOrder.getUserId())
+                    .type("1")
                     .statusFlag(1)
                     .appointmentDay(new SimpleDateFormat("yyyy-MM-dd").parse(counsellingReservationRequest.getDayTime()))
                     .beginTimePoint(counsellingReservationRequest.getTimePoint().split("-")[0])
                     .endTimePoint(counsellingReservationRequest.getTimePoint().split("-")[1])
-                    .workerId(counsellingUserOld.getUserId())
+                    .workerId(counsellingInfo.getUserId())
                     .build();
             // 用户信息
             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("预约成功"+",请注意预约时间:"+counsellingReservationRequest.getDayTime()+counsellingReservationRequest.getTimePoint())
 //                    .content("预约成功!")
                     .objId(ObjUtil.toString(counsellingInfo.getId()))
                     .data1(ObjUtil.toString(counsellingOrder.getUserId()))
@@ -614,18 +616,18 @@
                     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);
+            // 推送消息内容
+            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);
@@ -653,6 +655,18 @@
             customerService.updateCustomerRemoveCache(customer);
         }
 
+        try {
+
+        CustomerUpdateRequest customerUpdateRequest = counsellingReservationRequest.getCustomerUpdateRequest();
+        Customer customer = new Customer();
+        BeanUtil.copyProperties(customerUpdateRequest,customer);
+            LoginUser loginUser = LoginContext.me().getLoginUser();
+            customer.setCustomerId(loginUser.getUserId());
+        customerService.updateById(customer);
+        }catch (Exception e){
+            e.printStackTrace();
+            log.info("编辑用户报错");
+        }
 
         return new SuccessResponseData<>(counsellingOrderReservation);
     }
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..bcae22e 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
@@ -47,11 +47,11 @@
      * Corn表达式 @Scheduled(cron = Corn表达式)
      * @Scheduled(cron = "0 0/30 * * * *")
      */
+
     @Scheduled(fixedRate = 1000 * 30)
     public void autoStartMentalAppointment() {
         // 当前时间
         DateTime dateTime = DateUtil.date();
-
         // 待开始预约单
         List<MentalAppointment> mentalAppointmentList = mentalAppointmentService.list(
                 Wrappers.<MentalAppointment>lambdaUpdate()
@@ -68,10 +68,11 @@
         }
 
         for (MentalAppointment o : mentalAppointmentList) {
-            MentalTestMyTestTopicDTO mentalTestMyTestTopicDTO = myTestRecordTopicList.stream().filter(rt -> rt.getMentalAppointmentId().equals(o.getId())).findFirst().orElse(new MentalTestMyTestTopicDTO());
+            if (o.getType()==null) {
+                MentalTestMyTestTopicDTO mentalTestMyTestTopicDTO = myTestRecordTopicList.stream().filter(rt -> rt.getMentalAppointmentId().equals(o.getId())).findFirst().orElse(new MentalTestMyTestTopicDTO());
 
-            // 发送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("做了"
@@ -82,11 +83,12 @@
                         .data2(ObjUtil.toString(o.getWorkerId()))
                         .data3(ObjUtil.toString(mentalTestMyTestTopicDTO.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 +101,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