|
@@ -22,6 +22,7 @@ import com.github.pagehelper.PageInfo;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
import org.springframework.web.bind.WebDataBinder;
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
import org.springframework.web.bind.annotation.InitBinder;
|
|
|
|
|
|
@@ -235,7 +236,11 @@ public class BaseController
|
|
protected Long getTenantId() {
|
|
protected Long getTenantId() {
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
if(!user.isAdmin()){
|
|
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 {
|
|
} else {
|
|
return Long.parseLong(request.getHeader("tenantId"));
|
|
return Long.parseLong(request.getHeader("tenantId"));
|
|
}
|
|
}
|
|
@@ -244,9 +249,16 @@ public class BaseController
|
|
protected <T> void setTenantId(T t) throws NoSuchFieldException, IllegalAccessException {
|
|
protected <T> void setTenantId(T t) throws NoSuchFieldException, IllegalAccessException {
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
SysUser user = SecurityUtils.getLoginUser().getUser();
|
|
if(!user.isAdmin()){
|
|
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 {
|
|
} else {
|
|
Long tenantId = Long.parseLong(request.getHeader("tenantId"));
|
|
Long tenantId = Long.parseLong(request.getHeader("tenantId"));
|
|
// Long tenantId = SecurityUtils.getLoginUser().getTenantId();
|
|
// Long tenantId = SecurityUtils.getLoginUser().getTenantId();
|