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:
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user