|
@@ -44,51 +44,54 @@ import java.util.stream.Collectors;
|
|
|
@Slf4j
|
|
|
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
|
|
|
|
|
|
- @Autowired
|
|
|
- private SysUserMapper userMapper;
|
|
|
- @Autowired
|
|
|
- private SysPermissionMapper sysPermissionMapper;
|
|
|
- @Autowired
|
|
|
- private SysUserRoleMapper sysUserRoleMapper;
|
|
|
- @Autowired
|
|
|
- private SysUserDepartMapper sysUserDepartMapper;
|
|
|
- @Autowired
|
|
|
- private ISysBaseApi sysBaseAPI;
|
|
|
- @Autowired
|
|
|
- private SysDepartMapper sysDepartMapper;
|
|
|
- @Autowired
|
|
|
- private SysRoleMapper sysRoleMapper;
|
|
|
- @Autowired
|
|
|
- private SysDepartRoleUserMapper departRoleUserMapper;
|
|
|
- @Autowired
|
|
|
- private SysDepartRoleMapper sysDepartRoleMapper;
|
|
|
- @Override
|
|
|
- public Map<String, Object> queryRoleCode(String userId) {
|
|
|
- return userMapper.queryRoleCode(userId);
|
|
|
- }
|
|
|
- @Override
|
|
|
- public List<SysUserVo> getUserListByCompany(String companyId) {
|
|
|
- return userMapper.getUserListByCompany(companyId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUser> getUserListByRoleId(String roleId) {
|
|
|
- Page<SysUser> page = new Page<>();
|
|
|
- page.setSize(10000);
|
|
|
- IPage<SysUser> userPage = this.getUserByRoleId(page, roleId, null);
|
|
|
- return userPage.getRecords();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUserVo> getAllSales() {
|
|
|
- return userMapper.getAllSale();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUserVo> getAllSalesByCompanyId(String companyId) {
|
|
|
- return userMapper.getAllSalesByCompanyId(companyId);
|
|
|
-
|
|
|
- }
|
|
|
+ @Autowired
|
|
|
+ private SysUserMapper userMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysPermissionMapper sysPermissionMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysUserRoleMapper sysUserRoleMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysUserDepartMapper sysUserDepartMapper;
|
|
|
+ @Autowired
|
|
|
+ private ISysBaseApi sysBaseAPI;
|
|
|
+ @Autowired
|
|
|
+ private SysDepartMapper sysDepartMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysRoleMapper sysRoleMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysDepartRoleUserMapper departRoleUserMapper;
|
|
|
+ @Autowired
|
|
|
+ private SysDepartRoleMapper sysDepartRoleMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> queryRoleCode(String userId) {
|
|
|
+ return userMapper.queryRoleCode(userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUserVo> getUserListByCompany(String companyId, String userName) {
|
|
|
+ return userMapper.getUserListByCompany(companyId, userName);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUser> getUserListByRoleId(String roleId) {
|
|
|
+ Page<SysUser> page = new Page<>();
|
|
|
+ page.setSize(10000);
|
|
|
+ IPage<SysUser> userPage = this.getUserByRoleId(page, roleId, null);
|
|
|
+ return userPage.getRecords();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUserVo> getAllSales() {
|
|
|
+ return userMapper.getAllSale();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUserVo> getAllSalesByCompanyId(String companyId) {
|
|
|
+ return userMapper.getAllSalesByCompanyId(companyId);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
public Result<?> resetPassword(String username, String oldpassword, String newpassword, String confirmpassword) {
|
|
@@ -121,323 +124,325 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean deleteUser(String userId) {
|
|
|
- //1.删除用户
|
|
|
- this.removeById(userId);
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean deleteBatchUsers(String userIds) {
|
|
|
- //1.删除用户
|
|
|
- this.removeByIds(Arrays.asList(userIds.split(",")));
|
|
|
- return false;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public SysUser getUserByName(String username) {
|
|
|
- return userMapper.getUserByName(username);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public void addUserWithRole(SysUser user, String roles) {
|
|
|
- this.save(user);
|
|
|
- if(oConvertUtils.isNotEmpty(roles)) {
|
|
|
- String[] arr = roles.split(",");
|
|
|
- for (String roleId : arr) {
|
|
|
- SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
|
- sysUserRoleMapper.insert(userRole);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @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)) {
|
|
|
- String[] arr = roles.split(",");
|
|
|
- for (String roleId : arr) {
|
|
|
- SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
|
- sysUserRoleMapper.insert(userRole);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<String> getRole(String username) {
|
|
|
- return sysUserRoleMapper.getRoleByUserName(username);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过用户名获取用户角色集合
|
|
|
- * @param username 用户名
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean deleteUser(String userId) {
|
|
|
+ //1.删除用户
|
|
|
+ this.removeById(userId);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean deleteBatchUsers(String userIds) {
|
|
|
+ //1.删除用户
|
|
|
+ this.removeByIds(Arrays.asList(userIds.split(",")));
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SysUser getUserByName(String username) {
|
|
|
+ return userMapper.getUserByName(username);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void addUserWithRole(SysUser user, String roles) {
|
|
|
+ this.save(user);
|
|
|
+ if (oConvertUtils.isNotEmpty(roles)) {
|
|
|
+ String[] arr = roles.split(",");
|
|
|
+ for (String roleId : arr) {
|
|
|
+ SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
|
+ sysUserRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @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)) {
|
|
|
+ String[] arr = roles.split(",");
|
|
|
+ for (String roleId : arr) {
|
|
|
+ SysUserRole userRole = new SysUserRole(user.getId(), roleId);
|
|
|
+ sysUserRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<String> getRole(String username) {
|
|
|
+ return sysUserRoleMapper.getRoleByUserName(username);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过用户名获取用户角色集合
|
|
|
+ *
|
|
|
+ * @param username 用户名
|
|
|
* @return 角色集合
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Set<String> getUserRolesSet(String username) {
|
|
|
- // 查询用户拥有的角色集合
|
|
|
- List<String> roles = sysUserRoleMapper.getRoleByUserName(username);
|
|
|
- log.info("-------通过数据库读取用户拥有的角色Rules------username: " + username + ",Roles size: " + (roles == null ? 0 : roles.size()));
|
|
|
- return new HashSet<>(roles);
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 通过用户名获取用户权限集合
|
|
|
- *
|
|
|
- * @param username 用户名
|
|
|
- * @return 权限集合
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Set<String> getUserPermissionsSet(String username) {
|
|
|
- Set<String> permissionSet = new HashSet<>();
|
|
|
- List<SysPermission> permissionList = sysPermissionMapper.queryByUser(username);
|
|
|
- for (SysPermission po : permissionList) {
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Set<String> getUserRolesSet(String username) {
|
|
|
+ // 查询用户拥有的角色集合
|
|
|
+ List<String> roles = sysUserRoleMapper.getRoleByUserName(username);
|
|
|
+ log.info("-------通过数据库读取用户拥有的角色Rules------username: " + username + ",Roles size: " + (roles == null ? 0 : roles.size()));
|
|
|
+ return new HashSet<>(roles);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过用户名获取用户权限集合
|
|
|
+ *
|
|
|
+ * @param username 用户名
|
|
|
+ * @return 权限集合
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Set<String> getUserPermissionsSet(String username) {
|
|
|
+ Set<String> permissionSet = new HashSet<>();
|
|
|
+ List<SysPermission> permissionList = sysPermissionMapper.queryByUser(username);
|
|
|
+ for (SysPermission po : permissionList) {
|
|
|
// // TODO URL规则有问题?
|
|
|
// if (oConvertUtils.isNotEmpty(po.getUrl())) {
|
|
|
// permissionSet.add(po.getUrl());
|
|
|
// }
|
|
|
- if (oConvertUtils.isNotEmpty(po.getPerms())) {
|
|
|
- permissionSet.add(po.getPerms());
|
|
|
- }
|
|
|
- }
|
|
|
- log.info("-------通过数据库读取用户拥有的权限Perms------username: "+ username+",Perms size: "+ (permissionSet==null?0:permissionSet.size()) );
|
|
|
- return permissionSet;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public SysUserCacheInfo getCacheUser(String username) {
|
|
|
- SysUserCacheInfo info = new SysUserCacheInfo();
|
|
|
- info.setOneDepart(true);
|
|
|
+ if (oConvertUtils.isNotEmpty(po.getPerms())) {
|
|
|
+ permissionSet.add(po.getPerms());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.info("-------通过数据库读取用户拥有的权限Perms------username: " + username + ",Perms size: " + (permissionSet == null ? 0 : permissionSet.size()));
|
|
|
+ return permissionSet;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public SysUserCacheInfo getCacheUser(String username) {
|
|
|
+ SysUserCacheInfo info = new SysUserCacheInfo();
|
|
|
+ info.setOneDepart(true);
|
|
|
// SysUser user = userMapper.getUserByName(username);
|
|
|
// info.setSysUserCode(user.getUsername());
|
|
|
// info.setSysUserName(user.getRealname());
|
|
|
|
|
|
|
|
|
- LoginUser user = sysBaseAPI.getUserByName(username);
|
|
|
- if(user!=null) {
|
|
|
- info.setSysUserCode(user.getUsername());
|
|
|
- info.setSysUserName(user.getRealname());
|
|
|
- info.setSysOrgCode(user.getOrgCode());
|
|
|
- }
|
|
|
-
|
|
|
- //多部门支持in查询
|
|
|
- List<SysDepart> list = sysDepartMapper.queryUserDeparts(user.getId());
|
|
|
- List<String> sysMultiOrgCode = new ArrayList<String>();
|
|
|
- if(list==null || list.size()==0) {
|
|
|
- //当前用户无部门
|
|
|
- //sysMultiOrgCode.add("0");
|
|
|
- }else if(list.size()==1) {
|
|
|
- sysMultiOrgCode.add(list.get(0).getOrgCode());
|
|
|
- }else {
|
|
|
- info.setOneDepart(false);
|
|
|
- for (SysDepart dpt : list) {
|
|
|
- sysMultiOrgCode.add(dpt.getOrgCode());
|
|
|
- }
|
|
|
- }
|
|
|
- info.setSysMultiOrgCode(sysMultiOrgCode);
|
|
|
-
|
|
|
- return info;
|
|
|
- }
|
|
|
-
|
|
|
- // 根据部门Id查询
|
|
|
- @Override
|
|
|
- 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);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUserVo> getAllUser() {
|
|
|
- return userMapper.getAllUser();
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Map<String, String> getDepNamesByUserIds(List<String> userIds) {
|
|
|
- List<SysUserDepVo> list = this.baseMapper.getDepNamesByUserIds(userIds);
|
|
|
- Map<String, String> res = new HashMap<String, String>();
|
|
|
- list.forEach(item -> {
|
|
|
- if (res.get(item.getUserId()) == null) {
|
|
|
- res.put(item.getUserId(), item.getDepartName());
|
|
|
- } else {
|
|
|
- res.put(item.getUserId(), res.get(item.getUserId()) + "," + item.getDepartName());
|
|
|
- }
|
|
|
- }
|
|
|
- );
|
|
|
- return res;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
|
|
|
- LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
|
|
|
-
|
|
|
- lambdaQueryWrapper.eq(SysUser::getDelFlag, "0");
|
|
|
+ LoginUser user = sysBaseAPI.getUserByName(username);
|
|
|
+ if (user != null) {
|
|
|
+ info.setSysUserCode(user.getUsername());
|
|
|
+ info.setSysUserName(user.getRealname());
|
|
|
+ info.setSysOrgCode(user.getOrgCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ //多部门支持in查询
|
|
|
+ List<SysDepart> list = sysDepartMapper.queryUserDeparts(user.getId());
|
|
|
+ List<String> sysMultiOrgCode = new ArrayList<String>();
|
|
|
+ if (list == null || list.size() == 0) {
|
|
|
+ //当前用户无部门
|
|
|
+ //sysMultiOrgCode.add("0");
|
|
|
+ } else if (list.size() == 1) {
|
|
|
+ sysMultiOrgCode.add(list.get(0).getOrgCode());
|
|
|
+ } else {
|
|
|
+ info.setOneDepart(false);
|
|
|
+ for (SysDepart dpt : list) {
|
|
|
+ sysMultiOrgCode.add(dpt.getOrgCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ info.setSysMultiOrgCode(sysMultiOrgCode);
|
|
|
+
|
|
|
+ return info;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 根据部门Id查询
|
|
|
+ @Override
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUserVo> getAllUser(String userName) {
|
|
|
+ return userMapper.getAllUser(userName);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, String> getDepNamesByUserIds(List<String> userIds) {
|
|
|
+ List<SysUserDepVo> list = this.baseMapper.getDepNamesByUserIds(userIds);
|
|
|
+ Map<String, String> res = new HashMap<String, String>();
|
|
|
+ list.forEach(item -> {
|
|
|
+ if (res.get(item.getUserId()) == null) {
|
|
|
+ res.put(item.getUserId(), item.getDepartName());
|
|
|
+ } else {
|
|
|
+ res.put(item.getUserId(), res.get(item.getUserId()) + "," + item.getDepartName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public IPage<SysUser> getUserByDepartIdAndQueryWrapper(Page<SysUser> page, String departId, QueryWrapper<SysUser> queryWrapper) {
|
|
|
+ LambdaQueryWrapper<SysUser> lambdaQueryWrapper = queryWrapper.lambda();
|
|
|
+
|
|
|
+ lambdaQueryWrapper.eq(SysUser::getDelFlag, "0");
|
|
|
lambdaQueryWrapper.inSql(SysUser::getId, "SELECT user_id FROM sys_user_depart WHERE dep_id = '" + departId + "'");
|
|
|
|
|
|
return userMapper.selectPage(page, lambdaQueryWrapper);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- public IPage<SysUserSysDepartModel> queryUserByOrgCode(String orgCode, SysUser userParams, IPage page) {
|
|
|
- List<SysUserSysDepartModel> list = baseMapper.getUserByOrgCode(page, orgCode, userParams);
|
|
|
- Integer total = baseMapper.getUserByOrgCodeTotal(orgCode, userParams);
|
|
|
+ @Override
|
|
|
+ public IPage<SysUserSysDepartModel> queryUserByOrgCode(String orgCode, SysUser userParams, IPage page) {
|
|
|
+ List<SysUserSysDepartModel> list = baseMapper.getUserByOrgCode(page, orgCode, userParams);
|
|
|
+ Integer total = baseMapper.getUserByOrgCodeTotal(orgCode, userParams);
|
|
|
|
|
|
- IPage<SysUserSysDepartModel> result = new Page<>(page.getCurrent(), page.getSize(), total);
|
|
|
- result.setRecords(list);
|
|
|
+ IPage<SysUserSysDepartModel> result = new Page<>(page.getCurrent(), page.getSize(), total);
|
|
|
+ result.setRecords(list);
|
|
|
|
|
|
- return result;
|
|
|
- }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
- // 根据角色Id查询
|
|
|
- @Override
|
|
|
- public IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username) {
|
|
|
- return userMapper.getUserByRoleId(page,roleId,username);
|
|
|
- }
|
|
|
+ // 根据角色Id查询
|
|
|
+ @Override
|
|
|
+ public IPage<SysUser> getUserByRoleId(Page<SysUser> page, String roleId, String username) {
|
|
|
+ return userMapper.getUserByRoleId(page, roleId, username);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, key="#username")
|
|
|
- public void updateUserDepart(String username,String orgCode) {
|
|
|
- baseMapper.updateUserDepart(username, orgCode);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, key = "#username")
|
|
|
+ public void updateUserDepart(String username, String orgCode) {
|
|
|
+ baseMapper.updateUserDepart(username, orgCode);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- public SysUser getUserByPhone(String phone) {
|
|
|
- return userMapper.getUserByPhone(phone);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public SysUser getUserByPhone(String phone) {
|
|
|
+ return userMapper.getUserByPhone(phone);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- public SysUser getUserByEmail(String email) {
|
|
|
- return userMapper.getUserByEmail(email);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public SysUser getUserByEmail(String email) {
|
|
|
+ return userMapper.getUserByEmail(email);
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
- @Transactional
|
|
|
- public void addUserWithDepart(SysUser user, String selectedParts) {
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void addUserWithDepart(SysUser user, String selectedParts) {
|
|
|
// this.save(user); //保存角色的时候已经添加过一次了
|
|
|
- if(oConvertUtils.isNotEmpty(selectedParts)) {
|
|
|
- String[] arr = selectedParts.split(",");
|
|
|
- for (String deaprtId : arr) {
|
|
|
- SysUserDepart userDeaprt = new SysUserDepart(user.getId(), deaprtId);
|
|
|
- sysUserDepartMapper.insert(userDeaprt);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true)
|
|
|
- public void editUserWithDepart(SysUser user, String departs) {
|
|
|
- this.updateById(user); //更新角色的时候已经更新了一次了,可以再跟新一次
|
|
|
- String[] arr = {};
|
|
|
- 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(!Arrays.asList(arr).contains(depart.getDepId())){
|
|
|
- List<SysDepartRole> sysDepartRoleList = sysDepartRoleMapper.selectList(
|
|
|
- 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){
|
|
|
- departRoleUserMapper.delete(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, user.getId())
|
|
|
- .in(SysDepartRoleUser::getDroleId,roleIds));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //先删后加
|
|
|
- sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
- if(oConvertUtils.isNotEmpty(departs)) {
|
|
|
- for (String departId : arr) {
|
|
|
- SysUserDepart userDepart = new SysUserDepart(user.getId(), departId);
|
|
|
- sysUserDepartMapper.insert(userDepart);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 校验用户是否有效
|
|
|
- * @param sysUser
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public Result<?> checkUserIsEffective(SysUser sysUser) {
|
|
|
- Result<?> result = new Result<Object>();
|
|
|
- //情况1:根据用户信息查询,该用户不存在
|
|
|
- if (sysUser == null) {
|
|
|
- result.error500("该用户不存在,请注册");
|
|
|
- sysBaseAPI.addLog("用户登录失败,用户不存在!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- return result;
|
|
|
- }
|
|
|
- //情况2:根据用户信息查询,该用户已注销
|
|
|
- if (CommonConstant.DEL_FLAG_1.toString().equals(sysUser.getDelFlag())) {
|
|
|
- sysBaseAPI.addLog("用户登录失败,用户名:" + sysUser.getUsername() + "已注销!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- result.error500("该用户已注销");
|
|
|
- return result;
|
|
|
- }
|
|
|
- //情况3:根据用户信息查询,该用户已冻结
|
|
|
- if (CommonConstant.USER_FREEZE.equals(sysUser.getStatus())) {
|
|
|
- sysBaseAPI.addLog("用户登录失败,用户名:" + sysUser.getUsername() + "已冻结!", CommonConstant.LOG_TYPE_1, null);
|
|
|
- result.error500("该用户已冻结");
|
|
|
- return result;
|
|
|
- }
|
|
|
- return result;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUser> queryLogicDeleted() {
|
|
|
- return this.queryLogicDeleted(null);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUser> queryLogicDeleted(LambdaQueryWrapper<SysUser> wrapper) {
|
|
|
- if (wrapper == null) {
|
|
|
- wrapper = new LambdaQueryWrapper<>();
|
|
|
- }
|
|
|
- wrapper.eq(SysUser::getDelFlag, "1");
|
|
|
- return userMapper.selectLogicDeleted(wrapper);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean revertLogicDeleted(List<String> userIds, SysUser updateEntity) {
|
|
|
- String ids = String.format("'%s'", String.join("','", userIds));
|
|
|
- return userMapper.revertLogicDeleted(ids, updateEntity) > 0;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
- public boolean removeLogicDeleted(List<String> userIds) {
|
|
|
- String ids = String.format("'%s'", String.join("','", userIds));
|
|
|
- // 1. 删除用户
|
|
|
- int line = userMapper.deleteLogicDeleted(ids);
|
|
|
- // 2. 删除用户部门关系
|
|
|
- line += sysUserDepartMapper.delete(new LambdaQueryWrapper<SysUserDepart>().in(SysUserDepart::getUserId, userIds));
|
|
|
- //3. 删除用户角色关系
|
|
|
- line += sysUserRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, userIds));
|
|
|
- return line != 0;
|
|
|
- }
|
|
|
+ if (oConvertUtils.isNotEmpty(selectedParts)) {
|
|
|
+ String[] arr = selectedParts.split(",");
|
|
|
+ for (String deaprtId : arr) {
|
|
|
+ SysUserDepart userDeaprt = new SysUserDepart(user.getId(), deaprtId);
|
|
|
+ sysUserDepartMapper.insert(userDeaprt);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @CacheEvict(value = {CacheConstant.SYS_USERS_CACHE}, allEntries = true)
|
|
|
+ public void editUserWithDepart(SysUser user, String departs) {
|
|
|
+ this.updateById(user); //更新角色的时候已经更新了一次了,可以再跟新一次
|
|
|
+ String[] arr = {};
|
|
|
+ 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 (!Arrays.asList(arr).contains(depart.getDepId())) {
|
|
|
+ List<SysDepartRole> sysDepartRoleList = sysDepartRoleMapper.selectList(
|
|
|
+ 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) {
|
|
|
+ departRoleUserMapper.delete(new QueryWrapper<SysDepartRoleUser>().lambda().eq(SysDepartRoleUser::getUserId, user.getId())
|
|
|
+ .in(SysDepartRoleUser::getDroleId, roleIds));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //先删后加
|
|
|
+ sysUserDepartMapper.delete(new QueryWrapper<SysUserDepart>().lambda().eq(SysUserDepart::getUserId, user.getId()));
|
|
|
+ if (oConvertUtils.isNotEmpty(departs)) {
|
|
|
+ for (String departId : arr) {
|
|
|
+ SysUserDepart userDepart = new SysUserDepart(user.getId(), departId);
|
|
|
+ sysUserDepartMapper.insert(userDepart);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验用户是否有效
|
|
|
+ *
|
|
|
+ * @param sysUser
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Result<?> checkUserIsEffective(SysUser sysUser) {
|
|
|
+ Result<?> result = new Result<Object>();
|
|
|
+ //情况1:根据用户信息查询,该用户不存在
|
|
|
+ if (sysUser == null) {
|
|
|
+ result.error500("该用户不存在,请注册");
|
|
|
+ sysBaseAPI.addLog("用户登录失败,用户不存在!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ //情况2:根据用户信息查询,该用户已注销
|
|
|
+ if (CommonConstant.DEL_FLAG_1.toString().equals(sysUser.getDelFlag())) {
|
|
|
+ sysBaseAPI.addLog("用户登录失败,用户名:" + sysUser.getUsername() + "已注销!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ result.error500("该用户已注销");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ //情况3:根据用户信息查询,该用户已冻结
|
|
|
+ if (CommonConstant.USER_FREEZE.equals(sysUser.getStatus())) {
|
|
|
+ sysBaseAPI.addLog("用户登录失败,用户名:" + sysUser.getUsername() + "已冻结!", CommonConstant.LOG_TYPE_1, null);
|
|
|
+ result.error500("该用户已冻结");
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUser> queryLogicDeleted() {
|
|
|
+ return this.queryLogicDeleted(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUser> queryLogicDeleted(LambdaQueryWrapper<SysUser> wrapper) {
|
|
|
+ if (wrapper == null) {
|
|
|
+ wrapper = new LambdaQueryWrapper<>();
|
|
|
+ }
|
|
|
+ wrapper.eq(SysUser::getDelFlag, "1");
|
|
|
+ return userMapper.selectLogicDeleted(wrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean revertLogicDeleted(List<String> userIds, SysUser updateEntity) {
|
|
|
+ String ids = String.format("'%s'", String.join("','", userIds));
|
|
|
+ return userMapper.revertLogicDeleted(ids, updateEntity) > 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public boolean removeLogicDeleted(List<String> userIds) {
|
|
|
+ String ids = String.format("'%s'", String.join("','", userIds));
|
|
|
+ // 1. 删除用户
|
|
|
+ int line = userMapper.deleteLogicDeleted(ids);
|
|
|
+ // 2. 删除用户部门关系
|
|
|
+ line += sysUserDepartMapper.delete(new LambdaQueryWrapper<SysUserDepart>().in(SysUserDepart::getUserId, userIds));
|
|
|
+ //3. 删除用户角色关系
|
|
|
+ line += sysUserRoleMapper.delete(new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getUserId, userIds));
|
|
|
+ return line != 0;
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -447,24 +452,24 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void saveThirdUser(SysUser sysUser) {
|
|
|
- //保存用户
|
|
|
- String userid = UUIDGenerator.generate();
|
|
|
- sysUser.setId(userid);
|
|
|
- baseMapper.insert(sysUser);
|
|
|
- //获取第三方角色
|
|
|
- SysRole sysRole = sysRoleMapper.selectOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleCode, "third_role"));
|
|
|
- //保存用户角色
|
|
|
- SysUserRole userRole = new SysUserRole();
|
|
|
- userRole.setRoleId(sysRole.getId());
|
|
|
- userRole.setUserId(userid);
|
|
|
- sysUserRoleMapper.insert(userRole);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public List<SysUser> queryByDepIds(List<String> departIds, String username) {
|
|
|
- return userMapper.queryByDepIds(departIds,username);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public void saveThirdUser(SysUser sysUser) {
|
|
|
+ //保存用户
|
|
|
+ String userid = UUIDGenerator.generate();
|
|
|
+ sysUser.setId(userid);
|
|
|
+ baseMapper.insert(sysUser);
|
|
|
+ //获取第三方角色
|
|
|
+ SysRole sysRole = sysRoleMapper.selectOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleCode, "third_role"));
|
|
|
+ //保存用户角色
|
|
|
+ SysUserRole userRole = new SysUserRole();
|
|
|
+ userRole.setRoleId(sysRole.getId());
|
|
|
+ userRole.setUserId(userid);
|
|
|
+ sysUserRoleMapper.insert(userRole);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<SysUser> queryByDepIds(List<String> departIds, String username) {
|
|
|
+ return userMapper.queryByDepIds(departIds, username);
|
|
|
+ }
|
|
|
|
|
|
}
|