update 优化 为部门角色岗位用户增加一些常用查询方法

dev
疯狂的狮子Li 1 year ago
parent 02ace774a6
commit df3eedf79f

@ -1,5 +1,9 @@
package org.dromara.system.api;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import java.util.List;
/**
*
*
@ -15,4 +19,19 @@ public interface RemoteDeptService {
*/
String selectDeptNameByIds(String deptIds);
/**
* ID
*
* @param deptId ID
* @return ID
*/
Long selectDeptLeaderById(Long deptId);
/**
*
*
* @return
*/
List<RemoteDeptVo> selectDeptsByList();
}

@ -131,4 +131,29 @@ public interface RemoteUserService {
* @return ids
*/
List<Long> selectUserIdsByRoleIds(List<Long> roleIds);
/**
* ID
*
* @param roleIds ids
* @return
*/
List<RemoteUserVo> selectUsersByRoleIds(List<Long> roleIds);
/**
* ID
*
* @param deptIds ids
* @return
*/
List<RemoteUserVo> selectUsersByDeptIds(List<Long> deptIds);
/**
* ID
*
* @param postIds ids
* @return
*/
List<RemoteUserVo> selectUsersByPostIds(List<Long> postIds);
}

@ -0,0 +1,37 @@
package org.dromara.system.api.domain.vo;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
/**
*
*
* @author AprilWind
*/
@Data
@NoArgsConstructor
public class RemoteDeptVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* ID
*/
private Long deptId;
/**
* ID
*/
private Long parentId;
/**
*
*/
private String deptName;
}

@ -121,4 +121,9 @@ public class PageQuery implements Serializable {
return (pageNum - 1) * pageSize;
}
public PageQuery(Integer pageSize, Integer pageNum) {
this.pageSize = pageSize;
this.pageNum = pageNum;
}
}

@ -88,6 +88,13 @@ public class LoginHelper {
return Convert.toLong(getExtra(USER_KEY));
}
/**
* id
*/
public static String getUserIdStr() {
return Convert.toStr(getExtra(USER_KEY));
}
/**
*
*/

@ -1,11 +1,16 @@
package org.dromara.system.dubbo;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.service.ISysDeptService;
import cn.hutool.core.bean.BeanUtil;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.system.api.RemoteDeptService;
import org.dromara.system.api.domain.vo.RemoteDeptVo;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.service.ISysDeptService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
*
@ -28,4 +33,28 @@ public class RemoteDeptServiceImpl implements RemoteDeptService {
public String selectDeptNameByIds(String deptIds) {
return sysDeptService.selectDeptNameByIds(deptIds);
}
/**
* ID
*
* @param deptId ID
* @return ID
*/
@Override
public Long selectDeptLeaderById(Long deptId) {
SysDeptVo vo = sysDeptService.selectDeptById(deptId);
return vo.getLeader();
}
/**
*
*
* @return
*/
@Override
public List<RemoteDeptVo> selectDeptsByList() {
List<SysDeptVo> list = sysDeptService.selectDeptsSimple();
return BeanUtil.copyToList(list, RemoteDeptVo.class);
}
}

@ -1,16 +1,19 @@
package org.dromara.system.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Opt;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.constant.SystemConstants;
import org.dromara.common.core.enums.UserStatus;
import org.dromara.common.core.exception.ServiceException;
import org.dromara.common.core.exception.user.UserException;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.helper.DataPermissionHelper;
import org.dromara.common.tenant.helper.TenantHelper;
@ -22,16 +25,22 @@ import org.dromara.system.api.model.PostDTO;
import org.dromara.system.api.model.RoleDTO;
import org.dromara.system.api.model.XcxLoginUser;
import org.dromara.system.domain.SysUser;
import org.dromara.system.domain.SysUserPost;
import org.dromara.system.domain.SysUserRole;
import org.dromara.system.domain.bo.SysUserBo;
import org.dromara.system.domain.vo.SysDeptVo;
import org.dromara.system.domain.vo.SysPostVo;
import org.dromara.system.domain.vo.SysRoleVo;
import org.dromara.system.domain.vo.SysUserVo;
import org.dromara.system.mapper.SysUserMapper;
import org.dromara.system.mapper.SysUserPostMapper;
import org.dromara.system.mapper.SysUserRoleMapper;
import org.dromara.system.service.*;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
*
@ -50,6 +59,8 @@ public class RemoteUserServiceImpl implements RemoteUserService {
private final ISysDeptService deptService;
private final ISysPostService postService;
private final SysUserMapper userMapper;
private final SysUserRoleMapper userRoleMapper;
private final SysUserPostMapper userPostMapper;
/**
*
@ -314,4 +325,66 @@ public class RemoteUserServiceImpl implements RemoteUserService {
return userService.selectUserIdsByRoleIds(roleIds);
}
/**
* ID
*
* @param roleIds ids
* @return
*/
@Override
public List<RemoteUserVo> selectUsersByRoleIds(List<Long> roleIds) {
if (CollUtil.isEmpty(roleIds)) {
return List.of();
}
// 通过角色ID获取用户角色信息
List<SysUserRole> userRoles = userRoleMapper.selectList(
new LambdaQueryWrapper<SysUserRole>().in(SysUserRole::getRoleId, roleIds));
// 获取用户ID列表
Set<Long> userIds = StreamUtils.toSet(userRoles, SysUserRole::getUserId);
return selectListByIds(new ArrayList<>(userIds));
}
/**
* ID
*
* @param deptIds ids
* @return
*/
@Override
public List<RemoteUserVo> selectUsersByDeptIds(List<Long> deptIds) {
if (CollUtil.isEmpty(deptIds)) {
return List.of();
}
List<SysUserVo> list = userMapper.selectVoList(new LambdaQueryWrapper<SysUser>()
.select(SysUser::getUserId, SysUser::getUserName, SysUser::getNickName, SysUser::getEmail, SysUser::getPhonenumber)
.eq(SysUser::getStatus, SystemConstants.NORMAL)
.in(SysUser::getDeptId, deptIds));
return BeanUtil.copyToList(list, RemoteUserVo.class);
}
/**
* ID
*
* @param postIds ids
* @return
*/
@Override
public List<RemoteUserVo> selectUsersByPostIds(List<Long> postIds) {
if (CollUtil.isEmpty(postIds)) {
return List.of();
}
// 通过岗位ID获取用户岗位信息
List<SysUserPost> userPosts = userPostMapper.selectList(
new LambdaQueryWrapper<SysUserPost>().in(SysUserPost::getPostId, postIds));
// 获取用户ID列表
Set<Long> userIds = StreamUtils.toSet(userPosts, SysUserPost::getUserId);
return selectListByIds(new ArrayList<>(userIds));
}
}

@ -131,4 +131,11 @@ public interface ISysDeptService {
* @return
*/
int deleteDeptById(Long deptId);
/**
* ()
*
* @return
*/
List<SysDeptVo> selectDeptsSimple();
}

@ -356,4 +356,16 @@ public class SysDeptServiceImpl implements ISysDeptService {
return baseMapper.deleteById(deptId);
}
/**
* ()
*
* @return
*/
@Override
public List<SysDeptVo> selectDeptsSimple() {
return baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId)
.eq(SysDept::getStatus, SystemConstants.NORMAL));
}
}

Loading…
Cancel
Save