From 83715ed7019ab37a4611a2e4e506f84aa1f7b1b0 Mon Sep 17 00:00:00 2001
From: 侯瑞军 <411269194@kidgrow.com>
Date: Tue, 28 Apr 2020 15:43:13 +0800
Subject: [PATCH] 增加feign客户端调用排除 tenant的注解。 修改完善诊断记录查看的细节问题
---
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java | 2
kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignInterceptor.java | 2
kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java | 4 +
kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignInterceptorConfig.java | 2
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recordNote.html | 1
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/DiagnosisRecord.java | 10 ++
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/OprationCenterApplication.java | 4
kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignTenantInterceptorConfig.java | 46 +++++++++++
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_org_form.html | 1
kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java | 104 ++++++++++++++++++++++++++
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html | 18 +++-
kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignTenantInterceptor.java | 26 ++++++
12 files changed, 206 insertions(+), 14 deletions(-)
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/DiagnosisRecord.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/DiagnosisRecord.java
index abad609..1adbb32 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/DiagnosisRecord.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/DiagnosisRecord.java
@@ -1,6 +1,7 @@
package com.kidgrow.oprationcenter.vo;
import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
@@ -26,7 +27,7 @@
/**
*诊断门诊名称
*/
- private String diagnostictDepartName;
+ private String diagnosticDepartName;
/**
*诊断医生名称
*/
@@ -52,11 +53,18 @@
*/
private String childPhone;
/**
+ * 诊断时间
+ */
+ @JsonFormat(pattern = "yyyy-MM-dd")
+ private Date diagnosticDiagnoseTime;
+ /**
* 诊断创建时间
*/
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date createTime;
/**
* 诊断更新时间
*/
+ @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
private Date updateTime;
}
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/OprationCenterApplication.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/OprationCenterApplication.java
index eae304d..8e9f64a 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/OprationCenterApplication.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/OprationCenterApplication.java
@@ -1,6 +1,6 @@
package com.kidgrow;
-import com.kidgrow.ribbon.annotation.EnableFeignInterceptor;
+import com.kidgrow.ribbon.annotation.EnableFeignTenantInterceptor;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@@ -17,7 +17,7 @@
@SpringBootApplication
@EnableFeignClients
@EnableDiscoveryClient
-@EnableFeignInterceptor
+@EnableFeignTenantInterceptor
public class OprationCenterApplication {
public static void main(String[] args) {
SpringApplication.run(OprationCenterApplication.class,args);
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java
index c82a5f5..61332a8 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java
@@ -98,7 +98,7 @@
params.put("page", 1);
params.put("limit", 10);
}
- if(params.get("diagnosticHospitalId").toString().isEmpty())
+ if(params.get("diagnosticHospitalId")==null)
return PageResult.<ProductOrderJoinDetail>builder().data(null).code(0).count(0L).build();
return productOrderDetailService.findAllDataList(params);
}
diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
index 57b269b..3ed3a85 100644
--- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
+++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-server/src/main/java/com/kidgrow/usercenter/controller/SysUserOrgController.java
@@ -75,6 +75,10 @@
if (sysUserOrg.getId().equals(userOrgList.get(i).getId())) {
userOrgList.get(i).setOrgId(sysUserOrg.getOrgId());
}
+ else
+ {
+ userOrgList.get(i).setOrgId(sysUserOrg.getUpdateUserId());
+ }
userOrgList.get(i).setEnabled(sysUserOrg.getEnabled());
userOrgList.get(i).setCreateUserOrgCode(createUserOrgCode);
}
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignInterceptor.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignInterceptor.java
index c328e2a..050ea98 100644
--- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignInterceptor.java
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignInterceptor.java
@@ -13,7 +13,7 @@
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
*
- * @Description: 开启feign拦截器传递数据给下游服务,包含基础数据和http的相关数据
+ * @Description: 开启feign拦截器传递数据给下游服务,包含基础数据,tenant信息和http的相关数据
* @Project: <br>
* @CreateDate: Created in 2020/2/21 13:31 <br>
* @Author: <a href="4345453@kidgrow.com">liuke</a>
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignTenantInterceptor.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignTenantInterceptor.java
new file mode 100644
index 0000000..6fb9192
--- /dev/null
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/annotation/EnableFeignTenantInterceptor.java
@@ -0,0 +1,26 @@
+package com.kidgrow.ribbon.annotation;
+
+import com.kidgrow.ribbon.config.FeignHttpTenantInterceptorConfig;
+import com.kidgrow.ribbon.config.FeignTenantInterceptorConfig;
+import org.springframework.context.annotation.Import;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: 开启feign拦截器传递数据给下游服务,包含基础数据和http的相关数据,不含tenant
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/21 13:31 <br>
+ * @Author: <a href="4345453@kidgrow.com">houruijun</a>
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@Import({FeignTenantInterceptorConfig.class, FeignHttpTenantInterceptorConfig.class})
+public @interface EnableFeignTenantInterceptor {
+
+}
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java
new file mode 100644
index 0000000..08c812e
--- /dev/null
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java
@@ -0,0 +1,104 @@
+package com.kidgrow.ribbon.config;
+
+import com.kidgrow.common.constant.CommonConstant;
+import com.kidgrow.common.constant.SecurityConstants;
+import feign.RequestInterceptor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Bean;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.List;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: feign拦截器,只包含http相关数据
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/21 13:31 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+@Slf4j
+public class FeignHttpTenantInterceptorConfig {
+ protected List<String> requestHeaders = new ArrayList<>();
+
+ @PostConstruct
+ public void initialize() {
+ requestHeaders.add(SecurityConstants.USER_ID_HEADER);
+ requestHeaders.add(SecurityConstants.USER_HEADER);
+ requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER);
+ requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER);
+ requestHeaders.add(SecurityConstants.USER_ORG_ID_HEADER);
+ requestHeaders.add(SecurityConstants.USER_ORGS_HEADER);
+ requestHeaders.add(SecurityConstants.USER_ORG_NAME_HEADER);
+ requestHeaders.add(SecurityConstants.ROLE_HEADER);
+ requestHeaders.add(SecurityConstants.CLIENT_HEADER);
+ //requestHeaders.add(SecurityConstants.TENANT_HEADER);
+ requestHeaders.add(CommonConstant.KIDGROW_VERSION);
+ requestHeaders.add(CommonConstant.USER_AGENT_BROWSER);
+ requestHeaders.add(CommonConstant.USER_AGENT_IP);
+ requestHeaders.add(CommonConstant.USER_AGENT_SYSTEM);
+ }
+
+ /**
+ * 使用feign client访问别的微服务时,将上游传过来的access_token、clientid、tenantid、username、roles等信息放入header传递给下一个服务
+ */
+ @Bean
+ public RequestInterceptor httpFeignInterceptor() {
+ return template -> {
+ ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
+ .getRequestAttributes();
+ if (attributes != null) {
+ HttpServletRequest request = attributes.getRequest();
+ Enumeration<String> headerNames = request.getHeaderNames();
+ if (headerNames != null) {
+ String headerName;
+ String headerValue;
+ while(headerNames.hasMoreElements()) {
+ headerName = headerNames.nextElement();
+ if (requestHeaders.contains(headerName)) {
+ headerValue = request.getHeader(headerName);
+ template.header(headerName, headerValue);
+ }
+ }
+ }
+
+ //传递access_token,无网络隔离时需要传递
+ /*
+ String token = extractHeaderToken(request);
+ if (StrUtil.isEmpty(token)) {
+ token = request.getParameter(CommonConstant.ACCESS_TOKEN);
+ }
+ if (StrUtil.isNotEmpty(token)) {
+ template.header(CommonConstant.TOKEN_HEADER, CommonConstant.BEARER_TYPE + " " + token);
+ }
+ */
+ }
+ };
+ }
+
+ /**
+ * 解析head中的token
+ * @param request
+ */
+ private String extractHeaderToken(HttpServletRequest request) {
+ Enumeration<String> headers = request.getHeaders(CommonConstant.TOKEN_HEADER);
+ while (headers.hasMoreElements()) {
+ String value = headers.nextElement();
+ if ((value.toLowerCase().startsWith(CommonConstant.BEARER_TYPE))) {
+ String authHeaderValue = value.substring(CommonConstant.BEARER_TYPE.length()).trim();
+ int commaIndex = authHeaderValue.indexOf(',');
+ if (commaIndex > 0) {
+ authHeaderValue = authHeaderValue.substring(0, commaIndex);
+ }
+ return authHeaderValue;
+ }
+ }
+ return null;
+ }
+}
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignInterceptorConfig.java
index 2ca0d25..b2180b0 100644
--- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignInterceptorConfig.java
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignInterceptorConfig.java
@@ -20,7 +20,7 @@
*/
public class FeignInterceptorConfig {
/**
- * 使用feign client访问别的微服务时,将上游传过来的client、tenant、traceid等信息放入header传递给下一个服务
+ * 使用feign client访问别的微服务时,将上游传过来的client、traceid等信息放入header传递给下一个服务
*/
@Bean
public RequestInterceptor baseFeignInterceptor() {
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignTenantInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignTenantInterceptorConfig.java
new file mode 100644
index 0000000..811439d
--- /dev/null
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignTenantInterceptorConfig.java
@@ -0,0 +1,46 @@
+package com.kidgrow.ribbon.config;
+
+import cn.hutool.core.util.StrUtil;
+import com.kidgrow.common.constant.CommonConstant;
+import com.kidgrow.common.constant.SecurityConstants;
+import com.kidgrow.common.context.ClientContextHolder;
+import feign.RequestInterceptor;
+import org.slf4j.MDC;
+import org.springframework.context.annotation.Bean;
+
+
+/**
+ * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
+ *
+ * @Description: feign拦截器,只包含基础数据
+ * @Project: <br>
+ * @CreateDate: Created in 2020/2/21 13:31 <br>
+ * @Author: <a href="4345453@kidgrow.com">liuke</a>
+ */
+public class FeignTenantInterceptorConfig {
+ /**
+ * 使用feign client访问别的微服务时,将上游传过来的client、traceid等信息放入header传递给下一个服务
+ */
+ @Bean
+ public RequestInterceptor baseFeignInterceptor() {
+ return template -> {
+ //传递client
+ String client = ClientContextHolder.getClient();
+ if (StrUtil.isNotEmpty(client)) {
+ template.header(SecurityConstants.CLIENT_HEADER, client);
+ }
+
+// //传递tenant
+// String tenant = TenantContextHolder.getTenant();
+// if (StrUtil.isNotEmpty(tenant)) {
+// template.header(SecurityConstants.TENANT_HEADER, tenant);
+// }
+
+ //传递日志traceId
+ String traceId = MDC.get(CommonConstant.LOG_TRACE_ID);
+ if (StrUtil.isNotEmpty(traceId)) {
+ template.header(CommonConstant.TRACE_ID_HEADER, traceId);
+ }
+ };
+ }
+}
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html
index 31c7e63..ac98c35 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html
@@ -70,15 +70,17 @@
headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
page: true,
cols: [[
- { field: 'hospitalName', width: 300, title: '医院名称' },
- { field: 'departmentName', width: 100, title: '科室名称' },
+ { field: 'diagnosticHospitalName', width: 300, title: '医院名称' },
+ { field: 'diagnosticDepartName', width: 100, title: '科室名称' },
{ field: 'diagnosticDoctorName', width: 100, title: '医生姓名' },
{ field: 'childName', width: 100, title: '患者姓名' },
{ field: 'childSex', width: 80, title: '性别' },
- { field: 'childBirthday', width: 100, title: '出生日期' },
+ { field: 'childBirthday', width: 120, title: '出生日期',templet:function(d){
+ return new Date(d.createTime).dateFormat("yyyy/MM/dd");
+ }},
{ field: 'childPhone', width: 150, title: '联系电话' },
{
- field: 'isDelete', sort: true, align: 'center', width: 80, templet: function (d) {
+ field: 'isDelete', sort: true, align: 'center', width: 100, templet: function (d) {
if (d.proType === 0)
return "正常"
else
@@ -86,12 +88,16 @@
}, title: '状态'
},
{
- field: 'createTime', width: 160, sort: true, title: '创建时间', templet: function (d) {
+ field: 'createTime', width: 170, sort: true, title: '创建时间', templet: function (d) {
return new Date(d.createTime).dateFormat("yyyy/MM/dd hh:mm:ss");
+ }
+ },{
+ field: 'diagnosticDiagnoseTime', width: 120, sort: true, title: '诊断时间', templet: function (d) {
+ return new Date(d.diagnosticDiagnoseTime).dateFormat("yyyy/MM/dd");
}
},
{
- field: 'updateTime', width: 160, sort: true, title: '修改时间', templet: function (d) {
+ field: 'updateTime', width: 170, sort: true, title: '修改时间', templet: function (d) {
return new Date(d.createTime).dateFormat("yyyy/MM/dd hh:mm:ss");
}
},
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recordNote.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recordNote.html
index ff5a71d..9c175ab 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recordNote.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recordNote.html
@@ -15,7 +15,6 @@
{
//诊断记录ID
var id=diagnosis.diagnosticId;
-
}
});
</script>
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_org_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_org_form.html
index 6ea4686..512be03 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_org_form.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/system/user_org_form.html
@@ -141,7 +141,6 @@
data.field.enabled = (data.field.enabled == 0) ? false : true;
admin.req('api-user/sysuserorg', JSON.stringify(data.field), function (data) {
layer.closeAll('loading');
- debugger
if (data.code == 0) {
layer.msg(data.msg, { icon: 1, time: 1000 });
admin.finishPopupCenter();
--
Gitblit v1.8.0