From 71e63519aef820139bd6a95291c814be0511688a Mon Sep 17 00:00:00 2001 From: chenbowen Date: Thu, 13 Nov 2025 21:10:38 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=83=A8=E9=97=A8id=E4=B8=8E=E5=85=AC?= =?UTF-8?q?=E5=8F=B8id=E7=B1=BB=E5=9E=8B=E4=B8=BA=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/pojo/CompanyDeptInfo.java | 4 +-- .../core/util/BusinessDeptHandleUtil.java | 31 +++++++------------ 2 files changed, 14 insertions(+), 21 deletions(-) diff --git a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java index 47a62f1e..cc0470d0 100644 --- a/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java +++ b/zt-framework/zt-common/src/main/java/com/zt/plat/framework/common/pojo/CompanyDeptInfo.java @@ -11,7 +11,7 @@ public class CompanyDeptInfo { /** * 公司Id */ - private Long companyId; + private String companyId; /** * 公司名称 */ @@ -19,7 +19,7 @@ public class CompanyDeptInfo { /** * 部门Id */ - private Long deptId; + private String deptId; /** * 部门名称 */ diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java index fcaa7bfb..474e1cd8 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java @@ -15,14 +15,7 @@ import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static com.zt.plat.framework.common.util.collection.CollectionUtils.singleton; @@ -59,8 +52,8 @@ public class BusinessDeptHandleUtil { if (companyDeptSetByCompanyId.isEmpty()) { // 当前公司下没有部门 CompanyDeptInfo data = new CompanyDeptInfo(); - data.setCompanyId(Long.valueOf(companyIdHeader)); - data.setDeptId(0L); + data.setCompanyId(companyIdHeader); + data.setDeptId("0"); return new HashSet<>(singleton(data)); } // 如果有 deptId,校验其是否属于该 companyId @@ -157,11 +150,11 @@ public class BusinessDeptHandleUtil { if (extraInfo == null) { return; } - Set companyIds = infos.stream() + Set companyIds = infos.stream() .map(CompanyDeptInfo::getCompanyId) .filter(Objects::nonNull) .collect(Collectors.toCollection(LinkedHashSet::new)); - Set deptIds = infos.stream() + Set deptIds = infos.stream() .map(CompanyDeptInfo::getDeptId) .filter(Objects::nonNull) .collect(Collectors.toCollection(LinkedHashSet::new)); @@ -172,24 +165,24 @@ public class BusinessDeptHandleUtil { private static CompanyDeptInfo convert(CompanyDeptInfoRespDTO dto) { CompanyDeptInfo info = new CompanyDeptInfo(); - info.setCompanyId(dto.getCompanyId()); + info.setCompanyId(String.valueOf(dto.getCompanyId())); info.setCompanyName(dto.getCompanyName()); info.setCompanyCode(dto.getCompanyCode()); - info.setDeptId(dto.getDeptId()); + info.setDeptId(String.valueOf(dto.getDeptId())); info.setDeptName(dto.getDeptName()); info.setDeptCode(dto.getDeptCode()); return info; } private static boolean applyAutoSelection(LoginUser loginUser, HttpServletRequest request, CompanyDeptInfo info) { - if (info == null || info.getCompanyId() == null || info.getCompanyId() <= 0 - || info.getDeptId() == null || info.getDeptId() <= 0) { + if (info == null || info.getCompanyId() == null || "0".equals(info.getCompanyId()) + || info.getDeptId() == null || "0".equals(info.getDeptId())) { return false; } if (loginUser != null) { - loginUser.setVisitCompanyId(info.getCompanyId()); + loginUser.setVisitCompanyId(Long.valueOf(info.getCompanyId())); loginUser.setVisitCompanyName(info.getCompanyName()); - loginUser.setVisitDeptId(info.getDeptId()); + loginUser.setVisitDeptId(Long.valueOf(info.getDeptId())); loginUser.setVisitDeptName(info.getDeptName()); } request.setAttribute(WebFrameworkUtils.HEADER_VISIT_COMPANY_ID, info.getCompanyId()); @@ -201,7 +194,7 @@ public class BusinessDeptHandleUtil { request.setAttribute(WebFrameworkUtils.HEADER_VISIT_DEPT_NAME, info.getDeptName()); } CompanyContextHolder.setIgnore(false); - CompanyContextHolder.setCompanyId(info.getCompanyId()); + CompanyContextHolder.setCompanyId(Long.valueOf(info.getCompanyId())); return true; } } From 2280d29fb6e437ee5706882c5abec2cc6805b28f Mon Sep 17 00:00:00 2001 From: chenbowen Date: Thu, 13 Nov 2025 21:16:08 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=83=A8=E9=97=A8id=E4=B8=8E=E5=85=AC?= =?UTF-8?q?=E5=8F=B8id=E7=B1=BB=E5=9E=8B=E4=B8=BA=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zt/plat/module/system/service/dept/DeptServiceImpl.java | 4 ++-- .../plat/module/system/service/user/AdminUserServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java index 9e160f68..ce8f88b3 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/dept/DeptServiceImpl.java @@ -504,10 +504,10 @@ public class DeptServiceImpl implements DeptService { DeptDO company = companyId != null ? loadDept(companyId, deptCache) : findTopLevelAncestor(dept); if (company == null) continue; CompanyDeptInfo info = new CompanyDeptInfo(); - info.setCompanyId(company.getId()); + info.setCompanyId(String.valueOf(company.getId())); info.setCompanyName(company.getName()); info.setCompanyCode(company.getCode()); - info.setDeptId(dept.getId()); + info.setDeptId(String.valueOf(dept.getId())); info.setDeptName(dept.getName()); info.setDeptCode(dept.getCode()); result.add(info); diff --git a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java index d4ef744b..0107c7b8 100644 --- a/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java +++ b/zt-module-system/zt-module-system-server/src/main/java/com/zt/plat/module/system/service/user/AdminUserServiceImpl.java @@ -360,8 +360,8 @@ public class AdminUserServiceImpl implements AdminUserService { public AdminUserDO getUser(Long id) { AdminUserDO adminUserDO = userMapper.selectListByIds(singleton(id)).stream().findFirst().orElseThrow(() -> exception(USER_NOT_EXISTS)); Set companyDeptInfoListByUserId = deptService.getCompanyDeptInfoListByUserId(id); - adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).collect(Collectors.toSet())); - adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).collect(Collectors.toSet())); + adminUserDO.setDeptIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getDeptId).map(Long::valueOf).collect(Collectors.toSet())); + adminUserDO.setCompanyIds(companyDeptInfoListByUserId.stream().map(CompanyDeptInfo::getCompanyId).map(Long::valueOf).collect(Collectors.toSet())); adminUserDO.setCompanyDeptInfos(companyDeptInfoListByUserId); String deptNames = companyDeptInfoListByUserId.stream() .map(CompanyDeptInfo::getDeptName) From af7f103a38b1098a6b0280c70d9c3dda9913bd2c Mon Sep 17 00:00:00 2001 From: chenbowen Date: Thu, 13 Nov 2025 21:39:27 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=E9=83=A8=E9=97=A8id=E4=B8=8E=E5=85=AC?= =?UTF-8?q?=E5=8F=B8id=E7=B1=BB=E5=9E=8B=E4=B8=BA=20string?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/util/BusinessDeptHandleUtil.java | 2 +- .../BusinessHeaderInterceptorTest.java | 37 ++++++++++--------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java index 474e1cd8..ef47614e 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/main/java/com/zt/plat/framework/business/core/util/BusinessDeptHandleUtil.java @@ -47,7 +47,7 @@ public class BusinessDeptHandleUtil { if (companyIdHeader != null && !companyIdHeader.isBlank()) { // 根据请求头中的公司 ID 过滤出当前用户的公司部门信息 Set companyDeptSetByCompanyId = companyDeptSet.stream() - .filter(companyDeptInfo -> companyDeptInfo.getCompanyId().toString().equals(companyIdHeader)) + .filter(companyDeptInfo -> companyDeptInfo.getCompanyId().equals(companyIdHeader)) .collect(Collectors.toSet()); if (companyDeptSetByCompanyId.isEmpty()) { // 当前公司下没有部门 diff --git a/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java b/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java index 3f67fb81..8e600c27 100644 --- a/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java +++ b/zt-framework/zt-spring-boot-starter-biz-business/src/test/java/com/zt/plat/framework/business/interceptor/BusinessHeaderInterceptorTest.java @@ -3,7 +3,6 @@ package com.zt.plat.framework.business.interceptor; import com.zt.plat.framework.common.enums.UserTypeEnum; import com.zt.plat.framework.common.pojo.CompanyDeptInfo; import com.zt.plat.framework.security.core.LoginUser; -import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import org.junit.jupiter.api.BeforeEach; @@ -12,10 +11,14 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio import org.springframework.web.method.HandlerMethod; import java.io.PrintWriter; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import static com.zt.plat.framework.test.core.util.RandomUtils.randomPojo; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.Mockito.*; import static org.springframework.security.core.context.SecurityContextHolder.getContext; @@ -104,11 +107,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,包含多个公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2); @@ -138,8 +141,8 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,只有一个公司且公司下只有一个部门 CompanyDeptInfo deptInfo = new CompanyDeptInfo(); - deptInfo.setCompanyId(100L); - deptInfo.setDeptId(200L); + deptInfo.setCompanyId(String.valueOf(100L)); + deptInfo.setDeptId(String.valueOf(200L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo); LoginUser loginUser = randomPojo(LoginUser.class, o -> o.setId(1L) @@ -169,11 +172,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,多个公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2); @@ -204,11 +207,11 @@ class BusinessHeaderInterceptorTest { // 构造 loginUser,只有其他公司部门 CompanyDeptInfo deptInfo1 = new CompanyDeptInfo(); - deptInfo1.setCompanyId(1L); - deptInfo1.setDeptId(2L); + deptInfo1.setCompanyId(String.valueOf(1L)); + deptInfo1.setDeptId(String.valueOf(2L)); CompanyDeptInfo deptInfo2 = new CompanyDeptInfo(); - deptInfo2.setCompanyId(2L); - deptInfo2.setDeptId(3L); + deptInfo2.setCompanyId(String.valueOf(2L)); + deptInfo2.setDeptId(String.valueOf(3L)); Set deptSet = new HashSet<>(); deptSet.add(deptInfo1); deptSet.add(deptInfo2);