|
@@ -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;
|
|
|
}
|
|
|
|
|
|
/**
|