update 优化 为部门角色岗位用户增加一些常用查询方法
This commit is contained in:
parent
0027f671d2
commit
ab3e4978b1
@ -0,0 +1,37 @@
|
|||||||
|
package org.dromara.common.core.domain.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门
|
||||||
|
*
|
||||||
|
* @author AprilWind
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class DeptDTO implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门ID
|
||||||
|
*/
|
||||||
|
private Long deptId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 父部门ID
|
||||||
|
*/
|
||||||
|
private Long parentId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 部门名称
|
||||||
|
*/
|
||||||
|
private String deptName;
|
||||||
|
|
||||||
|
}
|
@ -1,5 +1,9 @@
|
|||||||
package org.dromara.common.core.service;
|
package org.dromara.common.core.service;
|
||||||
|
|
||||||
|
import org.dromara.common.core.domain.dto.DeptDTO;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通用 部门服务
|
* 通用 部门服务
|
||||||
*
|
*
|
||||||
@ -15,4 +19,19 @@ public interface DeptService {
|
|||||||
*/
|
*/
|
||||||
String selectDeptNameByIds(String deptIds);
|
String selectDeptNameByIds(String deptIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据部门ID查询部门负责人
|
||||||
|
*
|
||||||
|
* @param deptId 部门ID,用于指定需要查询的部门
|
||||||
|
* @return 返回该部门的负责人ID
|
||||||
|
*/
|
||||||
|
Long selectDeptLeaderById(Long deptId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部门
|
||||||
|
*
|
||||||
|
* @return 部门列表
|
||||||
|
*/
|
||||||
|
List<DeptDTO> selectDeptsByList();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.dromara.common.core.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通用 角色服务
|
||||||
|
*
|
||||||
|
* @author AprilWind
|
||||||
|
*/
|
||||||
|
public interface RoleService {
|
||||||
|
|
||||||
|
}
|
@ -82,4 +82,13 @@ public interface UserService {
|
|||||||
* @return 用户
|
* @return 用户
|
||||||
*/
|
*/
|
||||||
List<UserDTO> selectUsersByDeptIds(List<Long> deptIds);
|
List<UserDTO> selectUsersByDeptIds(List<Long> deptIds);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过岗位ID查询用户
|
||||||
|
*
|
||||||
|
* @param postIds 岗位ids
|
||||||
|
* @return 用户
|
||||||
|
*/
|
||||||
|
List<UserDTO> selectUsersByPostIds(List<Long> postIds);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -119,4 +119,9 @@ public class PageQuery implements Serializable {
|
|||||||
return (pageNum - 1) * pageSize;
|
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));
|
return Convert.toLong(getExtra(USER_KEY));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取用户id
|
||||||
|
*/
|
||||||
|
public static String getUserIdStr() {
|
||||||
|
return Convert.toStr(getExtra(USER_KEY));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户账户
|
* 获取用户账户
|
||||||
*/
|
*/
|
||||||
|
@ -3,6 +3,7 @@ package org.dromara.system.mapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.dromara.common.mybatis.annotation.DataColumn;
|
import org.dromara.common.mybatis.annotation.DataColumn;
|
||||||
import org.dromara.common.mybatis.annotation.DataPermission;
|
import org.dromara.common.mybatis.annotation.DataPermission;
|
||||||
@ -31,6 +32,17 @@ public interface SysDeptMapper extends BaseMapperPlus<SysDept, SysDeptVo> {
|
|||||||
})
|
})
|
||||||
List<SysDeptVo> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
|
List<SysDeptVo> selectDeptList(@Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询部门管理数据
|
||||||
|
*
|
||||||
|
* @param queryWrapper 查询条件
|
||||||
|
* @return 部门信息集合
|
||||||
|
*/
|
||||||
|
@DataPermission({
|
||||||
|
@DataColumn(key = "deptName", value = "dept_id"),
|
||||||
|
})
|
||||||
|
Page<SysDeptVo> selectPageDeptList(@Param("page") Page<SysDeptVo> page, @Param(Constants.WRAPPER) Wrapper<SysDept> queryWrapper);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 统计指定部门ID的部门数量
|
* 统计指定部门ID的部门数量
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.dromara.system.service.impl;
|
package org.dromara.system.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.lang.tree.Tree;
|
import cn.hutool.core.lang.tree.Tree;
|
||||||
@ -10,6 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.dromara.common.core.constant.CacheNames;
|
import org.dromara.common.core.constant.CacheNames;
|
||||||
import org.dromara.common.core.constant.SystemConstants;
|
import org.dromara.common.core.constant.SystemConstants;
|
||||||
|
import org.dromara.common.core.domain.dto.DeptDTO;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
import org.dromara.common.core.service.DeptService;
|
import org.dromara.common.core.service.DeptService;
|
||||||
import org.dromara.common.core.utils.*;
|
import org.dromara.common.core.utils.*;
|
||||||
@ -354,4 +356,29 @@ public class SysDeptServiceImpl implements ISysDeptService, DeptService {
|
|||||||
return baseMapper.deleteById(deptId);
|
return baseMapper.deleteById(deptId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据部门ID查询部门负责人
|
||||||
|
*
|
||||||
|
* @param deptId 部门ID,用于指定需要查询的部门
|
||||||
|
* @return 返回该部门的负责人ID
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Long selectDeptLeaderById(Long deptId) {
|
||||||
|
SysDeptVo vo = SpringUtils.getAopProxy(this).selectDeptById(deptId);
|
||||||
|
return vo.getLeader();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询部门
|
||||||
|
*
|
||||||
|
* @return 部门列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<DeptDTO> selectDeptsByList() {
|
||||||
|
List<SysDeptVo> list = baseMapper.selectDeptList(new LambdaQueryWrapper<SysDept>()
|
||||||
|
.select(SysDept::getDeptId, SysDept::getDeptName, SysDept::getParentId)
|
||||||
|
.eq(SysDept::getStatus, SystemConstants.NORMAL));
|
||||||
|
return BeanUtil.copyToList(list, DeptDTO.class);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,7 @@ import org.dromara.common.core.constant.SystemConstants;
|
|||||||
import org.dromara.common.core.constant.TenantConstants;
|
import org.dromara.common.core.constant.TenantConstants;
|
||||||
import org.dromara.common.core.domain.model.LoginUser;
|
import org.dromara.common.core.domain.model.LoginUser;
|
||||||
import org.dromara.common.core.exception.ServiceException;
|
import org.dromara.common.core.exception.ServiceException;
|
||||||
|
import org.dromara.common.core.service.RoleService;
|
||||||
import org.dromara.common.core.utils.MapstructUtils;
|
import org.dromara.common.core.utils.MapstructUtils;
|
||||||
import org.dromara.common.core.utils.StreamUtils;
|
import org.dromara.common.core.utils.StreamUtils;
|
||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
@ -47,7 +48,7 @@ import java.util.*;
|
|||||||
*/
|
*/
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
@Service
|
@Service
|
||||||
public class SysRoleServiceImpl implements ISysRoleService {
|
public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
||||||
|
|
||||||
private final SysRoleMapper baseMapper;
|
private final SysRoleMapper baseMapper;
|
||||||
private final SysRoleMenuMapper roleMenuMapper;
|
private final SysRoleMenuMapper roleMenuMapper;
|
||||||
@ -351,7 +352,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
|
|||||||
private int insertRoleMenu(SysRoleBo role) {
|
private int insertRoleMenu(SysRoleBo role) {
|
||||||
int rows = 1;
|
int rows = 1;
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
|
List<SysRoleMenu> list = new ArrayList<>();
|
||||||
for (Long menuId : role.getMenuIds()) {
|
for (Long menuId : role.getMenuIds()) {
|
||||||
SysRoleMenu rm = new SysRoleMenu();
|
SysRoleMenu rm = new SysRoleMenu();
|
||||||
rm.setRoleId(role.getRoleId());
|
rm.setRoleId(role.getRoleId());
|
||||||
@ -372,7 +373,7 @@ public class SysRoleServiceImpl implements ISysRoleService {
|
|||||||
private int insertRoleDept(SysRoleBo role) {
|
private int insertRoleDept(SysRoleBo role) {
|
||||||
int rows = 1;
|
int rows = 1;
|
||||||
// 新增角色与部门(数据权限)管理
|
// 新增角色与部门(数据权限)管理
|
||||||
List<SysRoleDept> list = new ArrayList<SysRoleDept>();
|
List<SysRoleDept> list = new ArrayList<>();
|
||||||
for (Long deptId : role.getDeptIds()) {
|
for (Long deptId : role.getDeptIds()) {
|
||||||
SysRoleDept rd = new SysRoleDept();
|
SysRoleDept rd = new SysRoleDept();
|
||||||
rd.setRoleId(role.getRoleId());
|
rd.setRoleId(role.getRoleId());
|
||||||
|
@ -696,4 +696,27 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
.in(SysUser::getDeptId, deptIds));
|
.in(SysUser::getDeptId, deptIds));
|
||||||
return BeanUtil.copyToList(list, UserDTO.class);
|
return BeanUtil.copyToList(list, UserDTO.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过岗位ID查询用户
|
||||||
|
*
|
||||||
|
* @param postIds 岗位ids
|
||||||
|
* @return 用户
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<UserDTO> 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));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,17 @@
|
|||||||
from sys_dept ${ew.getCustomSqlSegment}
|
from sys_dept ${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPageDeptList" resultMap="SysDeptResult">
|
||||||
|
select
|
||||||
|
<if test="ew.getSqlSelect != null">
|
||||||
|
${ew.getSqlSelect}
|
||||||
|
</if>
|
||||||
|
<if test="ew.getSqlSelect == null">
|
||||||
|
*
|
||||||
|
</if>
|
||||||
|
from sys_dept ${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="countDeptById" resultType="Long">
|
<select id="countDeptById" resultType="Long">
|
||||||
select count(*) from sys_dept where del_flag = '0' and dept_id = #{deptId}
|
select count(*) from sys_dept where del_flag = '0' and dept_id = #{deptId}
|
||||||
</select>
|
</select>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user