1
0
mirror of https://github.com/FatttSnake/Pinnacle-OA.git synced 2026-04-05 15:01:23 +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.cfive.pinnacle.controller.permission.UserController;
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.ResponseResult;
import com.cfive.pinnacle.service.IAffairService;
@@ -40,17 +39,6 @@ public class AffairController {
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")
@PreAuthorize("hasAuthority('affair:self:get')")
public ResponseResult<List<Affair>> getPersonalAffairs() {

View File

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

View File

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

View File

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

View File

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

View File

@@ -3,7 +3,7 @@
<mapper namespace="com.cfive.pinnacle.mapper.permission.UserMapper">
<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.department_id as user_department_id,
t_user.enable as user_enable,
@@ -24,13 +24,12 @@
tg.enable as group_enable,
tg.deleted as group_deleted,
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_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_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 t_user.deleted = 0;
</select>
<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_group where deleted = 0) as tg on tg.id = tug.group_id
where t_user.deleted = 0
and t_user.id = #{id};
and t_user.id = #{id}
</select>
<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.passwd as user_passwd,
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_operation t on tp.id = t.power_id
where t_user.deleted = 0
and t_user.username = #{username};
and t_user.username = #{username}
</select>
<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.department_id as user_department_id,
t_user.enable as user_enable,
@@ -142,31 +141,31 @@
left join (select * from t_operation) as t on t.power_id = tp.id
where t_user.deleted = 0
and t_user.id != 1
and t.code = 'affair:manage:modify';
and t.code = 'affair:manage:modify'
</select>
<select id="getAllDepartmentUser" resultMap="userMap">
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,
ts.id as staff_id,
ts.first_name as staff_first_name,
ts.last_name as staff_last_name,
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
select distinct 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,
ts.id as staff_id,
ts.first_name as staff_first_name,
ts.last_name as staff_last_name,
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 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_user_role where deleted = 0) as tur on t_user.id = tur.user_id
@@ -178,7 +177,7 @@
left join (select * from t_operation) as t on t.power_id = tp.id
where t_user.deleted = 0
and t_user.id != 1
and t_user.department_id = #{departmentId};
and t_user.department_id = #{departmentId}
</select>
<resultMap id="userMap" type="user">

View File

@@ -22,6 +22,19 @@
custom-column-label_1="角色"
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
:title="dialogTitle"
:close-on-click-modal="false"
@@ -132,6 +145,9 @@ export default {
dialogVisible: false,
tableLoading: true,
dialogLoading: true,
currentPage: 1,
pageSize: 50,
totalCount: 0,
userTable: [],
roles: [],
groups: [],
@@ -174,32 +190,35 @@ export default {
methods: {
loadUserTable() {
this.tableLoading = true
request.get('/user').then((res) => {
const response = res.data
if (response.code === DATABASE_SELECT_OK) {
const users = response.data
for (const user of users) {
user.name = user.username
user.customColumn_1 = []
user.customColumn_2 = []
const roles = user.roles
for (const role of roles) {
user.customColumn_1.push(role.name)
}
const groups = user.groups
for (const group of groups) {
user.customColumn_2.push(group.name)
request
.get('/user', { currentPage: this.currentPage, pageSize: this.pageSize })
.then((res) => {
const response = res.data
if (response.code === DATABASE_SELECT_OK) {
const users = response.data.records
this.totalCount = response.data.total
for (const user of users) {
user.name = user.username
user.customColumn_1 = []
user.customColumn_2 = []
const roles = user.roles
for (const role of roles) {
user.customColumn_1.push(role.name)
}
const groups = user.groups
for (const group of groups) {
user.customColumn_2.push(group.name)
}
}
this.userTable = users
this.tableLoading = false
} else {
ElMessage.error({
dangerouslyUseHTMLString: true,
message: '<strong>查询出错</strong>: ' + response.msg
})
}
this.userTable = users
this.tableLoading = false
} else {
ElMessage.error({
dangerouslyUseHTMLString: true,
message: '<strong>查询出错</strong>: ' + response.msg
})
}
})
})
},
handleAddBtn() {
this.isAddNew = true
@@ -375,6 +394,14 @@ export default {
},
handleCancel() {
this.dialogVisible = false
},
handleSizeChange(pageSize) {
this.pageSize = pageSize
this.loadUserTable()
},
handleCurrentChange(currentPage) {
this.currentPage = currentPage
this.loadUserTable()
}
},
mounted() {
@@ -383,4 +410,10 @@ export default {
}
</script>
<style scoped></style>
<style scoped>
.pagination {
display: flex;
margin-top: 10px;
justify-content: center;
}
</style>