From 8f8114764bfc2b648937e42cda68be398c6b822a Mon Sep 17 00:00:00 2001 From: liu <liujiatong112@163.com> Date: Fri, 3 Nov 2023 17:00:18 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AF=8A=E6=96=AD=E6=B5=81=E7=A8=8B=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supervision/config/JwtInterceptor.java | 28 +++++++++++++++---- .../com/supervision/config/Knife4jConfig.java | 2 -- .../com/supervision/config/WebConfig.java | 2 +- .../com/supervision/util/SpringBeanUtil.java | 0 .../java/com/supervision/model/Patient.java | 15 ++++++++-- .../main/resources/mapper/PatientMapper.xml | 5 +++- .../controller/AskProcessController.java | 2 +- 7 files changed, 41 insertions(+), 13 deletions(-) rename {virtual-patient-web => virtual-patient-common}/src/main/java/com/supervision/util/SpringBeanUtil.java (100%) diff --git a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java index f30dae65..9a0c600d 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/JwtInterceptor.java @@ -7,26 +7,37 @@ import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import com.supervision.domain.UserInfo; import com.supervision.exception.BusinessException; +import com.supervision.util.SpringBeanUtil; +import com.supervision.util.TokenUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.Map; @Slf4j public class JwtInterceptor implements HandlerInterceptor { + @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { //请求消息头获取用户ID String token = request.getHeader("token"); - // 如果是开发环境,不获取token - if (StrUtil.isBlank(token)) { - throw new BusinessException("当前用户未登录"); + if (StrUtil.isBlank(token) ) { + // 如果是swagger来的接口,说明这里是测试的,会伪造一个用户 + if (StrUtil.isNotBlank(request.getHeader("Knife4j-Gateway-Code"))){ + token = devActiveUser(); + }else { + throw new BusinessException("当前用户未登录"); + } } + JWT jwt = JWTUtil.parseToken(token); // 校验token是否过期,如果过期了,需要提示过期重新登录 checkTokenExpire(jwt); @@ -46,7 +57,6 @@ public class JwtInterceptor implements HandlerInterceptor { Object expireTime = jwt.getPayload("expireTime"); long l = Long.parseLong(String.valueOf(expireTime)); // 校验是否比当前时间大 - System.out.println(l); long currentTimeMillis = System.currentTimeMillis(); if (currentTimeMillis > l) { throw new BusinessException("用户登录已过期,请重新登录"); @@ -62,6 +72,14 @@ public class JwtInterceptor implements HandlerInterceptor { } } + private String devActiveUser(){ + Map<String, Object> map = new HashMap<>(); + map.put("id","1"); + map.put("account","test"); + map.put("name","测试账户"); + return TokenUtil.creatToken(JSONUtil.toJsonStr(map)); + } + private void clearAuth() { ThreadCache.USER.remove(); } diff --git a/virtual-patient-common/src/main/java/com/supervision/config/Knife4jConfig.java b/virtual-patient-common/src/main/java/com/supervision/config/Knife4jConfig.java index f4274756..a9ff6873 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/Knife4jConfig.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/Knife4jConfig.java @@ -10,8 +10,6 @@ */ package com.supervision.config; -import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; -import io.swagger.annotations.Api; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.bind.annotation.RestController; diff --git a/virtual-patient-common/src/main/java/com/supervision/config/WebConfig.java b/virtual-patient-common/src/main/java/com/supervision/config/WebConfig.java index 45b32668..66a6c430 100644 --- a/virtual-patient-common/src/main/java/com/supervision/config/WebConfig.java +++ b/virtual-patient-common/src/main/java/com/supervision/config/WebConfig.java @@ -30,7 +30,7 @@ public class WebConfig implements WebMvcConfigurer { paths.add("/favicon.ico"); paths.add("/user/login"); // 开发环境,放开不校验token.每次修改这里需要重启(热部署不行) - paths.add("/**"); +// paths.add("/**"); return paths; } } diff --git a/virtual-patient-web/src/main/java/com/supervision/util/SpringBeanUtil.java b/virtual-patient-common/src/main/java/com/supervision/util/SpringBeanUtil.java similarity index 100% rename from virtual-patient-web/src/main/java/com/supervision/util/SpringBeanUtil.java rename to virtual-patient-common/src/main/java/com/supervision/util/SpringBeanUtil.java diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Patient.java b/virtual-patient-model/src/main/java/com/supervision/model/Patient.java index 5e4b4682..08acdc55 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Patient.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Patient.java @@ -35,10 +35,10 @@ public class Patient implements Serializable { private String name; /** - * 性别 0男 1女 + * 性别 */ - @ApiModelProperty("性别 0男 1女") - private Integer gender; + @ApiModelProperty("性别") + private String gender; /** * 病人年龄 @@ -64,6 +64,15 @@ public class Patient implements Serializable { @ApiModelProperty("体重") private BigDecimal weight; + @ApiModelProperty("婚姻") + private String marriage; + + @ApiModelProperty("职业") + private String profession; + + @ApiModelProperty("地址") + private String address; + /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/resources/mapper/PatientMapper.xml b/virtual-patient-model/src/main/resources/mapper/PatientMapper.xml index 60d33746..db1c29ba 100644 --- a/virtual-patient-model/src/main/resources/mapper/PatientMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/PatientMapper.xml @@ -12,6 +12,9 @@ <result property="symptoms" column="symptoms" jdbcType="VARCHAR"/> <result property="height" column="height" jdbcType="DECIMAL"/> <result property="weight" column="weight" jdbcType="DECIMAL"/> + <result property="marriage" column="marriage" jdbcType="VARCHAR"/> + <result property="profession" column="profession" jdbcType="VARCHAR"/> + <result property="address" column="address" jdbcType="VARCHAR"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> @@ -21,7 +24,7 @@ <sql id="Base_Column_List"> id ,name,gender, - age,symptoms,height, + age,symptoms,height,address,marriage,profession, weight,disease_list,create_user_id, create_time,update_user_id,update_time </sql> diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java b/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java index bbc4aa67..28fe645c 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/AskProcessController.java @@ -24,7 +24,7 @@ public class AskProcessController { @ApiOperation("生成诊断流程任务") @GetMapping("creatDiagnosisProcess") - public Process creatDiagnosisProcess(@ApiParam("病人ID") String patientId, String medicalId) { + public Process creatDiagnosisProcess(@ApiParam("病人ID") String patientId,@ApiParam("病历ID") String medicalId) { User user = UserUtil.getUser(); return askProcessService.creatDiagnosisProcess(patientId, medicalId, user); }