mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-27 05:36:41 +08:00
user perm list
This commit is contained in:
parent
64100cf1ff
commit
3b84f3d958
@ -49,7 +49,7 @@ spring:
|
|||||||
driverClassName: com.mysql.cj.jdbc.Driver
|
driverClassName: com.mysql.cj.jdbc.Driver
|
||||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||||
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
url: jdbc:mysql://localhost:3306/ry_yue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
|
||||||
username: root
|
username: root
|
||||||
password: root
|
password: root
|
||||||
# # 从库数据源
|
# # 从库数据源
|
||||||
@ -98,13 +98,11 @@ spring:
|
|||||||
spring.data:
|
spring.data:
|
||||||
redis:
|
redis:
|
||||||
# 地址
|
# 地址
|
||||||
host: localhost
|
host: 127.0.0.1
|
||||||
# 端口,默认为6379
|
# 端口,默认为6379
|
||||||
port: 6379
|
port: 6379
|
||||||
# 数据库索引
|
# 数据库索引
|
||||||
database: 0
|
database: 0
|
||||||
# redis 密码必须配置
|
|
||||||
password: ruoyi123
|
|
||||||
# 连接超时时间
|
# 连接超时时间
|
||||||
timeout: 10s
|
timeout: 10s
|
||||||
# 是否开启ssl
|
# 是否开启ssl
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# 开发环境配置
|
# 开发环境配置
|
||||||
server:
|
server:
|
||||||
# 服务器的HTTP端口,默认为8080
|
# 服务器的HTTP端口,默认为8080
|
||||||
port: 8080
|
port: 8999
|
||||||
servlet:
|
servlet:
|
||||||
# 应用的访问路径
|
# 应用的访问路径
|
||||||
context-path: /
|
context-path: /
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package org.dromara.system.controller.system;
|
||||||
|
|
||||||
|
|
||||||
|
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
|
import org.dromara.system.domain.bo.SysUsrPermBo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUsrPermVo;
|
||||||
|
import org.dromara.system.service.ISysUsrPermService;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/system/usrPerm")
|
||||||
|
public class SysUsrPermController extends BaseController {
|
||||||
|
private final ISysUsrPermService usrPerm;
|
||||||
|
@SaCheckPermission("system:user:list")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<SysUsrPermVo> list(SysUsrPermBo user, PageQuery pageQuery) {
|
||||||
|
return usrPerm.selectUsrPermList(user,pageQuery);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.dromara.system.domain;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SysUsrPerm {
|
||||||
|
private String userName;
|
||||||
|
private String userPerm;
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package org.dromara.system.domain.bo;
|
||||||
|
|
||||||
|
|
||||||
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
|
import lombok.Data;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.SysUsrPerm;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AutoMapper(target = SysUsrPerm.class, reverseConvertGenerate = false)
|
||||||
|
public class SysUsrPermBo {
|
||||||
|
private String userName;
|
||||||
|
private String userPerm;
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package org.dromara.system.domain.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SysUsrPermVo {
|
||||||
|
private String userName;
|
||||||
|
private String userPerm;
|
||||||
|
|
||||||
|
}
|
@ -2,6 +2,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.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@ -32,9 +33,8 @@ public interface SysUserMapper extends BaseMapperPlus<SysUser, SysUserVo> {
|
|||||||
@DataColumn(key = "deptName", value = "dept_id"),
|
@DataColumn(key = "deptName", value = "dept_id"),
|
||||||
@DataColumn(key = "userName", value = "user_id")
|
@DataColumn(key = "userName", value = "user_id")
|
||||||
})
|
})
|
||||||
default Page<SysUserVo> selectPageUserList(Page<SysUser> page, Wrapper<SysUser> queryWrapper) {
|
Page<SysUserVo> selectPageUserList(@Param("page") Page<SysUserVo> page, @Param(Constants.WRAPPER) Wrapper<SysUser> queryWrapper);
|
||||||
return this.selectVoPage(page, queryWrapper);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询用户列表,并进行数据权限控制
|
* 查询用户列表,并进行数据权限控制
|
||||||
|
@ -0,0 +1,19 @@
|
|||||||
|
package org.dromara.system.mapper;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.SysUsrPerm;
|
||||||
|
import org.dromara.system.domain.vo.SysUserExportVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUsrPermVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface SysUsrPermMapper extends BaseMapperPlus<SysUsrPerm, SysUserVo> {
|
||||||
|
Page<SysUsrPermVo> selectUsrPermList(@Param("page") Page<SysUsrPerm> page,@Param(Constants.WRAPPER) Wrapper<SysUsrPerm> queryWrapper);
|
||||||
|
}
|
@ -3,8 +3,10 @@ package org.dromara.system.service;
|
|||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.system.domain.bo.SysUserBo;
|
import org.dromara.system.domain.bo.SysUserBo;
|
||||||
|
import org.dromara.system.domain.bo.SysUsrPermBo;
|
||||||
import org.dromara.system.domain.vo.SysUserExportVo;
|
import org.dromara.system.domain.vo.SysUserExportVo;
|
||||||
import org.dromara.system.domain.vo.SysUserVo;
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUsrPermVo;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package org.dromara.system.service;
|
||||||
|
|
||||||
|
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.system.domain.bo.SysUsrPermBo;
|
||||||
|
import org.dromara.system.domain.vo.SysUsrPermVo;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface ISysUsrPermService {
|
||||||
|
|
||||||
|
TableDataInfo<SysUsrPermVo> selectUsrPermList(SysUsrPermBo user, PageQuery pageQuery);
|
||||||
|
}
|
@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import jodd.util.StringUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.core.constant.CacheNames;
|
import org.dromara.common.core.constant.CacheNames;
|
||||||
@ -57,8 +58,12 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
|
public TableDataInfo<SysUserVo> selectPageUserList(SysUserBo user, PageQuery pageQuery) {
|
||||||
Page<SysUserVo> page = baseMapper.selectPageUserList(pageQuery.build(), this.buildQueryWrapper(user));
|
Wrapper<SysUser> wrapper = this.buildQueryWrapper(user, pageQuery);
|
||||||
return TableDataInfo.build(page);
|
|
||||||
|
Page<SysUserVo> page = pageQuery.build();
|
||||||
|
Page<SysUserVo> resultPage = baseMapper.selectPageUserList(page, wrapper);
|
||||||
|
|
||||||
|
return TableDataInfo.build(resultPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -87,30 +92,47 @@ public class SysUserServiceImpl implements ISysUserService, UserService {
|
|||||||
return baseMapper.selectUserExportList(wrapper);
|
return baseMapper.selectUserExportList(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user) {
|
private Wrapper<SysUser> buildQueryWrapper(SysUserBo user, PageQuery pageQuery) {
|
||||||
Map<String, Object> params = user.getParams();
|
Map<String, Object> params = user.getParams();
|
||||||
LambdaQueryWrapper<SysUser> wrapper = Wrappers.lambdaQuery();
|
QueryWrapper<SysUser> wrapper = Wrappers.query();
|
||||||
wrapper.eq(SysUser::getDelFlag, SystemConstants.NORMAL)
|
|
||||||
.eq(ObjectUtil.isNotNull(user.getUserId()), SysUser::getUserId, user.getUserId())
|
wrapper.eq("u.del_flag", SystemConstants.NORMAL)
|
||||||
.in(StringUtils.isNotBlank(user.getUserIds()), SysUser::getUserId, StringUtils.splitTo(user.getUserIds(), Convert::toLong))
|
.eq(ObjectUtil.isNotNull(user.getUserId()), "u.user_id", user.getUserId())
|
||||||
.like(StringUtils.isNotBlank(user.getUserName()), SysUser::getUserName, user.getUserName())
|
.like(StringUtils.isNotBlank(user.getUserName()), "u.user_name", user.getUserName())
|
||||||
.like(StringUtils.isNotBlank(user.getNickName()), SysUser::getNickName, user.getNickName())
|
.like(StringUtils.isNotBlank(user.getNickName()), "u.nick_name", user.getNickName())
|
||||||
.eq(StringUtils.isNotBlank(user.getStatus()), SysUser::getStatus, user.getStatus())
|
.eq(StringUtils.isNotBlank(user.getStatus()), "u.status", user.getStatus())
|
||||||
.like(StringUtils.isNotBlank(user.getPhonenumber()), SysUser::getPhonenumber, user.getPhonenumber())
|
.like(StringUtils.isNotBlank(user.getPhonenumber()), "u.phonenumber", user.getPhonenumber())
|
||||||
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
.between(params.get("beginTime") != null && params.get("endTime") != null,
|
||||||
SysUser::getCreateTime, params.get("beginTime"), params.get("endTime"))
|
"u.create_time", params.get("beginTime"), params.get("endTime"))
|
||||||
.and(ObjectUtil.isNotNull(user.getDeptId()), w -> {
|
.and(ObjectUtil.isNotNull(user.getDeptId()), w -> {
|
||||||
List<SysDept> deptList = deptMapper.selectListByParentId(user.getDeptId());
|
List<SysDept> deptList = deptMapper.selectListByParentId(user.getDeptId());
|
||||||
List<Long> ids = StreamUtils.toList(deptList, SysDept::getDeptId);
|
List<Long> ids = StreamUtils.toList(deptList, SysDept::getDeptId);
|
||||||
ids.add(user.getDeptId());
|
ids.add(user.getDeptId());
|
||||||
w.in(SysUser::getDeptId, ids);
|
w.in("u.dept_id", ids);
|
||||||
}).orderByAsc(SysUser::getUserId);
|
});
|
||||||
|
|
||||||
if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
|
if (StringUtils.isNotBlank(user.getExcludeUserIds())) {
|
||||||
wrapper.notIn(SysUser::getUserId, StringUtils.splitList(user.getExcludeUserIds()));
|
wrapper.notIn("u.user_id", StringUtils.splitList(user.getExcludeUserIds()));
|
||||||
|
}
|
||||||
|
|
||||||
|
if(StringUtils.isNotBlank(pageQuery.getOrderByColumn()))
|
||||||
|
{
|
||||||
|
String sortingDirection = StringUtils.equals("asc",pageQuery.getIsAsc()) ? "ASC": "DESC";
|
||||||
|
String sortingFieldName = getFieldWithTableName(pageQuery.getOrderByColumn());
|
||||||
|
wrapper.last("ORDER BY " + sortingFieldName + " " + sortingDirection);
|
||||||
}
|
}
|
||||||
return wrapper;
|
return wrapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getFieldWithTableName(String fieldName) {
|
||||||
|
String fieldTargetTableName = "u.";
|
||||||
|
if(StringUtil.equals(fieldName,"dept_name"))
|
||||||
|
{
|
||||||
|
fieldTargetTableName = "d.";
|
||||||
|
}
|
||||||
|
return fieldTargetTableName + fieldName;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据条件分页查询已分配用户角色列表
|
* 根据条件分页查询已分配用户角色列表
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
package org.dromara.system.service.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
|
||||||
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.system.domain.SysUser;
|
||||||
|
import org.dromara.system.domain.SysUsrPerm;
|
||||||
|
import org.dromara.system.domain.bo.SysUsrPermBo;
|
||||||
|
import org.dromara.system.domain.vo.SysUserVo;
|
||||||
|
import org.dromara.system.domain.vo.SysUsrPermVo;
|
||||||
|
import org.dromara.system.mapper.SysUserMapper;
|
||||||
|
import org.dromara.system.mapper.SysUsrPermMapper;
|
||||||
|
import org.dromara.system.service.ISysUsrPermService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Service
|
||||||
|
public class SysUsrPermServiceImpl implements ISysUsrPermService {
|
||||||
|
|
||||||
|
private final SysUsrPermMapper baseMapper;
|
||||||
|
@Override
|
||||||
|
public TableDataInfo<SysUsrPermVo> selectUsrPermList(SysUsrPermBo user, PageQuery pageQuery){
|
||||||
|
|
||||||
|
QueryWrapper<SysUsrPerm> wrapper = Wrappers.query();
|
||||||
|
wrapper.like(StringUtils.isNotBlank(user.getUserName()), "user_name", user.getUserName())
|
||||||
|
.like(StringUtils.isNotBlank(user.getUserPerm()), "user_perm", user.getUserPerm() );
|
||||||
|
|
||||||
|
Page<SysUsrPermVo> page = baseMapper.selectUsrPermList(pageQuery.build(), wrapper);
|
||||||
|
return TableDataInfo.build(page);
|
||||||
|
}
|
||||||
|
}
|
@ -11,6 +11,15 @@
|
|||||||
<id property="userId" column="user_id"/>
|
<id property="userId" column="user_id"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectPageUserList" resultMap="SysUserResult">
|
||||||
|
SELECT u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||||||
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
|
d.dept_name
|
||||||
|
FROM sys_user u
|
||||||
|
LEFT JOIN sys_dept d ON u.dept_id = d.dept_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
<select id="selectUserExportList" resultMap="SysUserExportResult">
|
<select id="selectUserExportList" resultMap="SysUserExportResult">
|
||||||
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,
|
||||||
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.dromara.system.mapper.SysUsrPermMapper">
|
||||||
|
|
||||||
|
<resultMap type="org.dromara.system.domain.vo.SysUsrPermVo" id="SysUsrPrmResult">
|
||||||
|
<id property="username" column="username"/>
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="selectUsrPermList" resultMap="SysUsrPrmResult">
|
||||||
|
SELECT user_name ,tenant_id ,user_perm
|
||||||
|
FROM v_user_per_menus
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user