Pu Zhibing
2024-11-27 c17ee7624b28485794e956a17631ce2d41a623ff
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -1,21 +1,27 @@
package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.validation.Validator;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.chargingPile.api.feignClient.SiteClient;
import com.ruoyi.chargingPile.api.model.Site;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanValidators;
import com.ruoyi.common.core.web.page.PageInfo;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.other.api.feignClient.RoleSiteClient;
import com.ruoyi.other.api.feignClient.UserSiteClient;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.query.ChangeUserQuery;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.query.GetSysUserList;
import com.ruoyi.system.service.ISysConfigService;
import com.ruoyi.system.service.ISysRoleService;
@@ -23,24 +29,17 @@
import com.ruoyi.system.service.ISysUserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.SpringUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanValidators;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.mapper.SysPostMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.SysUserPostMapper;
import com.ruoyi.system.mapper.SysUserRoleMapper;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * 用户 业务层处理
@@ -74,6 +73,15 @@
   
   @Resource
   private ISysUserRoleService sysUserRoleService;
   @Resource
   private RoleSiteClient roleSiteClient;
   @Resource
   private UserSiteClient userSiteClient;
   @Resource
   private SiteClient siteClient;
   
   @Resource
   private ISysRoleService sysRoleService;
@@ -515,6 +523,35 @@
   @Override
   public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) {
      List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList);
      for (SysUser sysUser : list) {
         List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
         List<Integer> data1 = userSiteClient.getSiteIds(sysUser.getUserId()).getData();
         if (null == data1) {
            data1 = new ArrayList<>();
         }
         for (SysUserRole sysUserRole : list1) {
            List<Integer> data = roleSiteClient.getSiteIds(sysUserRole.getRoleId()).getData();
            if (null == data) {
               continue;
            }
            data1.addAll(data);
         }
         Set<Integer> siteIds = new HashSet<>(data1);
         List<Site> data = siteClient.getSiteByIds(siteIds.stream().collect(Collectors.toList())).getData();
         if (null != data) {
            List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList());
            sysUser.setSiteNames(siteNames);
            sysUser.setSiteIds(data.stream().map(Site::getId).collect(Collectors.toList()));
         }
         List<String> roleNames = new ArrayList<>();
         for (SysUserRole sysUserRole : list1) {
            SysRole sysRole = sysRoleService.selectRoleById(sysUserRole.getRoleId());
            roleNames.add(sysRole.getRoleName());
         }
         Long[] roleIds = new Long[]{};
         sysUser.setRoleIds(list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()).toArray(roleIds));
         sysUser.setRoleNames(roleNames);
      }
      return pageInfo.setRecords(list);
   }