Sfoglia il codice sorgente

fix 居家管理实时更新

18339543638 3 anni fa
parent
commit
ea89b12653

+ 2 - 1
nb-im/src/main/java/com/nb/im/enums/ImStatusEnum.java

@@ -19,7 +19,8 @@ public enum  ImStatusEnum  implements IEnum<Integer> {
     WAITING(0,"等待医生确认"),
     SUCCESS(1,"成功建立聊天室"),
     DOCTOR_LIFT(2,"医生关闭聊天室"),
-    AUTO_LIST(3,"24小时自动关闭聊天室");
+    AUTO_LIST(3,"24小时自动关闭聊天室"),
+    ASSIST_LIFT(4,"看护人解除看护");
 
     private Integer value;
     private String text;

+ 12 - 0
nb-im/src/main/java/com/nb/im/listener/ImPatientInfoListener.java

@@ -1,6 +1,7 @@
 package com.nb.im.listener;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.nb.app.assistant.api.event.AssistLiftEvent;
 import com.nb.im.entity.ImRoomEntity;
 import com.nb.im.enums.ImStatusEnum;
 import com.nb.im.service.LocalImRoomService;
@@ -35,4 +36,15 @@ public class ImPatientInfoListener {
                 .set(ImRoomEntity::getPatientSex,patientInfoEvent.getPatientSex())
         );
     }
+
+    @EventListener
+    @Async
+    public void assistLift(AssistLiftEvent event){
+        roomService.update(new UpdateWrapper<ImRoomEntity>()
+                .lambda()
+                .eq(ImRoomEntity::getAssistId,event.getAssistId())
+                .eq(ImRoomEntity::getPatientId,event.getPatientId())
+                .in(ImRoomEntity::getStatus,ImStatusEnum.SUCCESS,ImStatusEnum.WAITING)
+                .set(ImRoomEntity::getStatus,ImStatusEnum.ASSIST_LIFT));
+    }
 }

+ 1 - 0
nb-im/src/main/java/com/nb/im/service/LocalImRoomService.java

@@ -181,6 +181,7 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
         return result==null?0L:result;
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public Boolean finished(String roomId) {
         boolean result = this.update(new UpdateWrapper<ImRoomEntity>()
                 .lambda()

+ 23 - 0
nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/event/AssistLiftEvent.java

@@ -0,0 +1,23 @@
+package com.nb.app.assistant.api.event;
+
+import lombok.Getter;
+import org.springframework.context.ApplicationEvent;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AssistLiftEvent.java
+ * @Description 解除看护绑定事件
+ * @createTime 2022年10月11日 15:54:00
+ */
+@Getter
+public class AssistLiftEvent extends ApplicationEvent {
+    private String assistId;
+    private String patientId;
+
+    public AssistLiftEvent(Object source, String assistId, String patientId) {
+        super(source);
+        this.assistId = assistId;
+        this.patientId = patientId;
+    }
+}

+ 2 - 2
nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserBindService.java

@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
@@ -19,6 +18,7 @@ import com.nb.app.assistant.api.feign.result.ContactQuery;
 import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
 import com.nb.app.assistant.constant.UnEvalConstant;
 import com.nb.app.assistant.delay.UnEvalNotifyConfig;
+import com.nb.app.assistant.api.event.AssistLiftEvent;
 import com.nb.app.assistant.mapper.AssistantUserBindMapper;
 import com.nb.app.assistant.service.dto.AssistPatientResult;
 import com.nb.app.assistant.service.dto.EditAssistBindDto;
@@ -283,7 +283,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                         .eq(StrUtil.isNotEmpty(assistId),AssistantUserBindEntity::getAssistId, assistId)
                         .set(AssistantUserBindEntity::getStatus,StrUtil.isEmpty(doctorId)? BindEnum.ASSIST_MANUAL_LIFTED: BindEnum.DOCTOR_MANUAL_LIFTED));
         if (result) {
-            //todo 发送断开消息
+            SpringUtil.publishEvent(new AssistLiftEvent(this,userBind.getAssistId(),userBind.getPatientId()));
         }
         return result;
     }