Browse Source

fix ws授权模块

18339543638 3 years ago
parent
commit
8108696e65

+ 7 - 3
nb-auth/src/main/java/com/nb/auth/utils/SecurityUtil.java

@@ -126,9 +126,13 @@ public class SecurityUtil {
 
     public static StpLogic getStpLogic(){
         HttpServletRequest request = SpringMVCUtil.getRequest();
-        String header = request.getHeader("Login-Type");
-        if(StrUtil.isNullOrUndefined(header)){
-            header="";
+        return getStpLogic(request.getHeader("Login-Type"));
+    }
+
+    public static StpLogic getStpLogic(String loginType){
+        String header ="";
+        if(!StrUtil.isNullOrUndefined(loginType)){
+            header=loginType;
         }
         return SaManager.getStpLogic(header);
     }

+ 5 - 2
nb-service-api/app-msg-api/src/main/java/com/nb/app/msg/enums/MsgEnum.java

@@ -22,8 +22,11 @@ public enum  MsgEnum  implements IEnum<Integer> {
     CONSUL(0,"咨询申请"),
     CODE_BIND_NOTIFY(1,"邀请码绑定申请"),
     MANUAL_BIND_NOTIFY(2,"用户绑定申请"),
-    PAIN_CALL(3,"疼痛一键呼叫"),
-    REGISTER(4,"新用户注册")
+    BIND_SUCCESS(3,"绑定申请成功"),
+    BIND_FAIL(4,"绑定申请失败"),
+    PAIN_CALL(5,"疼痛一键呼叫"),
+    REGISTER(6,"新用户注册"),
+    ASSIST_EVAL(7,"疼痛评估")
     ;
     @Getter
     @ApiModelProperty("枚举编码")

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

@@ -3,6 +3,9 @@ package com.nb.app.assistant.controller;
 import cn.hutool.core.bean.BeanUtil;
 import com.nb.app.assistant.controller.vo.InviteCodePatientVo;
 import com.nb.app.assistant.controller.vo.MonitorAddVo;
+import com.nb.app.assistant.service.LocalAssistantUserService;
+import com.nb.auth.bean.LoginUser;
+import com.nb.auth.utils.SecurityUtil;
 import com.nb.core.exception.CustomException;
 import com.nb.core.result.R;
 import com.nb.web.api.feign.IPatientClient;
@@ -30,9 +33,17 @@ public class PatientOperationController {
 
     private final IPatientClient patientClient;
 
+    /**
+     * 描述: 添加看护人生成关联关系后向医生发起请求数据
+     * @author lifang
+     * @date 2022/8/12 10:57
+     * @param vo
+     * @return R
+     */
     @PostMapping("/save")
-    @ApiOperation(value = "添加看护人")
+    @ApiOperation(value = "发起添加看护人申请")
     public R saveMonitor(@RequestBody MonitorAddVo vo){
+        LoginUser<String> loginUser = SecurityUtil.getLoginUser();
         return R.success();
     }
 

+ 8 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/controller/vo/MonitorAddVo.java

@@ -1,5 +1,6 @@
 package com.nb.app.assistant.controller.vo;
 
+import com.nb.app.assistant.enums.ApplyEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiParam;
@@ -20,12 +21,19 @@ public class MonitorAddVo {
     @ApiModelProperty(value = "疼痛小助手用户id",required = true)
     @NotNull(message = "疼痛小助手用户id不能为空")
     private String assistantUserId;
+
     @ApiModelProperty(value = "被监护病人id",required = true)
     @NotNull(message = "被监护病人id不能为空")
     private String patientId;
+
     @ApiModelProperty(value = "app医生端用户id",required = true)
     @NotNull(message = "app医生端用户id不能为空")
     private String appDoctorUserId;
+
+    @ApiModelProperty(value = "申请途径",allowableValues = "0(手动申请) 1(邀请码申请)",required = true)
+    @NotNull(message = "申请途径不能为空")
+    private ApplyEnum apply;
+
     @ApiModelProperty(value = "医院id",required = true)
     @NotNull(message = "医院id不能为空")
     private String tenantId;

+ 45 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/entity/AssistantUserBindEntity.java

@@ -0,0 +1,45 @@
+package com.nb.app.assistant.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.nb.app.assistant.enums.ApplyEnum;
+import com.nb.app.assistant.enums.BindEnum;
+import com.nb.core.entity.GenericEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AssistantUserBind.java
+ * @Description TODO
+ * @createTime 2022年08月12日 11:12:00
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName(value = "assistant_user_bind",autoResultMap = true)
+@ApiModel(value="疼痛小助手用户绑定列表")
+@ToString
+@NoArgsConstructor
+public class AssistantUserBindEntity extends GenericEntity<String> {
+    @ApiModelProperty(value = "用户id",required = true)
+    private String userId;
+
+    @ApiModelProperty(value = "病人id",required = true)
+    private String patientId;
+
+    @ApiModelProperty(value = "医生id",required = true)
+    private String doctorId;
+
+    @ApiModelProperty(value = "申请类型",required = true,allowableValues = "0(手动申请) 1(邀请码申请)")
+    private ApplyEnum applyType;
+
+    @ApiModelProperty(value = "绑定状态",required = true)
+    private BindEnum status;
+
+    @ApiModelProperty(value = "解除绑定人,当与userId相同时,即本人解除绑定关系,当不同时,即由医生解除绑定关系")
+    private String liftedBy;
+}

+ 29 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/enums/ApplyEnum.java

@@ -0,0 +1,29 @@
+package com.nb.app.assistant.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName ApplyEnum.java
+ * @Description TODO
+ * @createTime 2022年08月12日 11:43:00
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum  ApplyEnum   implements IEnum<Integer> {
+    MANUAL(0,"手动申请"),
+    INVITE_CODE(1,"邀请码申请")
+    ;
+    @Getter
+    @ApiModelProperty("报警编码")
+    private Integer value;
+    @Getter
+    @ApiModelProperty("报警内容")
+    private String text;
+}

+ 31 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/enums/BindEnum.java

@@ -0,0 +1,31 @@
+package com.nb.app.assistant.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName BindEnum.java
+ * @Description TODO
+ * @createTime 2022年08月12日 11:21:00
+ */
+@Getter
+@AllArgsConstructor
+@JsonFormat(shape = JsonFormat.Shape.OBJECT)
+public enum  BindEnum  implements IEnum<Integer> {
+    WAITING(1,"等待医生进行绑定操作"),
+    SUCCESS(2,"绑定成功"),
+    REFUSE(3,"拒绝"),
+    LIFTED(4,"已断开")
+;
+    @Getter
+    @ApiModelProperty("报警编码")
+    private Integer value;
+    @Getter
+    @ApiModelProperty("报警内容")
+    private String text;
+}

+ 16 - 0
nb-service/app-assistant/src/main/java/com/nb/app/assistant/mapper/AssistantUserBindMapper.java

@@ -0,0 +1,16 @@
+package com.nb.app.assistant.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.nb.app.assistant.entity.AssistantUserBindEntity;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName AssistantUserMapper.java
+ * @Description TODO
+ * @createTime 2022年08月10日 10:26:00
+ */
+@Mapper
+public interface AssistantUserBindMapper extends BaseMapper<AssistantUserBindEntity> {
+}

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

@@ -0,0 +1,39 @@
+package com.nb.app.assistant.service;
+
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.nb.app.assistant.api.entity.AssistantEvalEntity;
+import com.nb.app.assistant.api.feign.IAssistantEvalClient;
+import com.nb.app.assistant.entity.AssistantUserBindEntity;
+import com.nb.app.assistant.mapper.AssistantEvalMapper;
+import com.nb.app.assistant.mapper.AssistantUserBindMapper;
+import com.nb.common.crud.BaseService;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author lifang
+ * @version 1.0.0
+ * @ClassName LocalAssistantUserService.java
+ * @Description
+ * @createTime 2022年08月10日 10:27:00
+ */
+@Component
+public class LocalAssistantUserBindService extends BaseService<AssistantUserBindMapper, AssistantUserBindEntity,String> {
+
+    @Override
+    public void validateBeforeSave(AssistantUserBindEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeUpdate(AssistantUserBindEntity entity) {
+
+    }
+
+    @Override
+    public void validateBeforeDelete(String id) {
+
+    }
+}

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

@@ -62,7 +62,7 @@ public class AppMsgEntity  extends GenericEntity<String> {
     @ApiModelProperty(value = "是否已读",required = true)
     private boolean read;
 
-    @ApiModelProperty("扩展内容")
+    @ApiModelProperty("扩展内容,若所需字段不存在,则内容可放在此字段下,如疼痛咨询类型、疼痛评估时间间隔等")
     private String extend;
 
     public String getSummary() {
@@ -86,6 +86,12 @@ public class AppMsgEntity  extends GenericEntity<String> {
                 return getSenderName()+"通过邀请码"+extend+"申请绑定";
             case MANUAL_BIND_NOTIFY:
                 return getSenderName()+"发起用户绑定申请";
+            case BIND_FAIL:
+                return getReceiverName()+"通过了您与"+getPatient()+"的绑定申请";
+            case BIND_SUCCESS:
+                return getReceiverName()+"拒绝了您与"+getPatient()+"的绑定申请";
+            case ASSIST_EVAL:
+                return  getPatient()+getExtend()+"未进行疼痛评估";
             default:  return "";
         }
     }

+ 1 - 1
nb-service/web-service/src/main/java/com/nb/web/service/bus/websocket/auth/UserAuthFilter.java

@@ -24,7 +24,7 @@ public class UserAuthFilter implements IWebSocketAuthFilter {
     @Override
     public boolean auth(HttpRequest httpRequest, HttpResponse httpResponse, ChannelContext channelContext) {
         String authorization = httpRequest.getParam("Authorization");
-        LoginUser loginUser = SecurityUtil.getLoginUser(authorization);
+        LoginUser loginUser = (LoginUser) SecurityUtil.getStpLogic( httpRequest.getHeader("Login-Type")).getTokenSessionByToken(authorization).get(LOGIN_USER_KEY);
         Tio.bindToken(channelContext, JSONUtil.toJsonStr(authorization));
         channelContext.set(LOGIN_USER_KEY,loginUser);
         return loginUser!=null;