|
@@ -1,7 +1,16 @@
|
|
|
package cn.com.ctop.common.module.service.impl;
|
|
|
|
|
|
-import cn.com.ctop.common.module.entity.*;
|
|
|
-import cn.com.ctop.common.module.mapper.*;
|
|
|
+import cn.com.ctop.common.module.entity.SysDepartRole;
|
|
|
+import cn.com.ctop.common.module.entity.SysDepartRoleUser;
|
|
|
+import cn.com.ctop.common.module.entity.SysRole;
|
|
|
+import cn.com.ctop.common.module.entity.SysUserDepart;
|
|
|
+import cn.com.ctop.common.module.mapper.SysDepartMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysDepartRoleMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysDepartRoleUserMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysPermissionMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysRoleMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysUserDepartMapper;
|
|
|
+import cn.com.ctop.common.module.mapper.SysUserMapper;
|
|
|
import cn.com.ctop.common.module.model.SysUserSysDepartModel;
|
|
|
import cn.com.ctop.common.module.service.ISysUserService;
|
|
|
import cn.com.ctop.common.module.utils.Check;
|
|
@@ -14,7 +23,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
-import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.constant.CacheConstant;
|
|
|
import org.jeecg.common.constant.CommonConstant;
|
|
@@ -40,7 +48,14 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
-import java.util.*;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Collection;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -106,7 +121,6 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
@Override
|
|
|
public List<SysUserVo> getAllUser(String userName, String status) {
|
|
|
return userMapper.getAllUser(userName, status);
|
|
@@ -150,25 +164,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- *
|
|
|
- * @description: 修改用户 设计组长姓名
|
|
|
- *用户 分配角色 为 设计组长 用户设计组长姓名 为自己真实姓名
|
|
|
- * @param userId 用户id
|
|
|
+ * @param userId 用户id
|
|
|
* @param userName 设计组长姓名
|
|
|
- * @param roleId 角色id
|
|
|
+ * @param roleId 角色id
|
|
|
+ * @description: 修改用户 设计组长姓名
|
|
|
+ * 用户 分配角色 为 设计组长 用户设计组长姓名 为自己真实姓名
|
|
|
* @return: java.lang.Integer
|
|
|
* @author: zianY
|
|
|
*/
|
|
|
@Override
|
|
|
- public Integer updUserDesignLeaderById(String userId,String userName,String roleId) {
|
|
|
+ public Integer updUserDesignLeaderById(String userId, String userName, String roleId) {
|
|
|
String designTeamLeaderName = "";
|
|
|
- if (!Check.isNull(roleId)){
|
|
|
+ if (!Check.isNull(roleId)) {
|
|
|
SysRole sysRole = sysRoleMapper.selectById(roleId);
|
|
|
- if ("designTeamLeader".equals(sysRole.getRoleCode())){
|
|
|
+ if ("designTeamLeader".equals(sysRole.getRoleCode())) {
|
|
|
designTeamLeaderName = userName;
|
|
|
}
|
|
|
}
|
|
|
- return userMapper.updUserDesignLeaderById(userId,designTeamLeaderName);
|
|
|
+ return userMapper.updUserDesignLeaderById(userId, designTeamLeaderName);
|
|
|
}
|
|
|
|
|
|
|
|
@@ -215,7 +228,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean deleteUser(String userId) {
|
|
|
//1.删除用户
|
|
@@ -224,7 +237,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public boolean deleteBatchUsers(String userIds) {
|
|
|
//1.删除用户
|
|
@@ -242,7 +255,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Transactional
|
|
|
public void addUserWithRole(SysUser user, String roles) {
|
|
|
this.save(user);
|
|
|
- if(oConvertUtils.isNotEmpty(roles)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(roles)) {
|
|
|
String[] arr = roles.split(",");
|
|
|
for (String roleId : arr) {
|
|
|
SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
@@ -252,13 +265,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
@Transactional
|
|
|
public void editUserWithRole(SysUser user, String roles) {
|
|
|
this.updateById(user);
|
|
|
//先删后加
|
|
|
sysUserRoleMapper.delete(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, user.getId()));
|
|
|
- if(oConvertUtils.isNotEmpty(roles)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(roles)) {
|
|
|
String[] arr = roles.split(",");
|
|
|
for (String roleId : arr) {
|
|
|
SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
@@ -275,6 +288,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
/**
|
|
|
* 通过用户名获取用户角色集合
|
|
|
+ *
|
|
|
* @param username 用户名
|
|
|
* @return 角色集合
|
|
|
*/
|
|
@@ -305,7 +319,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
permissionSet.add(po.getPerms());
|
|
|
}
|
|
|
}
|
|
|
- log.info("-------通过数据库读取用户拥有的权限Perms------username: "+ username+",Perms size: "+ (permissionSet==null?0:permissionSet.size()) );
|
|
|
+ log.info("-------通过数据库读取用户拥有的权限Perms------username: " + username + ",Perms size: " + (permissionSet == null ? 0 : permissionSet.size()));
|
|
|
return permissionSet;
|
|
|
}
|
|
|
|
|
@@ -319,7 +333,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
|
|
|
LoginUser user = sysBaseApi.getUserByName(username);
|
|
|
- if(user!=null) {
|
|
|
+ if (user != null) {
|
|
|
info.setSysUserCode(user.getUsername());
|
|
|
info.setSysUserName(user.getRealname());
|
|
|
info.setSysOrgCode(user.getOrgCode());
|
|
@@ -328,12 +342,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
//多部门支持in查询
|
|
|
List<SysDepart> list = sysDepartMapper.queryUserDeparts(user.getId());
|
|
|
List<String> sysMultiOrgCode = new ArrayList<String>();
|
|
|
- if(list==null || list.size()==0) {
|
|
|
+ if (list == null || list.size() == 0) {
|
|
|
//当前用户无部门
|
|
|
//sysMultiOrgCode.add("0");
|
|
|
- }else if(list.size()==1) {
|
|
|
+ } else if (list.size() == 1) {
|
|
|
sysMultiOrgCode.add(list.get(0).getOrgCode());
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
info.setOneDepart(false);
|
|
|
for (SysDepart dpt : list) {
|
|
|
sysMultiOrgCode.add(dpt.getOrgCode());
|
|
@@ -346,13 +360,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
// 根据部门Id查询
|
|
|
@Override
|
|
|
- public IPage<SysUser> getUserByDepId(Page<SysUser> page, String departId,String username) {
|
|
|
- return userMapper.getUserByDepId(page, departId,username);
|
|
|
+ public IPage<SysUser> getUserByDepId(Page<SysUser> page, String departId, String username) {
|
|
|
+ return userMapper.getUserByDepId(page, departId, username);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public IPage<SysUser> getUserByDepIds(Page<SysUser> page, List<String> departIds, String username) {
|
|
|
- return userMapper.getUserByDepIds(page, departIds,username);
|
|
|
+ return userMapper.getUserByDepIds(page, departIds, username);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -393,13 +407,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
// 根据角色Id查询
|
|
|
@Override
|
|
|
public IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username) {
|
|
|
- return userMapper.getUserByRoleId(page,roleId,username);
|
|
|
+ return userMapper.getUserByRoleId(page, roleId, username);
|
|
|
}
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, key="#username")
|
|
|
- public void updateUserDepart(String username,String orgCode) {
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, key = "#username")
|
|
|
+ public void updateUserDepart(String username, String orgCode) {
|
|
|
baseMapper.updateUserDepart(username, orgCode);
|
|
|
}
|
|
|
|
|
@@ -419,7 +433,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
@Transactional
|
|
|
public void addUserWithDepart(SysUser user, String selectedParts) {
|
|
|
// this.save(user); //保存角色的时候已经添加过一次了
|
|
|
- if(oConvertUtils.isNotEmpty(selectedParts)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(selectedParts)) {
|
|
|
String[] arr = selectedParts.split(",");
|
|
|
for (String deaprtId : arr) {
|
|
|
SysUserDepart userDeaprt = new SysUserDepart(user.getId(), deaprtId);
|
|
@@ -431,32 +445,32 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
public void editUserWithDepart(SysUser user, String departs) {
|
|
|
this.updateById(user); //更新角色的时候已经更新了一次了,可以再跟新一次
|
|
|
String[] arr = {};
|
|
|
- if(oConvertUtils.isNotEmpty(departs)){
|
|
|
+ if (oConvertUtils.isNotEmpty(departs)) {
|
|
|
arr = departs.split(",");
|
|
|
}
|
|
|
//查询已关联部门
|
|
|
List<SysUserDepart> userDepartList = sysUserDepartMapper.selectList(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
- if(userDepartList != null && userDepartList.size()>0){
|
|
|
- for(SysUserDepart depart : userDepartList ){
|
|
|
+ if (userDepartList != null && userDepartList.size() > 0) {
|
|
|
+ for (SysUserDepart depart : userDepartList) {
|
|
|
//修改已关联部门删除部门用户角色关系
|
|
|
- if(!Arrays.asList(arr).contains(depart.getDepId())){
|
|
|
+ if (!Arrays.asList(arr).contains(depart.getDepId())) {
|
|
|
List<SysDepartRole> sysDepartRoleList = sysDepartRoleMapper.selectList(
|
|
|
- new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId,depart.getDepId()));
|
|
|
+ new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId, depart.getDepId()));
|
|
|
List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList());
|
|
|
- if(roleIds != null && roleIds.size()>0){
|
|
|
+ if (roleIds != null && roleIds.size() > 0) {
|
|
|
departRoleUserMapper.delete(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, user.getId())
|
|
|
- .in(SysDepartRoleUser::getDroleId,roleIds));
|
|
|
+ .in(SysDepartRoleUser::getDroleId, roleIds));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//先删后加
|
|
|
sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
- if(oConvertUtils.isNotEmpty(departs)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(departs)) {
|
|
|
for (String departId : arr) {
|
|
|
SysUserDepart userDepart = new SysUserDepart(user.getId(), departId);
|
|
|
sysUserDepartMapper.insert(userDepart);
|
|
@@ -467,6 +481,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
/**
|
|
|
* 校验用户是否有效
|
|
|
+ *
|
|
|
* @param sysUser
|
|
|
* @return
|
|
|
*/
|
|
@@ -564,7 +579,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
@Override
|
|
|
public List<SysUser> queryByDepIds(List<String> departIds, String username) {
|
|
|
- return userMapper.queryByDepIds(departIds,username);
|
|
|
+ return userMapper.queryByDepIds(departIds, username);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -573,7 +588,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
//step.1 保存用户
|
|
|
this.save(user);
|
|
|
//step.2 保存角色
|
|
|
- if(oConvertUtils.isNotEmpty(selectedRoles)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(selectedRoles)) {
|
|
|
String[] arr = selectedRoles.split(",");
|
|
|
for (String roleId : arr) {
|
|
|
SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
@@ -581,7 +596,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
}
|
|
|
//step.3 保存所属部门
|
|
|
- if(oConvertUtils.isNotEmpty(selectedDeparts)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(selectedDeparts)) {
|
|
|
String[] arr = selectedDeparts.split(",");
|
|
|
for (String deaprtId : arr) {
|
|
|
SysUserDepart userDeaprt = new SysUserDepart(user.getId(), deaprtId);
|
|
@@ -592,14 +607,14 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
public void editUser(SysUser user, String roles, String departs) {
|
|
|
//step.1 修改用户基础信息
|
|
|
this.updateById(user);
|
|
|
//step.2 修改角色
|
|
|
//处理用户角色 先删后加
|
|
|
sysUserRoleMapper.delete(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, user.getId()));
|
|
|
- if(oConvertUtils.isNotEmpty(roles)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(roles)) {
|
|
|
String[] arr = roles.split(",");
|
|
|
for (String roleId : arr) {
|
|
|
SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
@@ -609,28 +624,28 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
|
|
|
//step.3 修改部门
|
|
|
String[] arr = {};
|
|
|
- if(oConvertUtils.isNotEmpty(departs)){
|
|
|
+ if (oConvertUtils.isNotEmpty(departs)) {
|
|
|
arr = departs.split(",");
|
|
|
}
|
|
|
//查询已关联部门
|
|
|
List<SysUserDepart> userDepartList = sysUserDepartMapper.selectList(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
- if(userDepartList != null && userDepartList.size()>0){
|
|
|
- for(SysUserDepart depart : userDepartList ){
|
|
|
+ if (userDepartList != null && userDepartList.size() > 0) {
|
|
|
+ for (SysUserDepart depart : userDepartList) {
|
|
|
//修改已关联部门删除部门用户角色关系
|
|
|
- if(!Arrays.asList(arr).contains(depart.getDepId())){
|
|
|
+ if (!Arrays.asList(arr).contains(depart.getDepId())) {
|
|
|
List<SysDepartRole> sysDepartRoleList = sysDepartRoleMapper.selectList(
|
|
|
- new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId,depart.getDepId()));
|
|
|
+ new QueryWrapper<SysDepartRole>().lambda().eq(SysDepartRole::getDepartId, depart.getDepId()));
|
|
|
List<String> roleIds = sysDepartRoleList.stream().map(SysDepartRole::getId).collect(Collectors.toList());
|
|
|
- if(roleIds != null && roleIds.size()>0){
|
|
|
+ if (roleIds != null && roleIds.size() > 0) {
|
|
|
departRoleUserMapper.delete(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, user.getId())
|
|
|
- .in(SysDepartRoleUser::getDroleId,roleIds));
|
|
|
+ .in(SysDepartRoleUser::getDroleId, roleIds));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//先删后加
|
|
|
sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
- if(oConvertUtils.isNotEmpty(departs)) {
|
|
|
+ if (oConvertUtils.isNotEmpty(departs)) {
|
|
|
for (String departId : arr) {
|
|
|
SysUserDepart userDepart = new SysUserDepart(user.getId(), departId);
|
|
|
sysUserDepartMapper.insert(userDepart);
|
|
@@ -655,4 +670,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
public List<SysUser> queryAdminPageList(SysUser user) {
|
|
|
return userMapper.queryPageList(user);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getItsPersonnelIds(List<String> rids, String userId) {
|
|
|
+ List<String> ids = userMapper.getUserIdsByLeaderId(userId);
|
|
|
+ rids.add(userId);
|
|
|
+ if (!Check.isNull(ids)) {
|
|
|
+ for (String id : ids) {
|
|
|
+ getItsPersonnelIds(rids, id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|