Bladeren bron

多门店管理

rainwer 5 maanden geleden
bovenliggende
commit
4c593bbc03
1 gewijzigde bestanden met toevoegingen van 16 en 4 verwijderingen
  1. 16 4
      src/main/java/cn/ezhizao/framework/web/controller/BaseController.java

+ 16 - 4
src/main/java/cn/ezhizao/framework/web/controller/BaseController.java

@@ -21,6 +21,7 @@ import com.github.pagehelper.PageInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.WebDataBinder;
 import org.springframework.web.bind.annotation.InitBinder;
 
@@ -234,7 +235,11 @@ public class BaseController
     protected Long getTenantId() {
         SysUser user = SecurityUtils.getLoginUser().getUser();
         if(!user.isAdmin()){
-            return user.getTenantId();
+            if(!CollectionUtils.isEmpty(user.getRoles()) && user.getRoles().stream().filter(role -> role.getRoleId() == 2).findAny().isPresent()) {
+                return Long.parseLong(request.getHeader("tenantId"));
+            } else {
+                return user.getTenantId();
+            }
         } else {
             return Long.parseLong(request.getHeader("tenantId"));
         }
@@ -243,9 +248,16 @@ public class BaseController
     protected <T> void setTenantId(T t) throws NoSuchFieldException, IllegalAccessException {
         SysUser user = SecurityUtils.getLoginUser().getUser();
         if(!user.isAdmin()){
-            Field field =  t.getClass().getDeclaredField("tenantId");
-            field.setAccessible(true);
-            field.set(t, user.getTenantId());
+            if(!CollectionUtils.isEmpty(user.getRoles()) && user.getRoles().stream().filter(role -> role.getRoleId() == 2).findAny().isPresent()) {
+                Long tenantId = Long.parseLong(request.getHeader("tenantId"));
+                Field field =  t.getClass().getDeclaredField("tenantId");
+                field.setAccessible(true);
+                field.set(t, tenantId);
+            } else {
+                Field field =  t.getClass().getDeclaredField("tenantId");
+                field.setAccessible(true);
+                field.set(t, user.getTenantId());
+            }
         } else {
             Long tenantId = Long.parseLong(request.getHeader("tenantId"));
 //            Long tenantId = SecurityUtils.getLoginUser().getTenantId();