From 05539149c8fbf213d04c5f6a8118f58f6ef9c789 Mon Sep 17 00:00:00 2001 From: wsm <2746563060@侵权。> Date: Fri, 24 Apr 2026 16:53:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E8=BE=93=E5=85=A5=E7=9A=84us?= =?UTF-8?q?erId=EF=BC=8C=E8=BF=94=E5=9B=9E=E6=8E=92=E5=BA=8F=E5=90=8E?= =?UTF-8?q?=E7=9A=84=E6=89=80=E6=9C=89=E4=BA=8C=E7=BA=A7=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysUserController.java | 13 ++++++++ .../system/service/ISysUserDepartService.java | 7 +++++ .../impl/SysUserDepartServiceImpl.java | 30 ++++++++++++++++--- 3 files changed, 46 insertions(+), 4 deletions(-) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java index 5cd140d..78e66cb 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/controller/SysUserController.java @@ -845,6 +845,17 @@ public class SysUserController { return Result.ok(pageList); } + /** + * 根据输入的userId查询排序号后的所有的一级部门 + */ + @GetMapping("/getOrderedDepartListByUserId") + @Operation(summary = "获取用户所在的排序后的一级部门") + public Result getOrderedDepartListByUserId( + @RequestParam(name = "userId") String userId + ) { + return Result.ok(sysUserDepartService.getOrderedDepartListById(userId)); + } + /** * 根据 orgCode 查询用户,包括子部门下的用户 * 针对通讯录模块做的接口,将多个部门的用户合并成一条记录,并转成对前端友好的格式 @@ -1990,4 +2001,6 @@ public class SysUserController { sysUserService.updatePasswordNotBindPhone(oldPassword, password, username); return Result.OK("修改密码成功!"); } + + } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java index 761e377..c8aa977 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/ISysUserDepartService.java @@ -4,6 +4,7 @@ package org.jeecg.modules.system.service; import java.util.List; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.jeecg.modules.system.entity.SysDepart; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.entity.SysUserDepart; import org.jeecg.modules.system.model.DepartIdModel; @@ -101,4 +102,10 @@ public interface ISysUserDepartService extends IService { * @return */ List getUsersByDepartTenantId(String departId,Integer tenantId); + + /** + * 根据用户Id按序返回一级部门列表 + * @param userId + */ + List getOrderedDepartListById(String userId); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java index df327e9..7a9f33d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/system/service/impl/SysUserDepartServiceImpl.java @@ -1,5 +1,6 @@ package org.jeecg.modules.system.service.impl; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -13,10 +14,7 @@ import org.jeecg.common.constant.SymbolConstant; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.mybatis.MybatisPlusSaasConfig; -import org.jeecg.modules.system.entity.SysDepart; -import org.jeecg.modules.system.entity.SysUser; -import org.jeecg.modules.system.entity.SysUserDepart; -import org.jeecg.modules.system.entity.SysUserRole; +import org.jeecg.modules.system.entity.*; import org.jeecg.modules.system.mapper.SysUserDepartMapper; import org.jeecg.modules.system.mapper.SysUserMapper; import org.jeecg.modules.system.mapper.SysUserTenantMapper; @@ -491,4 +489,28 @@ public class SysUserDepartServiceImpl extends ServiceImpl getOrderedDepartListById(String userId) { + if(StringUtils.isBlank(userId)){ + return Collections.emptyList(); + } + List deptIdList = this.lambdaQuery() + .eq(SysUserDepart::getUserId, userId) // 建议变量名改为小写 userId + .list() + .stream() + .map(SysUserDepart::getDepId) + .collect(Collectors.toList()); + + if (CollUtil.isNotEmpty(deptIdList)) { + + List sortedDeparts = sysDepartService.lambdaQuery() + .in(SysDepart::getId, deptIdList) // 范围限定在这些 ID 内 + .eq(SysDepart::getOrgType, 2) // 这里的 "SomeField" 替换成你那个要求值为 1 的字段名 + .orderByAsc(SysDepart::getDepartOrder) // 直接在 SQL 层面完成排序 + .list(); + + return sortedDeparts; + } + return Collections.emptyList(); + } }