Pu Zhibing
2025-03-28 e1ea85f4d18916efcd568b9b886a20184c2daeb2
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -14,7 +14,6 @@
import com.ruoyi.system.api.domain.SysDept;
import com.ruoyi.system.api.domain.SysRole;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.model.UserShop;
import com.ruoyi.system.api.query.ChangeUserQuery;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.domain.SysUserPost;
@@ -31,7 +30,9 @@
import javax.annotation.Resource;
import javax.validation.Validator;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
@@ -42,28 +43,20 @@
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
   private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
   @Resource
   private SysUserMapper userMapper;
   @Resource
   private SysRoleMapper roleMapper;
   @Resource
   private SysPostMapper postMapper;
   @Resource
   private SysUserRoleMapper userRoleMapper;
   @Resource
   private SysUserPostMapper userPostMapper;
   @Resource
   private ISysConfigService configService;
   @Resource
   protected Validator validator;
   @Resource
   private SysUserMapper userMapper;
   @Resource
   private SysRoleMapper roleMapper;
   @Resource
   private SysPostMapper postMapper;
   @Resource
   private SysUserRoleMapper userRoleMapper;
   @Resource
   private SysUserPostMapper userPostMapper;
   @Resource
   private ISysConfigService configService;
   @Resource
   private ISysUserRoleService sysUserRoleService;
   
@@ -72,7 +65,7 @@
   
   @Resource
   private TokenService tokenService;
   @Lazy
   @Resource
   private ISysDeptService deptService;
@@ -127,6 +120,7 @@
   public SysUser selectUserByUserName(String userName) {
      return userMapper.selectUserByUserName(userName);
   }
   @Override
   public SysUser selectUserShopByUserName(String userName) {
      return userMapper.selectUserShopByUserName(userName);
@@ -362,6 +356,7 @@
   public int resetUserPwd(String userName, String password) {
      return userMapper.resetUserPwd(userName, password);
   }
   @Override
   public int resetUserShopPwd(String userName, String password) {
      return userMapper.resetUserShopPwd(userName, password);
@@ -441,18 +436,12 @@
   @Override
   @Transactional(rollbackFor = Exception.class)
   public void deleteUserByIds(Long[] userIds) {
        Long userid = tokenService.getLoginUser().getUserid();
        SysUser sysUser = this.getById(userid);
        for (Long userId : userIds) {
      for (Long userId : userIds) {
         checkUserAllowed(new SysUser(userId));
      }
      List<SysUser> sysUsers = this.listByIds(Arrays.asList(userIds));
      for (SysUser user : sysUsers) {
         if(2 == user.getRoleType()){
            userShopService.remove(new LambdaQueryWrapper<UserShop>().eq(UserShop::getUserId, user.getUserId()).eq(UserShop::getShopId, sysUser.getObjectId()));
            }else{
            userMapper.deleteUserById(user.getUserId());
            }
         userMapper.deleteUserById(user.getUserId());
      }
   }
   
@@ -516,38 +505,22 @@
   
   @Override
   public PageInfo<SysUser> getList(PageInfo<SysUser> pageInfo, GetSysUserList getSysUserList) {
      Long userid = tokenService.getLoginUser().getUserid();
      SysUser sysUser1 = this.getById(userid);
      if(sysUser1.getRoleType() == 2){
         getSysUserList.setObjectId(sysUser1.getObjectId());
      }
      List<SysUser> list = this.baseMapper.getList(pageInfo, getSysUserList);
      for (SysUser sysUser : list) {
         if(sysUser.getRoleType() == 2){
            UserShop userShop = userShopService.getOne(new LambdaQueryWrapper<UserShop>().eq(UserShop::getShopId, sysUser1.getObjectId()).eq(UserShop::getUserId, sysUser.getUserId()));
            SysRole sysRole = roleMapper.selectRoleById(userShop.getRoleId());
            Long[] roleIds = new Long[]{userShop.getRoleId()};
            sysUser.setNickName(userShop.getNickName());
            sysUser.setRoleIds(roleIds);
            sysUser.setRoleNames(Arrays.asList(sysRole.getRoleName()));
            SysDept sysDept = deptService.selectDeptById(userShop.getDeptId());
            sysUser.setDept(sysDept);
         }else{
            List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
            List<String> roleNames = new ArrayList<>();
            for (SysUserRole sysUserRole : list1) {
               SysRole sysRole = sysRoleService.selectRoleById(sysUserRole.getRoleId());
               if(null == sysRole){
                  continue;
               }
               roleNames.add(sysRole.getRoleName());
         List<SysUserRole> list1 = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>().eq(SysUserRole::getUserId, sysUser.getUserId()));
         List<String> roleNames = new ArrayList<>();
         for (SysUserRole sysUserRole : list1) {
            SysRole sysRole = sysRoleService.selectRoleById(sysUserRole.getRoleId());
            if (null == sysRole) {
               continue;
            }
            Long[] roleIds = new Long[]{};
            sysUser.setRoleIds(list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()).toArray(roleIds));
            sysUser.setRoleNames(roleNames);
            SysDept sysDept = deptService.selectDeptById(sysUser.getDeptId());
            sysUser.setDept(sysDept);
            roleNames.add(sysRole.getRoleName());
         }
         Long[] roleIds = new Long[]{};
         sysUser.setRoleIds(list1.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()).toArray(roleIds));
         sysUser.setRoleNames(roleNames);
         SysDept sysDept = deptService.selectDeptById(sysUser.getDeptId());
         sysUser.setDept(sysDept);
      }
      return pageInfo.setRecords(list);
   }
@@ -571,7 +544,7 @@
   public PageInfo<SysUser> getChangeUserList(ChangeUserQuery query) {
      Long userid = tokenService.getLoginUser().getUserid();
      SysUser sysUser1 = this.getById(userid);
      if(sysUser1.getRoleType() == 2){
      if (sysUser1.getRoleType() == 2) {
         query.setObjectId(sysUser1.getObjectId());
      }
      PageInfo<SysUser> pageInfo = new PageInfo<>(query.getPageCurr(), query.getPageSize());