From 2c3ed1149ae1a1ca1014718a8d8c1f41f596efcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E9=B8=BF=E5=B1=95?= <18031053041@163.com> Date: Tue, 21 Apr 2026 00:06:53 +0800 Subject: [PATCH] 1 --- .../common/org/OrganizationQueryScope.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 mhd-modules/mhd-system/src/main/java/com/mhd/basic/common/org/OrganizationQueryScope.java diff --git a/mhd-modules/mhd-system/src/main/java/com/mhd/basic/common/org/OrganizationQueryScope.java b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/common/org/OrganizationQueryScope.java new file mode 100644 index 000000000..f72f84eef --- /dev/null +++ b/mhd-modules/mhd-system/src/main/java/com/mhd/basic/common/org/OrganizationQueryScope.java @@ -0,0 +1,32 @@ +package com.mhd.basic.common.org; + +import com.mhd.system.api.model.LoginUser; + +/** + * 组织数据权限公共能力:解析当前登录用户所属组织(与 token 中 userPo / organizationPo 字段完整度有关) + */ +public final class OrganizationQueryScope { + + private OrganizationQueryScope() { + } + + /** + * 优先 userPo.organizationId;缺失或为 0 时用 organizationPo.organizationId + */ + public static Long resolveLoginOrganizationId(LoginUser loginUser) { + if (loginUser == null) { + return null; + } + if (loginUser.getUserPo() != null) { + Long oid = loginUser.getUserPo().getOrganizationId(); + if (oid != null && oid != 0L) { + return oid; + } + } + if (loginUser.getOrganizationPo() != null && loginUser.getOrganizationPo().getOrganizationId() != null + && loginUser.getOrganizationPo().getOrganizationId() != 0L) { + return loginUser.getOrganizationPo().getOrganizationId(); + } + return null; + } +}