Jelajahi Sumber

#FIX 用户角色反显

谭斌 2 tahun lalu
induk
melakukan
e13796040e

+ 9 - 3
authorize-api-service/src/main/java/com/xy/service/impl/SysWorkUserServiceImpl.java

@@ -220,15 +220,21 @@ public class SysWorkUserServiceImpl extends ServiceImpl<SysWorkUserMapper, SysWo
     @ApiOperation("集合查询")
     public R<List<SysWorkVo>> list(ListDto listDto) {
         Long sysId = listDto.getSysId();
+        //部门分配为可选,先判断是否存在
+        List<SysUserDept> sysUserDepts = sysUserDeptService.list(Wrappers.<SysUserDept>lambdaQuery().eq(SysUserDept::getSysId, sysId).eq(SysUserDept::getWorkUserId, listDto.getId()));
+
         //条件构造
         JoinLambdaWrapper<SysWorkUser> joinLambdaWrapper = new JoinLambdaWrapper<>(SysWorkUser.class)
                 .in(SysWorkUser::getId, listDto.getId())
                 .leftJoin(SysUserRole.class, SysUserRole::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserRole::getSysId, sysId)
                 .manyToManySelect(SysWorkVo::getRoleIds, Long.class, cb -> cb.add(SysUserRole::getRoleId))
-                .end()
-                .leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
-                .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
                 .end();
+        if (CollUtil.isNotEmpty(sysUserDepts)) {
+            joinLambdaWrapper.leftJoin(SysUserDept.class, SysUserDept::getWorkUserId, SysWorkUser::getId).eq(sysId != null, SysUserDept::getSysId, sysId)
+                    .manyToManySelect(SysWorkVo::getDeptIds, Long.class, cb -> cb.add(SysUserDept::getDeptId))
+                    .end();
+        }
+
         //查询数据
         List<SysWorkVo> sysWorkVos = baseMapper.joinSelectList(joinLambdaWrapper, SysWorkVo.class);
         if (sysWorkVos.size() > 0) {