1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 23:11:24 +08:00

Added pagination to UserManagement

This commit is contained in:
2023-05-31 00:41:58 +08:00
parent 102267ffd2
commit 7d11af0c31
7 changed files with 101 additions and 75 deletions

View File

@@ -3,7 +3,6 @@ package com.cfive.pinnacle.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cfive.pinnacle.controller.permission.UserController; import com.cfive.pinnacle.controller.permission.UserController;
import com.cfive.pinnacle.entity.Affair; import com.cfive.pinnacle.entity.Affair;
import com.cfive.pinnacle.entity.permission.User;
import com.cfive.pinnacle.entity.common.ResponseCode; import com.cfive.pinnacle.entity.common.ResponseCode;
import com.cfive.pinnacle.entity.common.ResponseResult; import com.cfive.pinnacle.entity.common.ResponseResult;
import com.cfive.pinnacle.service.IAffairService; import com.cfive.pinnacle.service.IAffairService;
@@ -40,17 +39,6 @@ public class AffairController {
return ResponseResult.build(ResponseCode.DATABASE_SAVE_OK, "success", affairService.save(affair)); return ResponseResult.build(ResponseCode.DATABASE_SAVE_OK, "success", affairService.save(affair));
} }
@GetMapping("/add/get_user")
public ResponseResult<List<User>> getUser() {
List<User> userList = userController.getAllUser().getData();
return ResponseResult.build(ResponseCode.DATABASE_SELECT_OK, "success", userList);
}//获取数据库中所有用户
@GetMapping("/add/get_current_user")
public ResponseResult<User> getCurrentUser() {
return ResponseResult.build(ResponseCode.DATABASE_SELECT_OK, "success", WebUtil.getLoginUser().getUser());
}//获取当前用户
@GetMapping("/personal_affairs") @GetMapping("/personal_affairs")
@PreAuthorize("hasAuthority('affair:self:get')") @PreAuthorize("hasAuthority('affair:self:get')")
public ResponseResult<List<Affair>> getPersonalAffairs() { public ResponseResult<List<Affair>> getPersonalAffairs() {

View File

@@ -1,6 +1,7 @@
package com.cfive.pinnacle.controller.permission; package com.cfive.pinnacle.controller.permission;
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.cfive.pinnacle.entity.permission.User; import com.cfive.pinnacle.entity.permission.User;
import com.cfive.pinnacle.entity.common.ResponseCode; import com.cfive.pinnacle.entity.common.ResponseCode;
import com.cfive.pinnacle.entity.common.ResponseResult; import com.cfive.pinnacle.entity.common.ResponseResult;
@@ -56,8 +57,8 @@ public class UserController {
@GetMapping @GetMapping
@PreAuthorize("hasAnyAuthority('system:user:get', 'system:user:add', 'system:user:modify')") @PreAuthorize("hasAnyAuthority('system:user:get', 'system:user:add', 'system:user:modify')")
@Operation(summary = "获取所有用户(权限管理相关)") @Operation(summary = "获取所有用户(权限管理相关)")
public ResponseResult<List<User>> getAllUser() { public ResponseResult<IPage<User>> getAllUser(Long currentPage, Long pageSize) {
List<User> users = userService.getAllUser(); IPage<User> users = userService.getAllUser( currentPage, pageSize);
return ResponseResult.databaseSelectSuccess(users); return ResponseResult.databaseSelectSuccess(users);
} }

View File

@@ -1,5 +1,6 @@
package com.cfive.pinnacle.mapper.permission; package com.cfive.pinnacle.mapper.permission;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cfive.pinnacle.entity.permission.User; import com.cfive.pinnacle.entity.permission.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@@ -17,7 +18,7 @@ import java.util.List;
*/ */
@Mapper @Mapper
public interface UserMapper extends BaseMapper<User> { public interface UserMapper extends BaseMapper<User> {
List<User> getAll(); IPage<User> getAll(IPage<User> page);
List<User> getAllAffairUser(); List<User> getAllAffairUser();

View File

@@ -1,5 +1,6 @@
package com.cfive.pinnacle.service.permission; package com.cfive.pinnacle.service.permission;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cfive.pinnacle.entity.permission.User; import com.cfive.pinnacle.entity.permission.User;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@@ -21,7 +22,7 @@ public interface IUserService extends IService<User> {
List<User> getDepartmentUser(); List<User> getDepartmentUser();
List<User> getAllUser(); IPage<User> getAllUser(Long currentPage, Long pageSize);
User getUser(long id); User getUser(long id);

View File

@@ -1,7 +1,9 @@
package com.cfive.pinnacle.service.permission.impl; package com.cfive.pinnacle.service.permission.impl;
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.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cfive.pinnacle.entity.permission.*; import com.cfive.pinnacle.entity.permission.*;
import com.cfive.pinnacle.mapper.permission.*; import com.cfive.pinnacle.mapper.permission.*;
import com.cfive.pinnacle.service.permission.IUserService; import com.cfive.pinnacle.service.permission.IUserService;
@@ -88,15 +90,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
} }
@Override @Override
public List<User> getAllUser() { public IPage<User> getAllUser(Long currentPage, Long pageSize) {
List<User> users = userMapper.getAll(); IPage<User> userPage = PageDTO.of(currentPage, pageSize);
users.forEach(user -> { userPage = userMapper.getAll(userPage);
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, "超级管理员")));
user.setGroups(List.of(new Group(0L, "超级管理员"))); user.setGroups(List.of(new Group(0L, "超级管理员")));
} }
}); });
return users; return userPage;
} }
@Override @Override

