refactor: 优化用户、角色、字典分页查询
This commit is contained in:
parent
88ea29feff
commit
eff0fd9e12
@ -25,8 +25,4 @@ import lombok.Data;
|
||||
public class DictQueryCriteria {
|
||||
|
||||
private String blurry;
|
||||
|
||||
private Long offset;
|
||||
|
||||
private Long size;
|
||||
}
|
||||
|
@ -29,8 +29,4 @@ public class RoleQueryCriteria {
|
||||
private String blurry;
|
||||
|
||||
private List<Timestamp> createTime;
|
||||
|
||||
private Long offset;
|
||||
|
||||
private Long size;
|
||||
}
|
||||
|
@ -40,8 +40,4 @@ public class UserQueryCriteria implements Serializable {
|
||||
private Long deptId;
|
||||
|
||||
private List<Timestamp> createTime;
|
||||
|
||||
private Long offset;
|
||||
|
||||
private Long size;
|
||||
}
|
||||
|
@ -16,6 +16,8 @@
|
||||
package me.zhengjie.modules.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import me.zhengjie.modules.system.domain.Dict;
|
||||
import me.zhengjie.modules.system.domain.vo.DictQueryCriteria;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -29,7 +31,7 @@ import java.util.List;
|
||||
@Mapper
|
||||
public interface DictMapper extends BaseMapper<Dict> {
|
||||
|
||||
List<Dict> findAll(@Param("criteria") DictQueryCriteria criteria);
|
||||
IPage<Dict> findAll(@Param("criteria") DictQueryCriteria criteria, Page<Object> page);
|
||||
|
||||
Long countAll(@Param("criteria") DictQueryCriteria criteria);
|
||||
List<Dict> findAll(@Param("criteria") DictQueryCriteria criteria);
|
||||
}
|
@ -16,6 +16,8 @@
|
||||
package me.zhengjie.modules.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import me.zhengjie.modules.system.domain.Role;
|
||||
import me.zhengjie.modules.system.domain.vo.RoleQueryCriteria;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -33,18 +35,20 @@ public interface RoleMapper extends BaseMapper<Role> {
|
||||
|
||||
List<Role> queryAll();
|
||||
|
||||
List<Role> findAll(@Param("criteria") RoleQueryCriteria criteria);
|
||||
|
||||
IPage<Role> findAll(@Param("criteria") RoleQueryCriteria criteria, Page<Object> page);
|
||||
|
||||
Role findById(@Param("roleId") Long roleId);
|
||||
|
||||
Role findByName(@Param("name") String name);
|
||||
|
||||
List<Role> findByUserId(@Param("userId") Long userId);
|
||||
|
||||
Long countAll(@Param("criteria") RoleQueryCriteria criteria);
|
||||
|
||||
List<Role> findAll(@Param("criteria") RoleQueryCriteria criteria);
|
||||
|
||||
int countByDepts(@Param("deptIds") Set<Long> deptIds);
|
||||
|
||||
@Select("SELECT role.role_id as id FROM sys_role role, sys_roles_menus rm " +
|
||||
"WHERE role.role_id = rm.role_id AND rm.menu_id = #{menuId}")
|
||||
List<Role> findByMenuId(@Param("menuId") Long menuId);
|
||||
|
||||
}
|
||||
|
@ -26,6 +26,7 @@ import java.util.Set;
|
||||
*/
|
||||
@Mapper
|
||||
public interface UserJobMapper {
|
||||
|
||||
void insertData(@Param("userId") Long userId, @Param("jobs") Set<Job> jobs);
|
||||
|
||||
void deleteByUserId(@Param("userId") Long userId);
|
||||
|
@ -16,6 +16,8 @@
|
||||
package me.zhengjie.modules.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import me.zhengjie.modules.system.domain.User;
|
||||
import me.zhengjie.modules.system.domain.vo.UserQueryCriteria;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -34,7 +36,7 @@ public interface UserMapper extends BaseMapper<User> {
|
||||
|
||||
List<User> findAll(@Param("criteria") UserQueryCriteria criteria);
|
||||
|
||||
Long countAll(@Param("criteria") UserQueryCriteria criteria);
|
||||
IPage<User> findAll(@Param("criteria") UserQueryCriteria criteria, Page<Object> page);
|
||||
|
||||
User findByUsername(@Param("username") String username);
|
||||
|
||||
|
@ -16,6 +16,7 @@
|
||||
package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.RequiredArgsConstructor;
|
||||
@ -48,10 +49,8 @@ public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements Di
|
||||
|
||||
@Override
|
||||
public PageResult<Dict> queryAll(DictQueryCriteria criteria, Page<Object> page){
|
||||
criteria.setOffset(page.offset());
|
||||
List<Dict> dicts = dictMapper.findAll(criteria);
|
||||
Long total = dictMapper.countAll(criteria);
|
||||
return PageUtil.toPage(dicts,total);
|
||||
IPage<Dict> dicts = dictMapper.findAll(criteria, page);
|
||||
return PageUtil.toPage(dicts);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -17,6 +17,7 @@ package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
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.RequiredArgsConstructor;
|
||||
@ -71,10 +72,8 @@ public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements Ro
|
||||
|
||||
@Override
|
||||
public PageResult<Role> queryAll(RoleQueryCriteria criteria, Page<Object> page) {
|
||||
criteria.setOffset(page.offset());
|
||||
List<Role> roles = roleMapper.findAll(criteria);
|
||||
Long total = roleMapper.countAll(criteria);
|
||||
return PageUtil.toPage(roles, total);
|
||||
IPage<Role> roles = roleMapper.findAll(criteria, page);
|
||||
return PageUtil.toPage(roles);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -15,6 +15,7 @@
|
||||
*/
|
||||
package me.zhengjie.modules.system.service.impl;
|
||||
|
||||
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.RequiredArgsConstructor;
|
||||
@ -63,10 +64,8 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
|
||||
|
||||
@Override
|
||||
public PageResult<User> queryAll(UserQueryCriteria criteria, Page<Object> page) {
|
||||
criteria.setOffset(page.offset());
|
||||
List<User> users = userMapper.findAll(criteria);
|
||||
Long total = userMapper.countAll(criteria);
|
||||
return PageUtil.toPage(users, total);
|
||||
IPage<User> users = userMapper.findAll(criteria, page);
|
||||
return PageUtil.toPage(users);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -25,35 +25,19 @@
|
||||
dd.detail_id as dd_id, dd.label, dd.`value`, dd.create_time as dd_create_time
|
||||
</sql>
|
||||
|
||||
<sql id="Where_sql">
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
SELECT <include refid="Base_Column_List"/>,
|
||||
<include refid="Dict_Details_Column_List"/>
|
||||
from sys_dict d
|
||||
left join sys_dict_detail dd on d.dict_id = dd.dict_id
|
||||
<where>
|
||||
<if test="criteria.blurry != null and criteria.blurry != ''">
|
||||
and (
|
||||
d.name like concat('%', #{criteria.blurry}, '%')
|
||||
or d.description like concat('%', #{criteria.blurry}, '%')
|
||||
d.name like concat('%', #{criteria.blurry}, '%')
|
||||
or d.description like concat('%', #{criteria.blurry}, '%')
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
SELECT d.*,
|
||||
<include refid="Dict_Details_Column_List"/>
|
||||
from (
|
||||
select <include refid="Base_Column_List"/>
|
||||
from sys_dict d
|
||||
<include refid="Where_sql"/>
|
||||
<if test="criteria.offset != null">
|
||||
limit #{criteria.offset}, #{criteria.size}
|
||||
</if>
|
||||
) d
|
||||
left join sys_dict_detail dd on d.dict_id = dd.dict_id
|
||||
order by d.dict_id desc
|
||||
</select>
|
||||
|
||||
<select id="countAll" resultType="java.lang.Long">
|
||||
select count(*)
|
||||
from sys_dict d
|
||||
<include refid="Where_sql"/>
|
||||
</select>
|
||||
</mapper>
|
@ -36,7 +36,21 @@
|
||||
dept.dept_id as dept_id, dept.name as dept_name
|
||||
</sql>
|
||||
|
||||
<sql id="Where_sql">
|
||||
<select id="queryAll" resultType="me.zhengjie.modules.system.domain.Role">
|
||||
select role_id as id, name, level
|
||||
from sys_role order by level
|
||||
</select>
|
||||
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List"/>,
|
||||
<include refid="Dept_Column_List"/>,
|
||||
<include refid="Menu_Column_List"/>
|
||||
from sys_role role
|
||||
left join sys_roles_menus srm on role.role_id = srm.role_id
|
||||
left join sys_menu menu on menu.menu_id = srm.menu_id
|
||||
left join sys_roles_depts srd on role.role_id = srd.role_id
|
||||
left join sys_dept dept on dept.dept_id = srd.dept_id
|
||||
<where>
|
||||
<if test="criteria.blurry != null and criteria.blurry != ''">
|
||||
and (
|
||||
@ -48,37 +62,7 @@
|
||||
and role.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<select id="queryAll" resultType="me.zhengjie.modules.system.domain.Role">
|
||||
select role_id as id, name, level
|
||||
from sys_role order by level
|
||||
</select>
|
||||
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
select role.*,
|
||||
<include refid="Dept_Column_List"/>,
|
||||
<include refid="Menu_Column_List"/>
|
||||
from (
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from sys_role role
|
||||
<include refid="Where_sql"/>
|
||||
<if test="criteria.offset != null">
|
||||
limit #{criteria.offset}, #{criteria.size}
|
||||
</if>
|
||||
) role
|
||||
left join sys_roles_menus srm on role.role_role_id = srm.role_id
|
||||
left join sys_menu menu on menu.menu_id = srm.menu_id
|
||||
left join sys_roles_depts srd on role.role_role_id = srd.role_id
|
||||
left join sys_dept dept on dept.dept_id = srd.dept_id
|
||||
order by role.role_level
|
||||
</select>
|
||||
|
||||
<select id="countAll" resultType="java.lang.Long">
|
||||
select count(*)
|
||||
from sys_role role
|
||||
<include refid="Where_sql"/>
|
||||
order by role.level
|
||||
</select>
|
||||
|
||||
<select id="findByName" resultType="me.zhengjie.modules.system.domain.Role">
|
||||
|
@ -52,7 +52,17 @@
|
||||
r.role_id as role_id, r.name as role_name, r.level as role_level, r.data_scope as role_data_scope
|
||||
</sql>
|
||||
|
||||
<sql id="Whrer_Sql">
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
select
|
||||
<include refid="Base_Column_List"/>,
|
||||
<include refid="Job_Column_List"/>,
|
||||
<include refid="Role_Column_List"/>
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
left join sys_users_jobs suj on u.user_id = suj.user_id
|
||||
left join sys_job j on suj.job_id = j.job_id
|
||||
left join sys_users_roles sur on u.user_id = sur.user_id
|
||||
left join sys_role r on sur.role_id = r.role_id
|
||||
<where>
|
||||
<if test="criteria.id != null">
|
||||
and u.user_id = #{criteria.id}
|
||||
@ -77,34 +87,7 @@
|
||||
and u.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
|
||||
</if>
|
||||
</where>
|
||||
</sql>
|
||||
|
||||
<select id="findAll" resultMap="BaseResultMap">
|
||||
select u.*,
|
||||
<include refid="Job_Column_List"/>,
|
||||
<include refid="Role_Column_List"/>
|
||||
from (
|
||||
select
|
||||
<include refid="Base_Column_List"/>
|
||||
from sys_user u
|
||||
left join sys_dept d on u.dept_id = d.dept_id
|
||||
<include refid="Whrer_Sql"/>
|
||||
<if test="criteria.offset != null">
|
||||
order by u.user_id desc
|
||||
limit #{criteria.offset}, #{criteria.size}
|
||||
</if>
|
||||
) u
|
||||
left join sys_users_jobs suj on u.user_user_id = suj.user_id
|
||||
left join sys_job j on suj.job_id = j.job_id
|
||||
left join sys_users_roles sur on u.user_user_id = sur.user_id
|
||||
left join sys_role r on sur.role_id = r.role_id
|
||||
order by u.user_user_id desc
|
||||
</select>
|
||||
|
||||
<select id="countAll" resultType="java.lang.Long">
|
||||
select count(*)
|
||||
from sys_user u
|
||||
<include refid="Whrer_Sql"/>
|
||||
order by u.user_id desc
|
||||
</select>
|
||||
|
||||
<select id="findByUsername" resultMap="BaseResultMap">
|
||||
|
Loading…
Reference in New Issue
Block a user