Ver código fonte

pref: selectUserList 2

shc 9 meses atrás
pai
commit
3ab67d2974

+ 0 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/SysUserController.java

@@ -1101,10 +1101,6 @@ public class SysUserController {
         //  获取全部的可用角色
         Map<Integer, SysRole> roleId2RoleMap = roleService.list().stream().collect(Collectors.toMap(SysRole::getRoleId, Function.identity()));
 
-
-        // 操作人
-        HnqzUser user = SecurityUtils.getUser();
-
         // 获取操作人的角色
         Set<Integer> operatorRoleIds = new HashSet<>(SecurityUtils.getRoles());
 

+ 33 - 5
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/SysUserServiceImpl.java

@@ -56,6 +56,7 @@ import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.SetUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.cache.annotation.CacheEvict;
@@ -243,22 +244,49 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     @Override
     public Page<SysUser> pageUser(SysUserDTO.OnPage query, HnqzUser operator) {
 
-        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.lambdaQuery();
+        Page<SysUser> toPage = new Page<>(query.getCurrent(), query.getSize());
 
+        List<Long> areas;
+        if (CollUtil.isNotEmpty(query.getAreaCodes())) {
+            areas = query.getAreaCodes();
+        } else {
+            areas = userAreaService.listUserAreas(Long.valueOf(operator.getId()));
+            if (CollUtil.isNotEmpty(areas)) {
+                areas = areaEntityService.list(Wrappers.<SysAreaEntity>lambdaQuery()
+                                .in(SysAreaEntity::getAreaId, areas)
+                                .eq(SysAreaEntity::getAreaStatus, Boolean.TRUE)
+                                .eq(SysAreaEntity::getAreaType, UpmsType.AreaType.DISTRICT))
+                        .stream()
+                        .mapToLong(SysAreaEntity::getAreaId).boxed().distinct().collect(Collectors.toList());
+            }
+
+        }
+
+        Set<Integer> areaUserIds = userAreaService.listAreaUser(areas).stream().map(Long::intValue).collect(Collectors.toSet());
 
-        Set<Integer> userIdByRoleIdSet = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getRoleId, query.getFinalQueryRoleIds())).stream().mapToInt(SysUserRole::getUserId).boxed().collect(Collectors.toSet());
 
+        if (CollUtil.isEmpty(areaUserIds)) {
+            return toPage;
+        }
+
+        Set<Integer> userIdByRoleIdSet = sysUserRoleService.list(Wrappers.<SysUserRole>lambdaQuery()
+                .in(SysUserRole::getUserId, areaUserIds)
+                .in(SysUserRole::getRoleId, query.getFinalQueryRoleIds())).stream().mapToInt(SysUserRole::getUserId).boxed().collect(Collectors.toSet());
+
+        if (CollUtil.isEmpty(userIdByRoleIdSet)) {
+            return toPage;
+        }
 
-        queryWrapper
+        LambdaQueryWrapper<SysUser> queryWrapper = Wrappers.<SysUser>lambdaQuery()
                 .like(StrUtil.isNotBlank(query.getUsername()), SysUser::getUsername, query.getUsername())
                 .like(StrUtil.isNotBlank(query.getRealName()), SysUser::getRealname, query.getRealName())
                 .eq(StrUtil.isNotBlank(query.getLockFlag()), SysUser::getLockFlag, query.getLockFlag())
                 .eq(query.getDeptId() != null, SysUser::getDeptId, query.getDeptId())
                 .in(SysUser::getUserId, userIdByRoleIdSet);
 
-        Page<SysUser> page = this.page(new Page<>(query.getCurrent(), query.getSize()), queryWrapper);
+        this.page(toPage, queryWrapper);
 
-        return page;
+        return toPage;
     }
 
     /**