소스 검색

志愿者开始和结束任务,给客户发送系统消息

wangwl 3 달 전
부모
커밋
9d6a4f93ac

+ 9 - 5
leromro-core/src/main/java/com/leromro/core/controller/volunteerOrderController.java

@@ -11,15 +11,13 @@ import com.leromro.common.utils.GeoUtils;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.PlatformFinance;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.ConversationMsgDTO;
 import com.leromro.core.domain.dto.VolunteerStartOrderDTO;
 import com.leromro.core.domain.vo.AppSecoundOrderInfoVO;
 import com.leromro.core.domain.vo.VolunteerOrderStatisticsVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 import com.leromro.core.domain.vo.WebSecondOrderInfoVO;
-import com.leromro.core.service.IAddressService;
-import com.leromro.core.service.IMainOrderService;
-import com.leromro.core.service.IPlatformFinanceService;
-import com.leromro.core.service.ISecondOrderService;
+import com.leromro.core.service.*;
 import com.leromro.core.utils.DateTimeUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -47,6 +45,8 @@ public class volunteerOrderController extends BaseController {
     private IMainOrderService mainOrderService;
     @Autowired
     private IPlatformFinanceService platformFinanceService;
+    @Autowired
+    private IConversationRecordService conversationRecordService;
 
     @ApiOperation("志愿者查询小订单列表")
     @GetMapping("/volunteerOrderList")
@@ -94,7 +94,11 @@ public class volunteerOrderController extends BaseController {
         secondOrderService.update(updateWrapper);
         //订单开始 根据secondOrderId修改主订单状态 修改为3
         mainOrderService.startService(secondOrder.getSecondOrderId());
-        // 通过websocket向客户发送消息,提示服务已开始
+        //异步推送系统消息给客户发送消息,提示服务已开始
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(1).userId(secondOrder1.getUserId())
+                .msgContent("您预约"+secondOrder1.getWorkDate()+" "+secondOrder1.getWorkStartTime()+"的订单已开始服务")
+                .build());
         return AjaxResult.success();
     }
 

+ 9 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -20,6 +20,7 @@ import com.leromro.core.domain.*;
 import com.leromro.core.domain.dto.*;
 import com.leromro.core.domain.vo.*;
 import com.leromro.core.mapper.*;
+import com.leromro.core.service.IConversationRecordService;
 import com.leromro.core.service.ISecondOrderService;
 import com.leromro.core.utils.DateTimeUtil;
 import com.leromro.system.service.ISysConfigService;
@@ -45,6 +46,8 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
     private VolunteerInfoMapper volunteerInfoMapper;
     @Autowired
     private ISysConfigService sysConfigService;
+    @Autowired
+    private IConversationRecordService conversationRecordService;
 
     /**
      * @param orderStatus
@@ -117,6 +120,12 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
         }else {
             mainOrdersMapper.update(null,mainOrdersUpdateWrapper);
         }
+
+        //异步推送系统消息给客户发送消息,提示服务已完成
+        conversationRecordService.sendSystemMsg(ConversationMsgDTO.builder()
+                .system(1).userId(secondOrderInfo.getUserId())
+                .msgContent("您预约"+secondOrderInfo.getWorkDate()+" "+secondOrderInfo.getWorkStartTime()+"的订单服务已完成")
+                .build());
         return AjaxResult.success();
     }
 

+ 4 - 0
leromro-core/src/main/java/com/leromro/core/socket/WebSocketService.java

@@ -2,6 +2,7 @@ package com.leromro.core.socket;
 
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.alipay.api.domain.UserInfoVO;
 import com.leromro.core.domain.vo.UserMsgVO;
@@ -136,6 +137,9 @@ public class WebSocketService implements ApplicationContextAware {
      * 单个消息推送
      */
     public void sendMessage(Long userId, String message){
+        if (ObjectUtil.isNull(userId)){
+            log.error("推送消息失败,用户为null,消息内容:{}", message);
+        }
         List<Session> sessions = userSessionMap.get(userId);
         if(sessions != null && !sessions.isEmpty()){
             /** 此处不能使用普通集合,否则在推送消息时,当前用户又开启一个页面,集合发生变化迭代器会报错ConcurrentModificationException*/