From a96390fee8c1c8b4513d40ec13e856cf3f32d78e Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 30 Jun 2020 15:19:27 +0800 Subject: [PATCH] =?UTF-8?q?=E9=9B=86=E5=9B=A2=E7=89=88=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/base/BaseController.java | 25 ++++++++++++------- .../controller/sys/HomeController.java | 12 ++++++--- .../java/com/iformall/shiro/UserSession.java | 2 ++ .../com/iformall/plugin/MultiTenancy.java | 2 +- 4 files changed, 28 insertions(+), 13 deletions(-) diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java index bc83c79a8..1e168543f 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/base/BaseController.java @@ -7,8 +7,10 @@ import java.util.Date; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.base.TenantEntity; +import com.iformall.enums.EnumGroupSupport; import com.iformall.shiro.UserSession; import com.iformall.utils.IPUtil; +import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.apache.shiro.session.Session; import org.springframework.web.bind.WebDataBinder; @@ -53,24 +55,29 @@ public class BaseController { return userId; } - @Deprecated - public String getTenantId(){ - String tenantId = (String)SecurityUtils.getSubject().getSession().getAttribute(UserSession.tenantId); - return tenantId; - } +// @Deprecated +// public String getTenantId(){ +// String tenantId = (String)SecurityUtils.getSubject().getSession().getAttribute(UserSession.tenantId); +// return tenantId; +// } /** * 返回租户信息 * @return */ public TenantEntity getTenantInfo(){ + TenantEntity tenantEntity = new TenantEntity(); Session session = SecurityUtils.getSubject().getSession(); + String isParent = (String)session.getAttribute(UserSession.isParent); String tenantId = (String)session.getAttribute(UserSession.tenantId); String parentTenantId = (String)session.getAttribute(UserSession.parentTenantId); - TenantEntity tenantEntity = new TenantEntity(){{ - setTenantId(tenantId); - setParentTenantId(parentTenantId); - }}; + if(StringUtils.isNotBlank(isParent) && isParent.equalsIgnoreCase(EnumGroupSupport.SUPPORT.getCode().toString())){ + tenantEntity.setTenantId(null); + tenantEntity.setParentTenantId(tenantId); + }else{ + tenantEntity.setTenantId(tenantId); + tenantEntity.setParentTenantId(parentTenantId); + } return tenantEntity; } diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java index 1b533b2c0..701a3d2bb 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/sys/HomeController.java @@ -161,6 +161,10 @@ public class HomeController extends BaseController { Map map = new HashMap(); if (mall.getGroupSupport().equals(EnumGroupSupport.SUPPORT.getCode()) && StringUtils.isBlank(info.getParentTenantId())) { + + Session session = SecurityUtils.getSubject().getSession(); + session.setAttribute(UserSession.isParent, EnumGroupSupport.SUPPORT.getCode()); + // 集团用户获取子商场 List mallList = mallService.getSubByParentTenantId(info.getTenantId()); map.put("subMalls", JSON.toJSONString(mallList)); @@ -198,6 +202,7 @@ public class HomeController extends BaseController { logger.debug(map.toString()); String tenantId = map.get("tenantId"); + String subTenantId = map.get("subTenantId"); String parentTenantId = map.get("parentTenantId"); if (StringUtils.isBlank(tenantId)) { @@ -207,10 +212,11 @@ public class HomeController extends BaseController { MallUserInfo userInfo = getUser(); if (userInfo.getTenantId().equalsIgnoreCase(tenantId)) { Session session = SecurityUtils.getSubject().getSession(); - session.setAttribute(UserSession.tenantId, tenantId); - if (StringUtils.isNotBlank(parentTenantId)) { - session.setAttribute(UserSession.parentTenantId, parentTenantId); + if (StringUtils.isNotBlank(subTenantId)) { + session.setAttribute(UserSession.tenantId, subTenantId); + session.setAttribute(UserSession.parentTenantId, tenantId); } else { + session.setAttribute(UserSession.tenantId, tenantId); session.setAttribute(UserSession.parentTenantId, null); } } diff --git a/mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java b/mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java index 7d9a25e11..e8c9c9d68 100644 --- a/mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java +++ b/mallinkAdmin/src/main/java/com/iformall/shiro/UserSession.java @@ -10,4 +10,6 @@ public class UserSession { public static String parentTenantId ="PARENT_TENANT_ID"; + public static String isParent ="IS_PARENT"; + } diff --git a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/MultiTenancy.java b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/MultiTenancy.java index 72797968f..a55a21bb5 100644 --- a/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/MultiTenancy.java +++ b/mybatis-multi-tenancy/src/main/java/com/iformall/plugin/MultiTenancy.java @@ -92,7 +92,7 @@ public class MultiTenancy implements Interceptor { } public Object intercept(Invocation invocation) throws Throwable { - if (getTenantInfo().getTenantId() != null) { + if (getTenantInfo().getTenantId() != null || getTenantInfo().getParentTenantId() != null) { // 能从cookie或者session获取到tenantId mod(invocation); }