Browse Source

update 聊天室病人名称备注
add 一键呼叫短信发送

18339543638 3 years ago
parent
commit
dfb9829b92
23 changed files with 165 additions and 54 deletions
  1. 1 1
      nb-core/src/main/java/com/nb/core/sms/AliSmsClientConfig.java
  2. 15 2
      nb-core/src/main/java/com/nb/core/sms/SmsHelper.java
  3. 1 30
      nb-im/src/main/java/com/nb/im/controller/ImRoomController.java
  4. 6 0
      nb-im/src/main/java/com/nb/im/entity/ImRoomEntity.java
  5. 12 0
      nb-im/src/main/java/com/nb/im/service/LocalImRoomService.java
  6. 9 0
      nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/feign/IAssistantUserBindClient.java
  7. 1 1
      nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/entity/AppUserConsultConfigEntity.java
  8. 15 0
      nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/feign/IAppUserConsultConfigClient.java
  9. 3 0
      nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/feign/result/AppDoctorUserResult.java
  10. 3 0
      nb-service-api/app-msg-api/src/main/java/com/nb/app/msg/bean/MsgBean.java
  11. 4 4
      nb-service/app-assistant/pom.xml
  12. 3 3
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/auth/AssistantPasswordGranter.java
  13. 1 4
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/CaptchaController.java
  14. 4 1
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/PatientOperationController.java
  15. 1 0
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/delay/UnEvalNotifyDelayMessageHandler.java
  16. 55 0
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserBindService.java
  17. 1 0
      nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserService.java
  18. 1 1
      nb-service/app-doctor/src/main/java/com/nb/app/doctor/controller/UserController.java
  19. 1 1
      nb-service/app-doctor/src/main/java/com/nb/app/doctor/mapper/AppUserConsultConfigMapper.java
  20. 2 2
      nb-service/app-doctor/src/main/java/com/nb/app/doctor/service/LocalAppDoctorUserService.java
  21. 10 2
      nb-service/app-doctor/src/main/java/com/nb/app/doctor/service/LocalUserConsultConfigService.java
  22. 15 2
      nb-service/app-msg/src/main/java/com/nb/app/msg/entity/AppMsgEntity.java
  23. 1 0
      nb-service/app-msg/src/main/java/com/nb/app/msg/service/LocalAppConsultService.java

+ 1 - 1
nb-service/app-assistant/src/main/java/com/nb/app/assistant/sms/AliSmsClientConfig.java → nb-core/src/main/java/com/nb/core/sms/AliSmsClientConfig.java

@@ -1,4 +1,4 @@
-package com.nb.app.assistant.sms;
+package com.nb.core.sms;
 
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;

+ 15 - 2
nb-service/app-assistant/src/main/java/com/nb/app/assistant/sms/SmsHelper.java → nb-core/src/main/java/com/nb/core/sms/SmsHelper.java

