refactor(system): 优化用户查询功能并调整部门相关代码
- 移除了Dept实体中的members字段 - 删除了DeptMapper.xml中的members相关映射 - 移除了DeptTree类 - 更新了gateway.sql和sys_user.sql以添加用户数据 - 优化了UserController中的用户查询方法,支持按部门ID查询 - 更新了UserMapper.xml以适应新的查询逻辑 - 调整了UserQuery类,使用部门ID列表替代单个部门ID
This commit is contained in:
parent
d706e56451
commit
c7ae0385a0
@ -3,28 +3,28 @@ package com.zsc.edu.gateway.modules.system.controller;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.sun.source.tree.Tree;
|
||||
import com.zsc.edu.gateway.framework.mybatisplus.DataPermission;
|
||||
import com.zsc.edu.gateway.framework.security.UserDetailsImpl;
|
||||
import com.zsc.edu.gateway.modules.system.dto.UserCreateDto;
|
||||
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdateDto;
|
||||
import com.zsc.edu.gateway.modules.system.dto.UserSelfUpdatePasswordDto;
|
||||
import com.zsc.edu.gateway.modules.system.dto.UserUpdateDto;
|
||||
import com.zsc.edu.gateway.modules.system.entity.Authority;
|
||||
import com.zsc.edu.gateway.modules.system.entity.Menu;
|
||||
import com.zsc.edu.gateway.modules.system.entity.Role;
|
||||
import com.zsc.edu.gateway.modules.system.entity.User;
|
||||
import com.zsc.edu.gateway.modules.system.entity.*;
|
||||
import com.zsc.edu.gateway.modules.system.query.UserQuery;
|
||||
import com.zsc.edu.gateway.modules.system.service.*;
|
||||
import com.zsc.edu.gateway.modules.system.utils.TreeUtil;
|
||||
import com.zsc.edu.gateway.modules.system.vo.MenuVo;
|
||||
import com.zsc.edu.gateway.modules.system.vo.UserDetail;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.security.core.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.security.web.csrf.CsrfToken;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户Controller
|
||||
@ -119,10 +119,14 @@ public class UserController {
|
||||
* @param page 分页
|
||||
* @return 分页用户信息
|
||||
*/
|
||||
@DataPermission
|
||||
@GetMapping
|
||||
@GetMapping()
|
||||
@PreAuthorize("hasAuthority('system:user:query')")
|
||||
public Page<User> query(UserQuery query, Page<User> page) {
|
||||
public Page<User> query(Long deptId, UserQuery query, Page<User> page) {
|
||||
if (deptId != null) {
|
||||
List<Dept> deptList = TreeUtil.flat(deptService.listTree(deptId), Dept::getChildren, d -> d.setChildren(null));
|
||||
List<Long> deptIds = deptList.stream().map(Dept::getId).collect(Collectors.toList());
|
||||
query.setDeptIds(deptIds);
|
||||
}
|
||||
return service.page(page, query.wrapper());
|
||||
}
|
||||
|
||||
|
@ -48,7 +48,4 @@ public class Dept extends BaseEntity {
|
||||
@TableField(exist = false)
|
||||
public List<Dept> children = null;
|
||||
|
||||
@TableField(exist = false)
|
||||
public List<UserVo> members = null;
|
||||
|
||||
}
|
||||
|
@ -1,12 +1,14 @@
|
||||
package com.zsc.edu.gateway.modules.system.query;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
||||
import com.zsc.edu.gateway.modules.system.entity.User;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@ -48,7 +50,9 @@ public class UserQuery {
|
||||
/**
|
||||
* 部门集合
|
||||
*/
|
||||
public Long deptId;
|
||||
public List<Long> deptIds;
|
||||
|
||||
|
||||
|
||||
|
||||
public LambdaQueryWrapper<User> wrapper() {
|
||||
@ -57,7 +61,7 @@ public class UserQuery {
|
||||
queryWrapper.eq(StringUtils.hasText(this.phone), User::getPhone, this.phone);
|
||||
queryWrapper.eq(StringUtils.hasText(this.email), User::getEmail, this.email);
|
||||
queryWrapper.eq(Objects.nonNull(this.enableState), User::getEnableState, this.enableState);
|
||||
queryWrapper.eq(Objects.nonNull(this.deptId),User::getDeptId,this.deptId);
|
||||
queryWrapper.in(CollectionUtils.isNotEmpty(this.deptIds), User::getDeptId, this.deptIds);
|
||||
queryWrapper.eq(Objects.nonNull(this.roleId),User::getRoleId,this.roleId);
|
||||
return queryWrapper;
|
||||
}
|
||||
|
@ -1,25 +0,0 @@
|
||||
package com.zsc.edu.gateway.modules.system.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.zsc.edu.gateway.modules.system.entity.User;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhuang
|
||||
*/
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class DeptTree {
|
||||
|
||||
private Long id;
|
||||
private Long pid;
|
||||
private String name;
|
||||
List<DeptTree> children = new ArrayList<>();
|
||||
List<UserVo> members = new ArrayList<>();
|
||||
}
|
@ -754,3 +754,15 @@ comment on column sys_user.enable_state is '状态';
|
||||
alter table sys_user
|
||||
owner to gitea;
|
||||
|
||||
INSERT INTO sys_user (dept_id, role_id, username, password, phone, email, name, avatar, address, create_by, update_by,
|
||||
create_time, update_time, remark, enable_state, create_id)
|
||||
VALUES (1, 1, 'user1', 'password1', '13800138000', 'user1@example.com', '张三', 'avatar1.jpg', '北京市', 'admin',
|
||||
'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '备注1', '启用', 1),
|
||||
(2, 2, 'user2', 'password2', '13800138001', 'user2@example.com', '李四', 'avatar2.jpg', '上海市', 'admin',
|
||||
'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '备注2', '启用', 2),
|
||||
(3, 3, 'user3', 'password3', '13800138002', 'user3@example.com', '王五', 'avatar3.jpg', '广州市', 'admin',
|
||||
'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '备注3', '禁用', 3),
|
||||
(4, 4, 'user4', 'password4', '13800138003', 'user4@example.com', '赵六', 'avatar4.jpg', '深圳市', 'admin',
|
||||
'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '备注4', '启用', 4),
|
||||
(5, 5, 'user5', 'password5', '13800138004', 'user5@example.com', '孙七', 'avatar5.jpg', '杭州市', 'admin',
|
||||
'admin', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '备注5', '启用', 5);
|
||||
|
@ -1,5 +1,8 @@
|
||||
create table sys_user
|
||||
(
|
||||
id bigserial
|
||||
constraint _copy_3
|
||||
primary key,
|
||||
dept_id bigint,
|
||||
role_id bigint,
|
||||
username varchar(20) not null,
|
||||
@ -15,8 +18,7 @@ create table sys_user
|
||||
update_time timestamp(6),
|
||||
remark varchar(255),
|
||||
enable_state varchar(5),
|
||||
id bigint not null
|
||||
primary key
|
||||
create_id bigint
|
||||
);
|
||||
|
||||
comment
|
||||
@ -55,14 +57,13 @@ on column sys_user.update_by is '更新者';
|
||||
comment
|
||||
on column sys_user.enable_state is '状态';
|
||||
|
||||
alter table sys_user
|
||||
owner to gitea;
|
||||
|
||||
_user
|
||||
.
|
||||
enable_state
|
||||
is '状态';
|
||||
comment
|
||||
on column sys_user.create_id is '创建者ID';
|
||||
|
||||
alter table sys_user
|
||||
owner to gitea;
|
||||
|
||||
lter
|
||||
table sys_user
|
||||
owner to gitea;
|
||||
|
||||
|
@ -9,26 +9,10 @@
|
||||
<result column="name" property="name"/>
|
||||
<result column="dept_sort" property="deptSort"/>
|
||||
<result column="remark" property="remark"/>
|
||||
<collection
|
||||
property="members"
|
||||
ofType="com.zsc.edu.gateway.modules.system.vo.UserVo"
|
||||
autoMapping="true"
|
||||
columnPrefix="members_"
|
||||
>
|
||||
<id column="id" jdbcType="BIGINT" property="userId"/>
|
||||
<result column="username" jdbcType="VARCHAR" property="username"/>
|
||||
<result column="email" jdbcType="VARCHAR" property="email"/>
|
||||
<result column="phone" jdbcType="VARCHAR" property="phone"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<select id="selectDeptTree" resultMap="deptMap">
|
||||
SELECT sd.*,
|
||||
su.id as members_id,
|
||||
su.username as members_username,
|
||||
su.email as members_email,
|
||||
su.phone as members_phone
|
||||
FROM sys_dept sd
|
||||
left join sys_user su on sd.id = su.dept_id
|
||||
SELECT *
|
||||
FROM sys_dept
|
||||
</select>
|
||||
</mapper>
|
||||
|
@ -49,9 +49,8 @@
|
||||
</select>
|
||||
|
||||
<select id="page" resultType="com.zsc.edu.gateway.modules.system.vo.UserVo" resultMap="UserVoMap">
|
||||
select
|
||||
*
|
||||
from sys_user
|
||||
select su.*
|
||||
from sys_user su
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="detail" resultType="com.zsc.edu.gateway.modules.system.vo.UserVo" resultMap="UserVoMap">
|
||||
|
Loading…
Reference in New Issue
Block a user