package com.tievd.cube.modules.system.service.impl; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tievd.cube.modules.system.mapper.SysUserDepartMapper; import com.tievd.cube.modules.system.model.DepartIdModel; import com.tievd.cube.modules.system.service.ISysDepartService; import com.tievd.cube.modules.system.service.ISysUserDepartService; import com.tievd.cube.modules.system.service.ISysUserService; import com.tievd.cube.modules.system.entity.SysDepart; import com.tievd.cube.modules.system.entity.SysUser; import com.tievd.cube.modules.system.entity.SysUserDepart; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @Service public class SysUserDepartServiceImpl extends ServiceImpl implements ISysUserDepartService { @Autowired private ISysDepartService sysDepartService; @Autowired private ISysUserService sysUserService; /** * 根据用户id查询部门信息 */ @Override public List queryDepartIdsOfUser(String userId) { LambdaQueryWrapper queryUDep = new LambdaQueryWrapper<>(); LambdaQueryWrapper queryDep = new LambdaQueryWrapper<>(); try { queryUDep.eq(SysUserDepart::getUserId, userId); List depIdList = new ArrayList<>(); List depIdModelList = new ArrayList<>(); List userDepList = this.list(queryUDep); if (userDepList != null && userDepList.size() > 0) { for (SysUserDepart userDepart : userDepList) { depIdList.add(userDepart.getDepId()); } queryDep.in(SysDepart::getId, depIdList); List depList = sysDepartService.list(queryDep); if (depList != null && depList.size() > 0) { for (SysDepart depart : depList) { depIdModelList.add(new DepartIdModel().convertByUserDepart(depart)); } } return depIdModelList; } } catch (Exception e) { e.fillInStackTrace(); } return null; } /** * 根据部门id查询用户信息 */ @Override public List queryUserByDepId(String depId) { LambdaQueryWrapper queryUDep = new LambdaQueryWrapper<>(); queryUDep.eq(SysUserDepart::getDepId, depId); List userIdList = new ArrayList<>(); List uDepList = this.list(queryUDep); if (uDepList != null && uDepList.size() > 0) { for (SysUserDepart uDep : uDepList) { userIdList.add(uDep.getUserId()); } List userList = sysUserService.listByIds(userIdList); //update-begin-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息 for (SysUser sysUser : userList) { sysUser.setSalt(""); sysUser.setPassword(""); } //update-end-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息 return userList; } return new ArrayList<>(); } /** * 根据部门code,查询当前部门和下级部门的 用户信息 */ @Override public List queryUserByDepCode(String depCode, String realname) { LambdaQueryWrapper queryByDepCode = new LambdaQueryWrapper<>(); queryByDepCode.likeRight(SysDepart::getOrgCode, depCode); List sysDepartList = sysDepartService.list(queryByDepCode); List depIds = sysDepartList.stream().map(SysDepart::getId).collect(Collectors.toList()); LambdaQueryWrapper queryUDep = new LambdaQueryWrapper<>(); queryUDep.in(SysUserDepart::getDepId, depIds); List userIdList = new ArrayList<>(); List uDepList = this.list(queryUDep); if (uDepList != null && uDepList.size() > 0) { for (SysUserDepart uDep : uDepList) { userIdList.add(uDep.getUserId()); } LambdaQueryWrapper queryUser = new LambdaQueryWrapper<>(); queryUser.in(SysUser::getId, userIdList); if (StrUtil.isNotEmpty(realname)) { queryUser.like(SysUser::getRealname, realname.trim()); } List userList = sysUserService.list(queryUser); //update-begin-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息 for (SysUser sysUser : userList) { sysUser.setSalt(""); sysUser.setPassword(""); } //update-end-author:taoyan date:201905047 for:接口调用查询返回结果不能返回密码相关信息 return userList; } return new ArrayList<>(); } }