1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-06 07:21:24 +08:00

Fixed pagination in UserManagement

This commit is contained in:
2023-05-31 02:59:02 +08:00
parent f2f213d831
commit 167e762a13
3 changed files with 96 additions and 78 deletions

View File

@@ -20,6 +20,8 @@ import java.util.List;
public interface UserMapper extends BaseMapper<User> { public interface UserMapper extends BaseMapper<User> {
IPage<User> getAll(IPage<User> page); IPage<User> getAll(IPage<User> page);
List<User> getAllWithRoleAndGroup(@Param("userList") List<User> userList);
List<User> getAllAffairUser(); List<User> getAllAffairUser();
List<User> getAllDepartmentUser(@Param("departmentId")long departmentId); List<User> getAllDepartmentUser(@Param("departmentId")long departmentId);

View File

@@ -93,6 +93,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
public IPage<User> getAllUser(Long currentPage, Long pageSize) { public IPage<User> getAllUser(Long currentPage, Long pageSize) {
IPage<User> userPage = PageDTO.of(currentPage, pageSize); IPage<User> userPage = PageDTO.of(currentPage, pageSize);
userPage = userMapper.getAll(userPage); userPage = userMapper.getAll(userPage);
userPage.setRecords(userMapper.getAllWithRoleAndGroup(userPage.getRecords()));
userPage.getRecords().forEach(user -> { userPage.getRecords().forEach(user -> {
if (user.getId() == 1L) { if (user.getId() == 1L) {
user.setRoles(List.of(new Role(0L, "超级管理员"))); user.setRoles(List.of(new Role(0L, "超级管理员")));

View File

@@ -2,34 +2,51 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cfive.pinnacle.mapper.permission.UserMapper"> <mapper namespace="com.cfive.pinnacle.mapper.permission.UserMapper">
<select id="getAll" resultMap="userMap"> <select id="getAll" resultMap="userBase">
select distinct t_user.id as user_id, select t_user.id as user_id,
t_user.username as user_username, t_user.username as user_username,
t_user.department_id as user_department_id, t_user.department_id as user_department_id,
t_user.enable as user_enable, t_user.enable as user_enable,
t_user.deleted as user_deleted, t_user.deleted as user_deleted,
t_user.version as user_version, t_user.version as user_version
ts.id as staff_id, from t_user
ts.first_name as staff_first_name, where deleted = 0
ts.last_name as staff_last_name, </select>
ts.deleted as staff_deleted,
ts.version as staff_version, <select id="getAllWithRoleAndGroup" resultMap="userMap">
tr.id as role_id, select distinct t_user.id as user_id,
tr.enable as role_enable, t_user.username as user_username,
tr.name as role_name, t_user.department_id as user_department_id,
tr.deleted as role_deleted, t_user.enable as user_enable,
tr.version as role_version, t_user.deleted as user_deleted,
tg.id as group_id, t_user.version as user_version,
tg.name as group_name, ts.id as staff_id,
tg.enable as group_enable, ts.first_name as staff_first_name,
tg.deleted as group_deleted, ts.last_name as staff_last_name,
tg.version as group_version ts.deleted as staff_deleted,
ts.version as staff_version,
tr.id as role_id,
tr.enable as role_enable,
tr.name as role_name,
tr.deleted as role_deleted,
tr.version as role_version,
tg.id as group_id,
tg.name as group_name,
tg.enable as group_enable,
tg.deleted as group_deleted,
tg.version as group_version
from (select * from t_user where deleted = 0) as t_user from (select * from t_user where deleted = 0) as t_user
left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id
left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id
left join (select * from t_role where deleted = 0) as tr on tr.id = tur.role_id left join (select * from t_role where deleted = 0) as tr on tr.id = tur.role_id
left join (select * from t_user_group where deleted = 0) as tug on t_user.id = tug.user_id left join (select * from t_user_group where deleted = 0) as tug on t_user.id = tug.user_id
left join (select * from t_group where deleted = 0) as tg on tg.id = tug.group_id left join (select * from t_group where deleted = 0) as tg on tg.id = tug.group_id
<where>
<foreach collection="userList" item="item" index="index" open="t_user.id in (" separator="," close=")"
nullable="true">
#{item.id}
</foreach>
</where>
</select> </select>
<select id="getOneById" resultMap="userMap"> <select id="getOneById" resultMap="userMap">
@@ -66,39 +83,40 @@
<select id="getOneWithPowerByUsername" resultMap="userWithPowerMap"> <select id="getOneWithPowerByUsername" resultMap="userWithPowerMap">
select t_user.id as user_id, select t_user.id as user_id,
t_user.username as user_username, t_user.username as user_username,
t_user.passwd as user_passwd, t_user.passwd as user_passwd,
t_user.department_id as user_department_id, t_user.department_id as user_department_id,
t_user.enable as user_enable, t_user.enable as user_enable,
t_user.deleted as user_deleted, t_user.deleted as user_deleted,
t_user.version as user_version, t_user.version as user_version,
ts.id as staff_id, ts.id as staff_id,
ts.first_name as staff_first_name, ts.first_name as staff_first_name,
ts.last_name as staff_last_name, ts.last_name as staff_last_name,
ts.deleted as staff_deleted, ts.deleted as staff_deleted,
ts.version as staff_version, ts.version as staff_version,
tm.id as menu_id, tm.id as menu_id,
tm.name as menu_name, tm.name as menu_name,
tm.url as menu_url, tm.url as menu_url,
tm.power_id as menu_power_id, tm.power_id as menu_power_id,
tm.parent_id as menu_parent_id, tm.parent_id as menu_parent_id,
te.id as element_id, te.id as element_id,
te.name as element_name, te.name as element_name,
te.power_id as element_power_id, te.power_id as element_power_id,
te.menu_id as element_menu_id, te.menu_id as element_menu_id,
t.id as operation_id, t.id as operation_id,
t.name as operation_name, t.name as operation_name,
t.code as operation_code, t.code as operation_code,
t.power_id as operation_power_id, t.power_id as operation_power_id,
t.element_id as operation_element_id, t.element_id as operation_element_id,
t.parent_id as operation_parent_id t.parent_id as operation_parent_id
from t_user from t_user
left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id
left join (select * from t_user_group where deleted = 0) as tug on t_user.id = tug.user_id left join (select * from t_user_group where deleted = 0) as tug on t_user.id = tug.user_id
left join (select * from t_group where deleted = 0 and enable = 1) as tg on tg.id = tug.group_id left join (select * from t_group where deleted = 0 and enable = 1) as tg on tg.id = tug.group_id
left join (select * from t_role_group where deleted = 0) as trg on tg.id = trg.group_id left join (select * from t_role_group where deleted = 0) as trg on tg.id = trg.group_id
left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id
left join (select * from t_role where deleted = 0 and enable = 1) as tr on tr.id = trg.role_id or tr.id = tur.role_id left join (select * from t_role where deleted = 0 and enable = 1) as tr
on tr.id = trg.role_id or tr.id = tur.role_id
left join (select * from t_power_role where deleted = 0) as tpr on tpr.role_id = tr.id left join (select * from t_power_role where deleted = 0) as tpr on tpr.role_id = tr.id
left join t_power as tp on tp.id = tpr.power_id left join t_power as tp on tp.id = tpr.power_id
left join t_menu tm on tp.id = tm.power_id left join t_menu tm on tp.id = tm.power_id
@@ -110,26 +128,26 @@
<select id="getAllAffairUser" resultMap="userMap"> <select id="getAllAffairUser" resultMap="userMap">
select distinct t_user.id as user_id, select distinct t_user.id as user_id,
t_user.username as user_username, t_user.username as user_username,
t_user.department_id as user_department_id, t_user.department_id as user_department_id,
t_user.enable as user_enable, t_user.enable as user_enable,
t_user.deleted as user_deleted, t_user.deleted as user_deleted,
t_user.version as user_version, t_user.version as user_version,
ts.id as staff_id, ts.id as staff_id,
ts.first_name as staff_first_name, ts.first_name as staff_first_name,
ts.last_name as staff_last_name, ts.last_name as staff_last_name,
ts.deleted as staff_deleted, ts.deleted as staff_deleted,
ts.version as staff_version, ts.version as staff_version,
tr.id as role_id, tr.id as role_id,
tr.enable as role_enable, tr.enable as role_enable,
tr.name as role_name, tr.name as role_name,
tr.deleted as role_deleted, tr.deleted as role_deleted,
tr.version as role_version, tr.version as role_version,
tg.id as group_id, tg.id as group_id,
tg.name as group_name, tg.name as group_name,
tg.enable as group_enable, tg.enable as group_enable,
tg.deleted as group_deleted, tg.deleted as group_deleted,
tg.version as group_version tg.version as group_version
from t_user from t_user
left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id left join (select * from t_staff where deleted = 0) as ts on ts.user_id = t_user.id
left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id left join (select * from t_user_role where deleted = 0) as tur on t_user.id = tur.user_id
@@ -180,13 +198,16 @@
and t_user.department_id = #{departmentId} and t_user.department_id = #{departmentId}
</select> </select>
<resultMap id="userMap" type="user"> <resultMap id="userBase" type="user">
<id property="id" column="user_id"/> <id property="id" column="user_id"/>
<result property="username" column="user_username"/> <result property="username" column="user_username"/>
<result property="departmentId" column="user_department_id"/> <result property="departmentId" column="user_department_id"/>
<result property="enable" column="user_enable"/> <result property="enable" column="user_enable"/>
<result property="deleted" column="user_deleted"/> <result property="deleted" column="user_deleted"/>
<result property="version" column="user_version"/> <result property="version" column="user_version"/>
</resultMap>
<resultMap id="userMap" type="user" extends="userBase">
<association property="staff" javaType="staff"> <association property="staff" javaType="staff">
<id property="id" column="staff_id"/> <id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/> <result property="firstName" column="staff_first_name"/>
@@ -210,14 +231,8 @@
</collection> </collection>
</resultMap> </resultMap>
<resultMap id="userWithPowerMap" type="user"> <resultMap id="userWithPowerMap" type="user" extends="userBase">
<id property="id" column="user_id"/>
<result property="username" column="user_username"/>
<result property="passwd" column="user_passwd"/> <result property="passwd" column="user_passwd"/>
<result property="departmentId" column="user_department_id"/>
<result property="enable" column="user_enable"/>
<result property="deleted" column="user_deleted"/>
<result property="version" column="user_version"/>
<association property="staff" javaType="staff"> <association property="staff" javaType="staff">
<id property="id" column="staff_id"/> <id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/> <result property="firstName" column="staff_first_name"/>