Browse Source

Merge branch 'sysuser_0308' of http://git.dayaedu.com/yonge/mec into master_saas

zouxuan 3 years ago
parent
commit
c8835866b4

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/handler/SysUserContextHolder.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.handler;
+
+
+import com.ym.mec.auth.api.entity.SysUser;
+
+public class SysUserContextHolder {
+
+	private static final ThreadLocal<SysUser> sysUserContextHolder = new ThreadLocal<SysUser>();
+
+	public static void setSysUser(SysUser sysUser) {
+		sysUserContextHolder.set(sysUser);
+	}
+
+	public static SysUser getSysUser() {
+		return sysUserContextHolder.get();
+	}
+
+	public static void clearSysUser() {
+		sysUserContextHolder.remove();
+	}
+
+}

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserServiceImpl.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.handler.SysUserContextHolder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class SysUserServiceImpl {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    public SysUser getSysUser() {
+        SysUser sysUser = SysUserContextHolder.getSysUser();
+        if(sysUser == null){
+            sysUser = sysUserFeignService.queryUserInfo();
+            if(sysUser == null || sysUser.getId() == null){
+                return null;
+            }
+        }
+        SysUserContextHolder.setSysUser(sysUser);
+        return sysUser;
+    }
+}

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantInfoServiceImpl.java

@@ -122,6 +122,8 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
     private TenantContractTemplateDao tenantContractTemplateDao;
     @Autowired
     private SysUserTenantService sysUserTenantService;
+    @Autowired
+    private SysUserServiceImpl sysUserService;
 
     @Value("${contract.baseDir:/var/pdf}")
     private String contractBaseDir;
@@ -1146,7 +1148,7 @@ public class TenantInfoServiceImpl extends ServiceImpl<TenantInfoDao, TenantInfo
         }
 
         if (StringUtils.isBlank(tenantId)) {
-            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            SysUser sysUser = sysUserService.getSysUser();
             if (sysUser != null && sysUser.getTenantId() != null) {
                 tenantId = sysUser.getTenantId().toString();
             }

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/interceptor/OperationLogInterceptor.java

@@ -6,6 +6,8 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ym.mec.biz.handler.SysUserContextHolder;
+import com.ym.mec.biz.service.impl.SysUserServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Component;
@@ -18,16 +20,14 @@ import com.yonge.log.interceptor.AuditLogInterceptor;
 public class OperationLogInterceptor extends AuditLogInterceptor {
 
 	@Autowired
-	@Lazy
-	private SysUserFeignService sysUserFeignService;
+	private SysUserServiceImpl sysUserService;
 
 	@Override
 	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws ServletException, IOException {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		SysUser sysUser = sysUserService.getSysUser();
 		if (sysUser != null && sysUser.getId() != null) {
 			setUsername(sysUser.getRealName(),sysUser.getId(), sysUser.getTenantId() + "");
 		}
 		return true;
 	}
-
 }

+ 2 - 0
mec-web/src/main/java/com/ym/mec/web/interceptor/TenantInterceptor.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.interceptor;
 
+import com.ym.mec.biz.handler.SysUserContextHolder;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.common.tenant.TenantContextHolder;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +27,7 @@ public class TenantInterceptor extends HandlerInterceptorAdapter {
 	@Override
 	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 		TenantContextHolder.clearTenantId();
+		SysUserContextHolder.clearSysUser();
 	}
 
 }