Pārlūkot izejas kodu

add 消息通知类型增加 医生解除绑定和看护人解除绑定

18339543638 3 gadi atpakaļ
vecāks
revīzija
6dc048efcb

+ 2 - 2
nb-oss/src/main/java/com/nb/oss/strategy/impl/AbstractFileStorage.java

@@ -18,9 +18,9 @@ import java.io.IOException;
 public abstract class AbstractFileStorage implements FileStorageStrategy {
 
     /**
-     * 默认大小 50M
+     * 默认大小 200M
      */
-    private static long DEFAULT_FILE_MAX_SIZE = 50 * 1024 * 1024;
+    private static long DEFAULT_FILE_MAX_SIZE = 200 * 1024 * 1024;
 
     @Override
     public void checkFile(MultipartFile file) {

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

@@ -3,21 +3,42 @@ package com.nb.app.assistant.api.event;
 import lombok.Getter;
 import org.springframework.context.ApplicationEvent;
 
+import java.time.Clock;
+
 /**
  * @author lifang
  * @version 1.0.0
  * @ClassName AssistLiftEvent.java
- * @Description 解除看护绑定事件
+ * @Description 医生解除看护绑定事件
  * @createTime 2022年10月11日 15:54:00
  */
 @Getter
 public class AssistLiftEvent extends ApplicationEvent {
     private String assistId;
+    private String assistNickname;
     private String patientId;
+    private String patientCode;
+    private String patientName;
+    private String doctorId;
+    private String doctorNickname;
+    /****
+     * 是否由看护人员主动断开连接
+     */
+    private boolean assistLift;
 
-    public AssistLiftEvent(Object source, String assistId, String patientId) {
+    public AssistLiftEvent(Object source, String assistId, String assistNickname,
+                           String patientId, String patientName,String patientCode,
+                           String doctorId, String doctorNickname,
+                           boolean assistLift) {
         super(source);
         this.assistId = assistId;
+        this.assistNickname = assistNickname;
         this.patientId = patientId;
+        this.patientCode=patientCode;
+        this.patientName = patientName;
+        this.doctorId=doctorId;
+        this.doctorNickname=doctorNickname;
+        this.assistLift=assistLift;
     }
+
 }

+ 2 - 1
nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/feign/IAssistantUserBindClient.java

@@ -42,10 +42,11 @@ public interface IAssistantUserBindClient {
      * @param bindId
      * @param doctorId 医生解除绑定
      * @param  assistId 患者解除绑定
+     * @param  assistLift 是否由看护人员解除绑定
      * assistId与doctorId不可同时为空或同时不为空
      * @return boolean
      */
-    boolean liftBind(String bindId, String doctorId,String assistId);
+    boolean liftBind(String bindId, String doctorId,String assistId,boolean assistLift);
 
     /**
      * 描述: 判断该医院的住院号是否已被看护

+ 3 - 1
nb-service-api/app-msg-api/src/main/java/com/nb/app/msg/enums/MsgEnum.java

@@ -29,7 +29,9 @@ public enum  MsgEnum  implements IEnum<Integer> {
     ASSIST_EVAL(7,"疼痛评估"),
     NORMAL(8,"正常消息"),
     FINISHED(9,"医生断开聊天"),
-    AUTO_FINISHED(10,"超过24小时自动断开聊天")
+    AUTO_FINISHED(10,"超过24小时自动断开聊天"),
+    ASSIST_LIFT(11,"看护人员解除绑定"),
+    DOCTOR_LIFT(12,"医生解除绑定")
     ;
     @Getter
     @ApiModelProperty("枚举编码")

+ 1 - 1
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/PatientOperationController.java

@@ -172,7 +172,7 @@ public class PatientOperationController {
     @PostMapping("/lift/{bindId}")
     @ApiOperation(value = "与病人解除绑定")
     public R<Boolean> lift(@PathVariable("bindId") String bindId) {
-        return R.success(userBindService.liftBind(bindId,null,String.valueOf(SecurityUtil.getId())));
+        return R.success(userBindService.liftBind(bindId,null,String.valueOf(SecurityUtil.getId()),true));
     }
 
 

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

@@ -267,7 +267,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public boolean liftBind(String bindId, String doctorId,String assistId) {
+    public boolean liftBind(String bindId, String doctorId,String assistId,boolean assistLift) {
         if((StrUtil.isNotEmpty(doctorId)&&StrUtil.isNotEmpty(assistId))
                 ||((StrUtil.isEmpty(doctorId)&&StrUtil.isEmpty(assistId)))){
             throw new CustomException("医生id和看护人员id不可同时为空或同时不为空");
@@ -294,7 +294,9 @@ 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) {
-            SpringUtil.publishEvent(new AssistLiftEvent(this,userBind.getAssistId(),userBind.getPatientId()));
+            SpringUtil.publishEvent(new AssistLiftEvent(this,userBind.getAssistId(),userBind.getAssistNickname(),
+                    userBind.getPatientId(), userBind.getPatientName(),userBind.getPatientCode(),
+                    userBind.getDoctorId(),userBind.getDoctorName(),assistLift));
         }
         return result;
     }

+ 1 - 1
nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/PatientMonitorController.java

@@ -139,7 +139,7 @@ public class PatientMonitorController {
     @PostMapping("/lift/{bindId}")
     @ApiOperation(value = "与病人解除绑定")
     public R<Boolean> lift(@PathVariable("bindId") String bindId) {
-        return R.success(userBindClient.liftBind(bindId,String.valueOf(SecurityUtil.getId()),null));
+        return R.success(userBindClient.liftBind(bindId,String.valueOf(SecurityUtil.getId()),null,false));
     }
 
     @PostMapping("/pull/async")

+ 4 - 0
nb-service/app-msg/pom.xml

@@ -15,6 +15,10 @@
     <description>内部消息通知模块</description>
 
     <dependencies>
+        <dependency>
+            <groupId>com.tuoren</groupId>
+            <artifactId>app-assistant-api</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.tuoren</groupId>
             <artifactId>web-service-api</artifactId>

+ 19 - 1
nb-service/app-msg/src/main/java/com/nb/app/msg/entity/AppMsgEntity.java

@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.nb.app.msg.bean.MsgBean;
 import com.nb.core.entity.GenericEntity;
 import com.nb.app.msg.enums.MsgEnum;
 import com.nb.core.enums.SexEnum;
@@ -41,7 +42,7 @@ public class AppMsgEntity  extends GenericEntity<String> {
     @ApiModelProperty(value = "发送人名称")
     private String senderName;
 
-    @ApiModelProperty(value = "发送人id")
+    @ApiModelProperty(value = "病人姓名")
     @JsonIgnoreProperties
     private String patientName;
 
@@ -80,6 +81,19 @@ public class AppMsgEntity  extends GenericEntity<String> {
         return StrUtil.isEmpty(patientName)?patientCode:patientName;
     }
 
+    public String getPayload() {
+        if(MsgEnum.ASSIST_LIFT.equals(this.getMsgType())
+        ||MsgEnum.DOCTOR_LIFT.equals(this.getMsgType())){
+            return String.format("%s与%s解除绑定",this.getSenderName(),this.getPatient());
+        }
+
+        return payload;
+    }
+
+    public void setPayload(String payload) {
+        this.payload = payload;
+    }
+
     public String getTitle() {
         if(msgType==null){
             return "";
@@ -101,6 +115,10 @@ public class AppMsgEntity  extends GenericEntity<String> {
                 return getSenderName()+"通过了"+getPatient()+"的绑定申请";
             case ASSIST_EVAL:
                 return  getPatient()+getExtend()+"未进行疼痛评估";
+            case ASSIST_LIFT:
+                return "患者绑定解除";
+            case DOCTOR_LIFT:
+                return "患者绑定解除";
             default:  return "";
         }
     }

+ 20 - 0
nb-service/app-msg/src/main/java/com/nb/app/msg/service/LocalAppMsgService.java

@@ -1,11 +1,14 @@
 package com.nb.app.msg.service;
 
 import cn.hutool.core.bean.BeanUtil;
+import com.nb.app.assistant.api.event.AssistLiftEvent;
+import com.nb.app.msg.enums.MsgEnum;
 import com.nb.app.msg.event.SaveMsgEvent;
 import com.nb.common.crud.BaseService;
 import com.nb.app.msg.entity.AppMsgEntity;
 import com.nb.app.msg.mapper.AppMsgMapper;
 import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 /**
@@ -40,4 +43,21 @@ public class LocalAppMsgService extends BaseService<AppMsgMapper,AppMsgEntity,St
         source.setExtend(event.getPayload().getExtend());
         this.save(source);
     }
+
+    @EventListener
+    @Async
+    public void lift(AssistLiftEvent event){
+        boolean assistLift = event.isAssistLift();
+        AppMsgEntity msg = new AppMsgEntity();
+        msg.setMsgType(assistLift? MsgEnum.ASSIST_LIFT:MsgEnum.DOCTOR_LIFT);
+        msg.setSenderId(assistLift?event.getAssistId():event.getDoctorId());
+        msg.setSenderName(assistLift?event.getAssistNickname():event.getDoctorNickname());
+        msg.setPatientId(event.getPatientId());
+        msg.setPatientName(event.getPatientName());
+        msg.setPatientCode(event.getPatientCode());
+        msg.setReceiverId(assistLift?event.getDoctorId():event.getAssistId());
+        msg.setReceiverName(assistLift?event.getDoctorNickname():event.getAssistNickname());
+        this.save(msg);
+
+    }
 }