View File

@@ -3,7 +3,7 @@
<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="userMap">
select 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,
@@ -24,13 +24,12 @@
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 (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 t_user.deleted = 0;
</select> </select>
<select id="getOneById" resultMap="userMap"> <select id="getOneById" resultMap="userMap">
@@ -62,11 +61,11 @@
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 t_user.deleted = 0 where t_user.deleted = 0
and t_user.id = #{id}; and t_user.id = #{id}
</select> </select>
<select id="getOneWithPowerByUsername" resultMap="userWithPowerMap"> <select id="getOneWithPowerByUsername" resultMap="userWithPowerMap">
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.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,
@@ -106,11 +105,11 @@
left join t_element te on tp.id = te.power_id left join t_element te on tp.id = te.power_id
left join t_operation t on tp.id = t.power_id left join t_operation t on tp.id = t.power_id
where t_user.deleted = 0 where t_user.deleted = 0
and t_user.username = #{username}; and t_user.username = #{username}
</select> </select>
<select id="getAllAffairUser" resultMap="userMap"> <select id="getAllAffairUser" resultMap="userMap">
select 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,
@@ -142,11 +141,11 @@
left join (select * from t_operation) as t on t.power_id = tp.id left join (select * from t_operation) as t on t.power_id = tp.id
where t_user.deleted = 0 where t_user.deleted = 0
and t_user.id != 1 and t_user.id != 1
and t.code = 'affair:manage:modify'; and t.code = 'affair:manage:modify'
</select> </select>
<select id="getAllDepartmentUser" resultMap="userMap"> <select id="getAllDepartmentUser" resultMap="userMap">
select 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,
@@ -178,7 +177,7 @@
left join (select * from t_operation) as t on t.power_id = tp.id left join (select * from t_operation) as t on t.power_id = tp.id
where t_user.deleted = 0 where t_user.deleted = 0
and t_user.id != 1 and t_user.id != 1
and t_user.department_id = #{departmentId}; and t_user.department_id = #{departmentId}
</select> </select>
<resultMap id="userMap" type="user"> <resultMap id="userMap" type="user">

View File

@@ -22,6 +22,19 @@
custom-column-label_1="角色" custom-column-label_1="角色"
custom-column-label_2="用户组" custom-column-label_2="用户组"
/> />
<div class="pagination">
<el-pagination
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[50, 100, 200, 500, 1000]"
layout="total, sizes, prev, pager, next, jumper"
:total="totalCount"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
</div>
<el-dialog <el-dialog
:title="dialogTitle" :title="dialogTitle"
:close-on-click-modal="false" :close-on-click-modal="false"
@@ -132,6 +145,9 @@ export default {
dialogVisible: false, dialogVisible: false,
tableLoading: true, tableLoading: true,
dialogLoading: true, dialogLoading: true,
currentPage: 1,
pageSize: 50,
totalCount: 0,
userTable: [], userTable: [],
roles: [], roles: [],
groups: [], groups: [],
@@ -174,10 +190,13 @@ export default {
methods: { methods: {
loadUserTable() { loadUserTable() {
this.tableLoading = true this.tableLoading = true
request.get('/user').then((res) => { request
.get('/user', { currentPage: this.currentPage, pageSize: this.pageSize })
.then((res) => {
const response = res.data const response = res.data
if (response.code === DATABASE_SELECT_OK) { if (response.code === DATABASE_SELECT_OK) {
const users = response.data const users = response.data.records
this.totalCount = response.data.total
for (const user of users) { for (const user of users) {
user.name = user.username user.name = user.username
user.customColumn_1 = [] user.customColumn_1 = []
@@ -375,6 +394,14 @@ export default {
}, },
handleCancel() { handleCancel() {
this.dialogVisible = false this.dialogVisible = false
},
handleSizeChange(pageSize) {
this.pageSize = pageSize
this.loadUserTable()
},
handleCurrentChange(currentPage) {
this.currentPage = currentPage
this.loadUserTable()
} }
}, },
mounted() { mounted() {
@@ -383,4 +410,10 @@ export default {
} }
</script> </script>
<style scoped></style> <style scoped>
.pagination {
display: flex;
margin-top: 10px;
justify-content: center;
}
</style>