1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 23:11: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> {
IPage<User> getAll(IPage<User> page);
List<User> getAllWithRoleAndGroup(@Param("userList") List<User> userList);
List<User> getAllAffairUser();
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) {
IPage<User> userPage = PageDTO.of(currentPage, pageSize);
userPage = userMapper.getAll(userPage);
userPage.setRecords(userMapper.getAllWithRoleAndGroup(userPage.getRecords()));
userPage.getRecords().forEach(user -> {
if (user.getId() == 1L) {
user.setRoles(List.of(new Role(0L, "超级管理员")));

View File

@@ -2,7 +2,18 @@
<!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">
<select id="getAll" resultMap="userMap">
<select id="getAll" resultMap="userBase">
select t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
t_user.enable as user_enable,
t_user.deleted as user_deleted,
t_user.version as user_version
from t_user
where deleted = 0
</select>
<select id="getAllWithRoleAndGroup" resultMap="userMap">
select distinct t_user.id as user_id,
t_user.username as user_username,
t_user.department_id as user_department_id,
@@ -30,6 +41,12 @@
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_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 id="getOneById" resultMap="userMap">
@@ -98,7 +115,8 @@
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_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 t_power as tp on tp.id = tpr.power_id
left join t_menu tm on tp.id = tm.power_id
@@ -180,13 +198,16 @@
and t_user.department_id = #{departmentId}
</select>
<resultMap id="userMap" type="user">
<resultMap id="userBase" type="user">
<id property="id" column="user_id"/>
<result property="username" column="user_username"/>
<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"/>
</resultMap>
<resultMap id="userMap" type="user" extends="userBase">
<association property="staff" javaType="staff">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>
@@ -210,14 +231,8 @@
</collection>
</resultMap>
<resultMap id="userWithPowerMap" type="user">
<id property="id" column="user_id"/>
<result property="username" column="user_username"/>
<resultMap id="userWithPowerMap" type="user" extends="userBase">
<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">
<id property="id" column="staff_id"/>
<result property="firstName" column="staff_first_name"/>