| | |
| | | package com.ruoyi.system.service.impl.sys; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | import javax.validation.Validator; |
| | | 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.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.constant.UserConstants; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | | 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.dto.AppEditUserDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtBaseBathDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtFrozenMemberDto; |
| | | import com.ruoyi.system.api.domain.dto.MgtUserIdByDept; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysRole; |
| | | import com.ruoyi.system.api.domain.poji.sys.SysUser; |
| | | import com.ruoyi.system.api.domain.vo.MgtSysSimpleUserVo; |
| | | import com.ruoyi.system.domain.dto.UserMenuEditDto; |
| | | import com.ruoyi.system.domain.pojo.sys.SysPost; |
| | | import com.ruoyi.system.domain.pojo.sys.SysUserMenu; |
| | | import com.ruoyi.system.domain.pojo.sys.SysUserPost; |
| | | import com.ruoyi.system.domain.pojo.sys.SysUserRole; |
| | | import com.ruoyi.system.mapper.sys.SysPostMapper; |
| | | import com.ruoyi.system.mapper.sys.SysRoleMapper; |
| | | import com.ruoyi.system.mapper.sys.SysUserMapper; |
| | | import com.ruoyi.system.mapper.sys.SysUserPostMapper; |
| | | import com.ruoyi.system.mapper.sys.SysUserRoleMapper; |
| | | import com.ruoyi.system.mapper.sys.*; |
| | | import com.ruoyi.system.service.sys.ISysConfigService; |
| | | import com.ruoyi.system.service.sys.ISysUserService; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.validation.Validator; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * 用户 业务层处理 |
| | | * |
| | | * |
| | | * @author jqs |
| | | */ |
| | | @Service |
| | | public class SysUserServiceImpl implements ISysUserService |
| | | public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService |
| | | { |
| | | private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class); |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private SysUserMapper userMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private SysRoleMapper roleMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private SysPostMapper postMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private SysUserRoleMapper userRoleMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private SysUserPostMapper userPostMapper; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | private ISysConfigService configService; |
| | | |
| | | @Autowired |
| | | @Resource |
| | | protected Validator validator; |
| | | |
| | | @Resource |
| | | protected SysUserMenuMapper userMenuMapper; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 根据条件分页查询用户列表 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 用户信息集合信息 |
| | | */ |
| | |
| | | return userMapper.selectUserList(user); |
| | | } |
| | | |
| | | @Override |
| | | public SysUser selectUserByPhoneNumber(String phoneNumber,String userType) { |
| | | SysUser sysUser = new SysUser(); |
| | | sysUser.setPhonenumber(phoneNumber); |
| | | List<SysUser> userList = this.selectUserList(sysUser); |
| | | SysUser queryUser = null; |
| | | if(!userList.isEmpty()){ |
| | | for(SysUser sysUser1 : userList){ |
| | | if(sysUser1.getUserType().equals(userType)){ |
| | | queryUser = sysUser1; |
| | | } |
| | | } |
| | | } |
| | | return queryUser; |
| | | } |
| | | |
| | | /** |
| | | * 根据条件分页查询已分配用户角色列表 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 用户信息集合信息 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据条件分页查询未分配用户角色列表 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 用户信息集合信息 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 通过用户名查询用户 |
| | | * |
| | | * |
| | | * @param userName 用户名 |
| | | * @return 用户对象信息 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 通过用户ID查询用户 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 用户对象信息 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 查询用户所属角色组 |
| | | * |
| | | * |
| | | * @param userName 用户名 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 查询用户所属岗位组 |
| | | * |
| | | * |
| | | * @param userName 用户名 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 校验用户名称是否唯一 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 校验用户是否允许操作 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | */ |
| | | @Override |
| | |
| | | |
| | | /** |
| | | * 校验用户是否有数据权限 |
| | | * |
| | | * |
| | | * @param userId 用户id |
| | | */ |
| | | @Override |
| | |
| | | |
| | | /** |
| | | * 新增保存用户信息 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 注册用户信息 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | | @Override |
| | | public boolean registerUser(SysUser user) |
| | | public SysUser registerUser(SysUser user) |
| | | { |
| | | return userMapper.insertUser(user) > 0; |
| | | int id = userMapper.insertUser(user); |
| | | log.info("user------------------"+user.toString()); |
| | | return user; |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param mobile |
| | | * @return |
| | | */ |
| | | @Override |
| | | public SysUser getSysUserByMobile(String mobile){ |
| | | SysUser sysUser = this.selectUserByPhoneNumber(mobile,"00"); |
| | | return sysUser; |
| | | } |
| | | |
| | | /** |
| | | * 修改保存用户信息 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 用户授权角色 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @param roleIds 角色组 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 修改用户状态 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 修改用户基本信息 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 修改用户头像 |
| | | * |
| | | * |
| | | * @param userName 用户名 |
| | | * @param avatar 头像地址 |
| | | * @return 结果 |
| | |
| | | |
| | | /** |
| | | * 重置用户密码 |
| | | * |
| | | * |
| | | * @param user 用户信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 重置用户密码 |
| | | * |
| | | * |
| | | * @param userName 用户名 |
| | | * @param password 密码 |
| | | * @return 结果 |
| | |
| | | |
| | | /** |
| | | * 新增用户角色信息 |
| | | * |
| | | * |
| | | * @param user 用户对象 |
| | | */ |
| | | public void insertUserRole(SysUser user) |
| | |
| | | |
| | | /** |
| | | * 新增用户岗位信息 |
| | | * |
| | | * |
| | | * @param user 用户对象 |
| | | */ |
| | | public void insertUserPost(SysUser user) |
| | |
| | | |
| | | /** |
| | | * 新增用户角色信息 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @param roleIds 角色组 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 通过用户ID删除用户 |
| | | * |
| | | * |
| | | * @param userId 用户ID |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 批量删除用户信息 |
| | | * |
| | | * |
| | | * @param userIds 需要删除的用户ID |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 导入用户数据 |
| | | * |
| | | * |
| | | * @param userList 用户数据列表 |
| | | * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 |
| | | * @param operName 操作用户 |
| | |
| | | * @author jqs34 |
| | | * @date: 2023/4/30 15:43 |
| | | */ |
| | | @Override |
| | | public void updateUserMobile(SysUser sysUser){ |
| | | SysUser oldSysUser = this.selectUserById(sysUser.getUserId()); |
| | | oldSysUser.setPhonenumber(sysUser.getPhonenumber()); |
| | | userMapper.updateUser(oldSysUser); |
| | | } |
| | | |
| | | /** |
| | | * |
| | | * @param appEditUserDto |
| | | */ |
| | | @Override |
| | | public void editUserInfo(AppEditUserDto appEditUserDto){ |
| | | SysUser sysUser = this.selectUserById(appEditUserDto.getUserId()); |
| | | //修改类型1.昵称2.头像3.性别4.生日 |
| | | Integer editType = appEditUserDto.getEditType(); |
| | | String editValue = appEditUserDto.getEditValue(); |
| | | switch (editType){ |
| | | case 1: |
| | | break; |
| | | case 2: |
| | | sysUser.setAvatar(editValue); |
| | | sysUser.setUpdateTime(DateUtils.getNowDate()); |
| | | sysUser.setUpdateBy(String.valueOf(appEditUserDto.getUserId())); |
| | | userMapper.updateUser(sysUser); |
| | | break; |
| | | case 3: |
| | | sysUser.setSex(editValue); |
| | | sysUser.setUpdateTime(DateUtils.getNowDate()); |
| | | sysUser.setUpdateBy(String.valueOf(appEditUserDto.getUserId())); |
| | | userMapper.updateUser(sysUser); |
| | | break; |
| | | case 4: |
| | | break; |
| | | case 5: |
| | | sysUser.setNickName(editValue); |
| | | sysUser.setUpdateTime(DateUtils.getNowDate()); |
| | | sysUser.setUpdateBy(String.valueOf(appEditUserDto.getUserId())); |
| | | userMapper.updateUser(sysUser); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @description 获取部门用户 |
| | | * @author jqs |
| | | * @date 2023/6/21 16:00 |
| | | * @param userIdByDept |
| | | * @return MgtUserIdByDept |
| | | */ |
| | | @Override |
| | | public MgtUserIdByDept getUserIdByDept(MgtUserIdByDept userIdByDept){ |
| | | List<Long> userIdList = userMapper.getUserIdByDept(userIdByDept); |
| | | userIdByDept.setUserIdList(userIdList); |
| | | return userIdByDept; |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/25 14:35 |
| | | * @param mgtBaseBathDto |
| | | * @return List<MgtSysSimpleUserVo> |
| | | */ |
| | | @Override |
| | | public List<MgtSysSimpleUserVo> listSimpleUserVo(MgtBaseBathDto mgtBaseBathDto){ |
| | | return userMapper.listSimpleUserVo(mgtBaseBathDto.getIds()); |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/25 16:37 |
| | | * @param userMenuEditDto |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void editUserMenu(UserMenuEditDto userMenuEditDto){ |
| | | SysUser sysUser = this.selectUserById(userMenuEditDto.getUserId()); |
| | | sysUser.setDataScope(userMenuEditDto.getDataScope()); |
| | | sysUser.setDataScopeEmployee(userMenuEditDto.getDataScopeEmployee()); |
| | | userMapper.updateUser(sysUser); |
| | | userMenuMapper.deleteUserMenuByUserId(userMenuEditDto.getUserId()); |
| | | int rows = 1; |
| | | // 新增用户与角色管理 |
| | | List<SysUserMenu> list = new ArrayList<SysUserMenu>(); |
| | | for (Long menuId : userMenuEditDto.getMenuIds()) |
| | | { |
| | | SysUserMenu rm = new SysUserMenu(); |
| | | rm.setUserId(userMenuEditDto.getUserId()); |
| | | rm.setMenuId(menuId); |
| | | rm.setMenuFrom(1); |
| | | list.add(rm); |
| | | } |
| | | for(Long menuId : userMenuEditDto.getStaffMenuIds()){ |
| | | SysUserMenu rm = new SysUserMenu(); |
| | | rm.setUserId(userMenuEditDto.getUserId()); |
| | | rm.setMenuId(menuId); |
| | | rm.setMenuFrom(2); |
| | | list.add(rm); |
| | | } |
| | | if (list.size() > 0) |
| | | { |
| | | rows = userMenuMapper.batchUserMenu(list); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/6/26 10:36 |
| | | * @param sysUser |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void updateOnlyUser(SysUser sysUser){ |
| | | userMapper.updateUser(sysUser); |
| | | } |
| | | |
| | | /** |
| | | * @description |
| | | * @author jqs |
| | | * @date 2023/7/5 21:24 |
| | | * @param mgtFrozenMemberDto |
| | | * @return void |
| | | */ |
| | | @Override |
| | | public void frozenUser(MgtFrozenMemberDto mgtFrozenMemberDto){ |
| | | Long userId = mgtFrozenMemberDto.getId(); |
| | | SysUser sysUser = this.selectUserById(userId); |
| | | if(mgtFrozenMemberDto.getFrozenFlag()==1){ |
| | | sysUser.setStatus("1"); |
| | | }else{ |
| | | sysUser.setStatus("0"); |
| | | } |
| | | userMapper.updateUser(sysUser); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取当前员工权限范围内的员工id |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<Long> getScopeOfAuthorityUserId() { |
| | | List<Long> userIds = new ArrayList<>(); |
| | | Long userId = SecurityUtils.getUserId(); |
| | | SysUser user = this.baseMapper.selectUserById(userId); |
| | | String dataScope = user.getDataScope(); |
| | | //没有配置默认查询自己 |
| | | if(!SecurityUtils.isAdmin(userId) && StringUtils.isEmpty(dataScope)){ |
| | | userIds.add(userId); |
| | | } |
| | | //管理员或者全部权限 |
| | | if(SecurityUtils.isAdmin(userId) || (StringUtils.isNotEmpty(dataScope) && "1".equals(dataScope))){ |
| | | return null; |
| | | } |
| | | //部分权限 |
| | | if(StringUtils.isNotEmpty(dataScope) && "3".equals(dataScope)){ |
| | | SysUser user1 = new SysUser(); |
| | | user1.setUserType("00"); |
| | | user1.setStatus("0"); |
| | | user1.setDeptId(user.getDeptId()); |
| | | List<SysUser> list = this.baseMapper.selectUserList(user1); |
| | | userIds.addAll(list.stream().map(SysUser::getUserId).collect(Collectors.toList())); |
| | | } |
| | | //个人权限 |
| | | if(StringUtils.isNotEmpty(dataScope) && "5".equals(dataScope)){ |
| | | userIds.add(userId); |
| | | } |
| | | return userIds; |
| | | } |
| | | } |