@@ -1,4 +1,4 @@
-package com.nb.app.assistant.sms;
+package com.nb.core.sms;
 
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.json.JSONUtil;
@@ -8,7 +8,6 @@ import com.aliyun.tea.TeaException;
 import lombok.AllArgsConstructor;
 import org.springframework.context.annotation.Configuration;
 
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -31,6 +30,20 @@ public class SmsHelper {
                 .setSignName("驼人医疗")
                 .setTemplateCode("SMS_247815102")
                 .setTemplateParam(JSONUtil.toJsonStr(map));;
+        sendMsg(sendSmsRequest);
+    }
+
+    public void sendPainCall(String phone,String patientCode){
+        Map<String, String> map = MapUtil.of("patientCode", patientCode);
+        com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest()
+                .setPhoneNumbers(phone)
+                .setSignName("驼人智慧医疗")
+                .setTemplateCode("SMS_257668009")
+                .setTemplateParam(JSONUtil.toJsonStr(map));;
+        sendMsg(sendSmsRequest);
+    }
+
+    private void sendMsg(com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest){
         com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
         try {
             // 复制代码运行请自行打印 API 的返回值

+ 1 - 30
nb-im/src/main/java/com/nb/im/controller/ImRoomController.java

@@ -1,6 +1,5 @@
 package com.nb.im.controller;
 
-import cn.dev33.satoken.stp.StpLogic;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
@@ -9,15 +8,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.Mapper;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicLong;
-import java.util.stream.Collectors;
 
-import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
 import com.nb.app.assistant.api.feign.IAssistantUserBindClient;
-import com.nb.app.assistant.api.feign.IAssistantUserClient;
-import com.nb.app.assistant.api.feign.result.AssistantUserResult;
-import com.nb.app.assistant.api.feign.result.ContactQuery;
-import com.nb.app.doctor.api.feign.IAppDoctorUserClient;
-import com.nb.app.doctor.api.feign.result.AppDoctorUserResult;
 import com.nb.auth.utils.SecurityUtil;
 import com.nb.common.crud.BaseService;
 import com.nb.common.crud.controller.BaseSaveController;
@@ -41,10 +33,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.annotation.Bean;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
-import org.tio.utils.jfinal.P;
 
 /**
  * @author lifang
@@ -62,7 +52,7 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
     private final LocalImRoomService imRoomService;
     private final ImRoomOperatorManager roomOperatorManager;
     private final LocalImMsgService msgService;
-    private final IAssistantUserBindClient userBindClient;
+
     @Override
     public BaseService<? extends Mapper<ImRoomEntity>, ImRoomEntity, String> getService() {
         return imRoomService;
@@ -107,25 +97,6 @@ public class ImRoomController implements BaseSaveController<ImRoomEntity,String>
     @ApiOperation(value = "聊天室列表查询",notes = "走非条件查询,条件查询请于安卓端自行实现")
     public R<List<ImRoomResult>> list(@RequestBody @Validated ImRoomQuery query){
         List<ImRoomResult> result= imRoomService.getBaseMapper().queryPageNoneMsgBlurry(query);
-//        ContactQuery contactQuery = new ContactQuery();
-//        contactQuery.setAssistId(query.getAssistId());
-//        contactQuery.setDoctorId(query.getDoctorId());
-//        List<AssistantUserBindEntity> assistantUserBind = userBindClient.contactList(contactQuery);
-//
-//        //将已断开的聊天室过滤掉
-//        result = result.stream()
-//                .filter(room ->
-//                        assistantUserBind
-//                                .stream()
-//                                .anyMatch(userBind ->
-//                                        StrUtil.equals(userBind.getDoctorId(), room.getDoctorId())
-//                                                &&
-//                                                StrUtil.equals(userBind.getAssistId(), room.getAssistId())
-//                                                &&
-//                                                StrUtil.equals(userBind.getPatientId(), room.getPatientId())
-//                                )
-//                ).collect(Collectors.toList());
-
         String userId = String.valueOf(SecurityUtil.getId());
         result.forEach(room->
                 room.setUnreadCount( roomOperatorManager.getRoomOperator(room.getId())

+ 6 - 0
nb-im/src/main/java/com/nb/im/entity/ImRoomEntity.java

@@ -40,6 +40,9 @@ public class ImRoomEntity extends GenericEntity<String> {
     @ApiModelProperty(value = "住院号",required = true)
     private String patientCode;
 
+    @ApiModelProperty("看护人备注病人名称")
+    private String patientNamePs;
+
     @ApiModelProperty("病人名称")
     private String patientName;
 
@@ -66,6 +69,9 @@ public class ImRoomEntity extends GenericEntity<String> {
     @NotNull(message = "医生id不能为空",groups = Insert.class)
     private String doctorId;
 
+    @ApiModelProperty("聊天室所对应的绑定id")
+    private String bindId;
+
     @ApiModelProperty(value = "发起人类型",required = true,allowableValues = "0(看护人发起) 1(医生发起)")
     @NotNull(message = "发起类型不能为空",groups = Insert.class)
     private SponsorEnum sponsorType;

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

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.nb.app.assistant.api.entity.AssistantUserBindEntity;
 import com.nb.app.assistant.api.event.ImSuccessEvent;
 import com.nb.app.assistant.api.event.UpdateBindPatientEvent;
+import com.nb.app.assistant.api.feign.IAssistantUserBindClient;
 import com.nb.app.assistant.api.feign.IAssistantUserClient;
 import com.nb.app.assistant.api.feign.result.AssistantUserResult;
 import com.nb.app.assistant.api.feign.result.UpdateBindPatientParam;
@@ -63,6 +64,9 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
     @Lazy
     private IAssistantUserClient assistantUserClient;
 
+
+    private IAssistantUserBindClient userBindClient;
+
     @Autowired
     @Lazy
     private IAppDoctorUserClient doctorUserClient;
@@ -108,6 +112,13 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
 
     @Override
     public void validateBeforeSave(ImRoomEntity entity) {
+        //添加绑定人员id
+        AssistantUserBindEntity bindSuccess = userBindClient.findSuccess(entity.getDoctorId(), entity.getAssistId(), entity.getPatientId());
+        if(bindSuccess==null){
+            throw new CustomException("看护人与患者之间未建立绑定关系,无法创建聊天室");
+        }
+        entity.setBindId(bindSuccess.getId());
+
         if(entity.getManageType()==null&& StrUtil.isNotEmpty(entity.getPatientId())){
             entity.setManageType(patientClient.getManageType(entity.getPatientId()));
         }
@@ -124,6 +135,7 @@ public class LocalImRoomService extends BaseService<ImRoomMapper, ImRoomEntity,S
         if(assistantUser==null){
             throw new CustomException("该看护人不存在,请刷新后重试");
         }
+
         entity.setAssistAvatar(assistantUser.getAvatar());
         entity.setDoctorAvatar(doctorUser.getAvatar());
     }

+ 9 - 0
nb-service-api/app-assistant-api/src/main/java/com/nb/app/assistant/api/feign/IAssistantUserBindClient.java

@@ -27,6 +27,15 @@ public interface IAssistantUserBindClient {
 
     AssistantUserBindEntity findById(String bindId);
 
+    /**
+     * 根据医生、看护人、病人查找唯一成功的绑定关系
+     * @param doctorId
+     * @param assistId
+     * @param patientId
+     * @return
+     */
+    AssistantUserBindEntity findSuccess(String doctorId,String assistId,String patientId);
+
     /**
      * 描述: 处理用户绑定结果
      * @author lifang

+ 1 - 1
nb-service/app-doctor/src/main/java/com/nb/app/doctor/entity/AppUserConsultConfigEntity.java → nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/entity/AppUserConsultConfigEntity.java

@@ -1,4 +1,4 @@
-package com.nb.app.doctor.entity;
+package com.nb.app.doctor.api.entity;
 
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;

+ 15 - 0
nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/feign/IAppUserConsultConfigClient.java

@@ -0,0 +1,15 @@
+package com.nb.app.doctor.api.feign;
+
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
+
+/**
+ * @ClassName : IAppUserConsultConfig
+ * @Description :
+ * @Author : LF
+ * @Date: 2022年11月30日
+ */
+
+public interface IAppUserConsultConfigClient {
+
+    AppUserConsultConfigEntity findByDoctorId(String doctorId);
+}

+ 3 - 0
nb-service-api/app-doctor-api/src/main/java/com/nb/app/doctor/api/feign/result/AppDoctorUserResult.java

@@ -21,6 +21,9 @@ public class AppDoctorUserResult {
     @ApiModelProperty("医生id")
     private String id;
 
+    @ApiModelProperty("医生账号/手机号")
+    private String username;
+
     @ApiModelProperty(value = "性别 1、男 2、女 3、未知",allowableValues = "1,2,3")
     private SexEnum sex;
 

+ 3 - 0
nb-service-api/app-msg-api/src/main/java/com/nb/app/msg/bean/MsgBean.java

@@ -64,6 +64,9 @@ public class MsgBean implements Serializable {
     @ApiModelProperty("扩展字段,例:存放咨询问题id")
     private String extend;
 
+    @ApiModelProperty("是否为看护人发送, true 是 false 医生")
+    private boolean assistSend;
+
     private Map<String,Object> properties;
 
 }

+ 4 - 4
nb-service/app-assistant/pom.xml

@@ -13,6 +13,10 @@
 
 
     <dependencies>
+        <dependency>
+            <groupId>com.tuoren</groupId>
+            <artifactId>nb-im</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.tuoren</groupId>
             <artifactId>app-msg-api</artifactId>
@@ -53,10 +57,6 @@
             <groupId>com.tuoren</groupId>
             <artifactId>delay-queue-common</artifactId>
         </dependency>
-        <dependency>
-            <groupId>com.aliyun</groupId>
-            <artifactId>dysmsapi20170525</artifactId>
-        </dependency>
     </dependencies>
 
 

+ 3 - 3
nb-service/app-assistant/src/main/java/com/nb/app/assistant/auth/AssistantPasswordGranter.java

@@ -57,9 +57,9 @@ public class AssistantPasswordGranter implements IAuthGranter {
             log.info("登录用户:{}不存在", source.getUsername());
             throw new CustomException("登录用户不存在");
         }
-//        if (!SecurityUtil.matchesPassword(source.getPassword(), user.getPassword())) {
-//            throw new CustomException("账号或密码不正确");
-//        }
+        if (!SecurityUtil.matchesPassword(source.getPassword(), user.getPassword())) {
+            throw new CustomException("账号或密码不正确");
+        }
         log.info("登录用户:{}", source.getUsername());
 
         // 登录

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

@@ -3,11 +3,10 @@ package com.nb.app.assistant.controller;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nb.app.assistant.controller.vo.CaptureVo;
 import com.nb.app.assistant.controller.vo.ResetCaptchaVo;
-import com.nb.app.assistant.controller.vo.ResetPswVo;
 import com.nb.app.assistant.entity.AssistantUserEntity;
 import com.nb.app.assistant.enums.CaptchaEnum;
 import com.nb.app.assistant.service.LocalAssistantUserService;
-import com.nb.app.assistant.sms.SmsHelper;
+import com.nb.core.sms.SmsHelper;
 import com.nb.app.assistant.utils.CaptchaUtil;
 import com.nb.app.assistant.utils.ResetPswUtil;
 import com.nb.core.exception.CustomException;
@@ -21,8 +20,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.validation.constraints.NotNull;
-
 /**
  * @author lifang
  * @version 1.0.0

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

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.druid.sql.visitor.functions.Bin;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nb.app.assistant.api.enums.ApplyEnum;
 import com.nb.app.assistant.controller.vo.EditPatientNameVO;
@@ -20,6 +21,7 @@ import com.nb.core.annotation.Log;
 import com.nb.core.enums.UserPlatformEnum;
 import com.nb.core.exception.CustomException;
 import com.nb.core.result.R;
+import com.nb.im.service.LocalImRoomService;
 import com.nb.web.api.feign.IPatientClient;
 import com.nb.web.api.feign.result.PatientByInviteCodeResult;
 import io.swagger.annotations.Api;
@@ -92,7 +94,8 @@ public class PatientOperationController {
         AssistantUserBindEntity updateSource = new AssistantUserBindEntity();
         updateSource.setId(source.getId());
         updateSource.setPatientNamePs(source.getPatientNamePs());
-        return R.success(userBindService.updateById(updateSource));
+        userBindService.updatePatientNamePs(source.getId(), source.getPatientNamePs());
+        return R.success(true);
     }
 
     /**

+ 1 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/delay/UnEvalNotifyDelayMessageHandler.java

@@ -90,6 +90,7 @@ public class UnEvalNotifyDelayMessageHandler implements DelayMessageHandler {
         SpringUtil.publishEvent(new SaveMsgEvent(this,
                 MsgBean.builder()
                         .msgType(MsgEnum.ASSIST_EVAL)
+                        .assistSend(false)
                         .patientId(userBind.getPatientId())
                         .patientAge(userBind.getPatientAge())
                         .patientCode(userBind.getPatientCode())

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

@@ -4,7 +4,9 @@ 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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.nb.app.assistant.api.bean.HandleBindResult;
@@ -23,12 +25,15 @@ 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;
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
 import com.nb.app.doctor.api.feign.IAppDoctorUserClient;
+import com.nb.app.doctor.api.feign.IAppUserConsultConfigClient;
 import com.nb.app.doctor.api.feign.result.AppDoctorUserResult;
 import com.nb.app.msg.bean.MsgBean;
 import com.nb.app.msg.enums.MsgEnum;
 import com.nb.app.msg.event.SaveMsgEvent;
 import com.nb.auth.bean.LoginUser;
+import com.nb.auth.enums.StpTypeEnum;
 import com.nb.auth.utils.SecurityUtil;
 import com.nb.common.crud.BaseService;
 import com.nb.common.queue.delay.manager.DelayMessageManager;
@@ -37,6 +42,9 @@ import com.nb.common.queue.delay.message.DelayMessageProperties;
 import com.nb.core.Value;
 import com.nb.core.enums.StatusEnum;
 import com.nb.core.exception.CustomException;
+import com.nb.core.sms.SmsHelper;
+import com.nb.im.entity.ImRoomEntity;
+import com.nb.im.service.LocalImRoomService;
 import com.nb.web.api.entity.BusClinicEntity;
 import com.nb.web.api.feign.IPatientClient;
 import com.nb.web.api.feign.result.PatientMonitorDetailResult;
@@ -74,6 +82,19 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
     @Autowired
     @Lazy
     private IAppDoctorUserClient doctorUserClient;
+
+    @Autowired
+    @Lazy
+    private IAppUserConsultConfigClient userConsultConfigClient;
+
+    @Autowired
+    @Lazy
+    private LocalImRoomService imRoomService;
+
+    @Autowired
+    @Lazy
+    private SmsHelper smsHelper;
+
     @Override
     public void validateBeforeSave(AssistantUserBindEntity entity) {
         entity.setExistIm(false);
@@ -95,6 +116,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
 
     @Override
     public boolean save(AssistantUserBindEntity entity) {
+        LoginUser loginUser = SecurityUtil.getLoginUser();
         entity.setExistIm(false);
         String id = String.valueOf(SecurityUtil.getId());
         if(StrUtil.isEmpty(entity.getPatientId())){
@@ -133,6 +155,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                             .msgType(ApplyEnum.INVITE_CODE.equals(entity.getApplyType())?
                                     MsgEnum.CODE_BIND_NOTIFY:MsgEnum.MANUAL_BIND_NOTIFY)
                             .payload(entity.getId())
+                            .assistSend(StpTypeEnum.ASSISTANT.getText().equals(loginUser.getLoginType()))
                             .senderId(entity.getAssistId())
                             .senderNickname(currentUser.getNickname())
                             .senderAvatar(currentUser.getAvatar())
@@ -169,6 +192,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                         .id(id)
                         .msgType(MsgEnum.PAIN_CALL)
                         .payload(id)
+                        .assistSend(true)
                         .senderId(userBind.getAssistId())
                         .senderNickname(user.getNickname())
                         .senderAvatar(user.getAvatar())
@@ -184,6 +208,16 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
         ));
         if(!doctorUserClient.isOnline(userBind.getDoctorId())){
             //医生不在线,发送短信通知
+            AppDoctorUserResult doctorUser = doctorUserClient.lookById(userBind.getDoctorId());
+            if(doctorUser==null){
+                return;
+            }
+            AppUserConsultConfigEntity consultConfig = userConsultConfigClient.findByDoctorId(doctorUser.getId());
+            if(consultConfig==null||!Boolean.TRUE.equals(consultConfig.getMsgPush())){
+                return;
+            }
+            //发送短信通知
+            smsHelper.sendPainCall(doctorUser.getUsername(),userBind.getPatientCode());
         }
     }
 
@@ -210,6 +244,15 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
         return this.getById(bindId);
     }
 
+    @Override
+    public AssistantUserBindEntity findSuccess(String doctorId, String assistId, String patientId) {
+        return this.getOne(new LambdaQueryWrapper<AssistantUserBindEntity>()
+                .eq(AssistantUserBindEntity::getDoctorId,doctorId)
+                .eq(AssistantUserBindEntity::getAssistId,assistId)
+                .eq(AssistantUserBindEntity::getPatientId,patientId)
+                .eq(AssistantUserBindEntity::getStatus,BindEnum.SUCCESS));
+    }
+
     @Override
     public boolean handleBindResult(HandleBindResult source) {
         AssistantUserBindEntity userBind = this.findById(source.getBindId());
@@ -268,6 +311,7 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
                                 MsgEnum.BIND_SUCCESS:MsgEnum.BIND_FAIL)
                         .payload(source.getBindId())
                         .senderId(source.getDoctorId())
+                        .assistSend(false)
                         .senderNickname(source.getDoctorName())
                         .patientId(userBind.getPatientId())
                         .patientCode(userBind.getPatientCode())
@@ -457,4 +501,15 @@ public class LocalAssistantUserBindService extends BaseService<AssistantUserBind
             throw new CustomException("当前绑定关系未处于等待状态,无法修改");
         }
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void updatePatientNamePs(String id, String patientNamePs) {
+        if (this.update(new LambdaUpdateWrapper<AssistantUserBindEntity>()
+                .eq(AssistantUserBindEntity::getId,id)
+                .set(AssistantUserBindEntity::getPatientNamePs,patientNamePs))) {
+            imRoomService.update(new LambdaUpdateWrapper<ImRoomEntity>()
+                    .eq(ImRoomEntity::getBindId,id)
+                    .set(ImRoomEntity::getPatientNamePs,patientNamePs));
+        }
+    }
 }

+ 1 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/service/LocalAssistantUserService.java

@@ -42,6 +42,7 @@ public class LocalAssistantUserService extends BaseService<AssistantUserMapper,
     public void postSave(AssistantUserEntity entity) {
         SpringUtil.publishEvent(new SaveMsgEvent(this,
                 MsgBean.builder()
+                        .assistSend(false)
                         .msgType(MsgEnum.REGISTER)
                         .senderId("1")
                         .senderNickname("系统管理员")

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

@@ -1,7 +1,7 @@
 package com.nb.app.doctor.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.nb.app.doctor.entity.AppUserConsultConfigEntity;
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
 import com.nb.app.doctor.service.LocalUserConsultConfigService;
 import com.nb.core.entity.GenericEntity;
 import com.nb.core.result.R;

+ 1 - 1
nb-service/app-doctor/src/main/java/com/nb/app/doctor/mapper/AppUserConsultConfigMapper.java

@@ -1,7 +1,7 @@
 package com.nb.app.doctor.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.nb.app.doctor.entity.AppUserConsultConfigEntity;
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
 import org.apache.ibatis.annotations.Mapper;
 
 /**

+ 2 - 2
nb-service/app-doctor/src/main/java/com/nb/app/doctor/service/LocalAppDoctorUserService.java

@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.enums.SqlMethod;
 import com.nb.app.doctor.api.entity.AppDoctorUserEntity;
 import com.nb.app.doctor.api.feign.IAppDoctorUserClient;
 import com.nb.app.doctor.api.feign.result.AppDoctorUserResult;
-import com.nb.app.doctor.entity.AppUserConsultConfigEntity;
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
 import com.nb.app.doctor.mapper.AppDoctorUserMapper;
 import com.nb.app.msg.enums.MsgEnum;
 import com.nb.auth.bean.LoginUser;
@@ -20,6 +20,7 @@ import com.nb.common.crud.BaseService;
 import com.nb.common.websocket.event.DisConnectedEvent;
 import com.nb.core.enums.StatusEnum;
 import com.nb.core.exception.CustomException;
+import com.nb.core.sms.SmsHelper;
 import com.nb.im.entity.ImMsgEntity;
 import com.nb.im.entity.ImRoomEntity;
 import com.nb.im.enums.ImMsgType;
@@ -37,7 +38,6 @@ import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 import org.tio.core.ChannelContext;
 import org.tio.core.Tio;
-import org.tio.server.ServerTioConfig;
 import org.tio.utils.lock.SetWithLock;
 import org.tio.websocket.starter.TioWebSocketServerBootstrap;
 

+ 10 - 2
nb-service/app-doctor/src/main/java/com/nb/app/doctor/service/LocalUserConsultConfigService.java

@@ -1,6 +1,8 @@
 package com.nb.app.doctor.service;
 
-import com.nb.app.doctor.entity.AppUserConsultConfigEntity;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.nb.app.doctor.api.entity.AppUserConsultConfigEntity;
+import com.nb.app.doctor.api.feign.IAppUserConsultConfigClient;
 import com.nb.app.doctor.mapper.AppUserConsultConfigMapper;
 import com.nb.common.crud.BaseService;
 import org.springframework.stereotype.Component;
@@ -13,7 +15,7 @@ import org.springframework.stereotype.Component;
  * @createTime 2022年08月09日 21:24:00
  */
 @Component
-public class LocalUserConsultConfigService extends BaseService<AppUserConsultConfigMapper, AppUserConsultConfigEntity,String> {
+public class LocalUserConsultConfigService extends BaseService<AppUserConsultConfigMapper, AppUserConsultConfigEntity,String> implements IAppUserConsultConfigClient {
 
     @Override
     public void validateBeforeSave(AppUserConsultConfigEntity entity) {
@@ -29,4 +31,10 @@ public class LocalUserConsultConfigService extends BaseService<AppUserConsultCon
     public void validateBeforeDelete(String id) {
 
     }
+
+    @Override
+    public AppUserConsultConfigEntity findByDoctorId(String doctorId) {
+        return this.getOne(new LambdaQueryWrapper<AppUserConsultConfigEntity>()
+                .eq(AppUserConsultConfigEntity::getUserId,doctorId));
+    }
 }

+ 15 - 2
nb-service/app-msg/src/main/java/com/nb/app/msg/entity/AppMsgEntity.java

@@ -4,7 +4,6 @@ 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;
@@ -42,6 +41,9 @@ public class AppMsgEntity  extends GenericEntity<String> {
     @ApiModelProperty(value = "发送人名称")
     private String senderName;
 
+    @ApiModelProperty(value = "看护人的病人名称备注")
+    private String patientNamePs;
+
     @ApiModelProperty(value = "病人姓名")
     @JsonIgnoreProperties
     private String patientName;
@@ -57,6 +59,11 @@ public class AppMsgEntity  extends GenericEntity<String> {
     @JsonIgnoreProperties
     private String patientId;
 
+
+    @ApiModelProperty("是否为看护人发送")
+    private Boolean assistSend;
+
+
     @ApiModelProperty(value = "负载 即申请id 、咨询id 等")
     private String payload;
 
@@ -78,7 +85,13 @@ public class AppMsgEntity  extends GenericEntity<String> {
 
 
     public String getPatient() {
-        return StrUtil.isEmpty(patientName)?patientCode:patientName;
+        if(Boolean.TRUE.equals(assistSend)){
+            //看护人发出的消息,不显示病人备注
+            return StrUtil.isEmpty(patientName)?patientCode:patientName;
+        }else {
+            return StrUtil.isEmpty(patientNamePs)?(StrUtil.isEmpty(patientName)?patientCode:patientName)
+                    :patientNamePs;
+        }
     }
 
     public String getPayload() {

+ 1 - 0
nb-service/app-msg/src/main/java/com/nb/app/msg/service/LocalAppConsultService.java

@@ -61,6 +61,7 @@ public class LocalAppConsultService extends BaseService<AppConsultMapper, AppCon
                         .patientId(entity.getPatientId())
                         .patientName(entity.getPatientName())
                         .patientCode(entity.getPatientCode())
+                        .assistSend(true)
                         .patientSex(entity.getPatientSex())
                         .patientAge(entity.getPatientAge())
                         .receiverId(entity.getDoctorId())