diff --git a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java index 8d3cd7bec..ae441e305 100644 --- a/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java +++ b/cash-common/cash-common-sa-token/src/main/java/com/czg/sa/MyStpLogic.java @@ -229,6 +229,19 @@ public class MyStpLogic { return shopId; } + /** + * 获取主店id + * @param shopId 店铺id + * @return 主店id + */ + public Long getHeadShopId(Long shopId) { + Long mainId = DbChain.table("tb_shop_config").select("main_id").where("id = ?", shopId).objAs(Long.class); + if (mainId != null) { + return mainId; + } + return shopId; + } + /** * 校验是否为管理端登录 */ diff --git a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java index 012395a0d..7b9fbf61f 100644 --- a/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java +++ b/cash-service/account-service/src/main/java/com/czg/service/account/service/impl/AuthorizationServiceImpl.java @@ -197,7 +197,11 @@ public class AuthorizationServiceImpl implements AuthorizationService { // 主店铺切换子店铺 if ((headId == null && !shopInfo.getMainId().equals(shopId)) || (!sysUser.getId().equals(headId) && shopInfo.getMainId() == null) || (headId != null && !sysUserId.equals(headId) && !shopInfo.getMainId().equals(headId))) { - throw new ApiNotPrintException("目标店铺非登录账号所有"); + Long headShopId = StpKit.USER.getHeadShopId(); + Long changeHeadShopId = StpKit.USER.getHeadShopId(sysUserId); + if (!changeHeadShopId.equals(headShopId)) { + throw new ApiNotPrintException("目标店铺非登录账号所有"); + } } // 查询角色