mdf:uservue

This commit is contained in:
zhangzhiqiang
2022-12-16 11:32:05 +08:00
parent 67bdfa66c9
commit 95ead132ba
9 changed files with 623 additions and 81 deletions

View File

@@ -49,7 +49,7 @@ public class SysRoleController {
@PutMapping
// @SaCheckPermission("roles:edit")
public ResponseEntity<Object> update(@RequestBody JSONObject param) {
roleService.update(param);
// roleService.update(param);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}

View File

@@ -18,11 +18,8 @@ package org.nl.system.controller.user;
import cn.dev33.satoken.secure.SaSecureUtil;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -43,9 +40,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.function.BiPredicate;
/**
* @author Zheng Jie
@@ -63,10 +60,9 @@ public class UserController {
@ApiOperation("查询用户")
@GetMapping
// @SaCheckPermission("user:list")
public ResponseEntity<Object> query(UserQuery query, PageQuery page){
Page<SysUser> pageable = userService.page(page.build(), query.build());
return new ResponseEntity<>(TableDataInfo.build(pageable),HttpStatus.OK);
List<Map<String, Object>> userDetail = userService.getUserDetail(query, page);
return new ResponseEntity(TableDataInfo.build(userDetail),HttpStatus.OK);
}
@Log("新增用户")

View File

@@ -1,9 +1,13 @@
package org.nl.system.service.user;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.user.dao.SysUser;
import org.nl.system.service.user.dto.UserQuery;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Map;
/**
@@ -18,4 +22,6 @@ public interface ISysUserService extends IService<SysUser> {
Map<String, String> updateAvatar(MultipartFile avatar);
List<Map<String, Object>> getUserDetail(UserQuery query, PageQuery pageQuery);
}

View File

@@ -1,10 +1,15 @@
package org.nl.system.service.user.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.nl.common.domain.query.PageQuery;
import org.nl.system.service.user.dao.SysUser;
import org.nl.system.service.user.dto.SysUserDetail;
import org.nl.system.service.user.dto.UserQuery;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -16,8 +21,8 @@ import java.util.List;
*/
public interface SysUserMapper extends BaseMapper<SysUser> {
List<SysUser> selectAl();
@Select("select * from sys_user")
List<SysUser> selectAl2();
List<SysUserDetail> getUserDetail(@Param("query") UserQuery query, @Param("page")PageQuery page);
List<Map<String,Object>> getDetailForMap(@Param("query") UserQuery query, @Param("page")PageQuery page);
}

View File

@@ -1,5 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.system.service.user.dao.mapper.SysUserMapper">
<sql id="Base_Column_List">
sys_user.user_id as userId,
sys_user.username as username,
sys_user.person_name as personName,
sys_user.gender,
sys_user.phone,
sys_user.email,
sys_user.avatar_name as avatarName,
sys_user.avatar_path as avatarPath,
sys_user.password,
sys_user.is_admin as isAdmin,
sys_user.is_used as isUsed,
sys_user.pwd_reset_user_id as pwdResetUserId,
sys_user.pwd_reset_time as pwdResetTime,
sys_user.create_id as createId,
sys_user.create_name as createName,
sys_user.create_time as createTime,
sys_user.update_optid as updateOptid,
sys_user.update_optname as updateOptname,
sys_user.update_time as updateTime,
sys_user.extperson_id as extpersonId,
sys_user.extuser_id as extuserId
</sql>
<resultMap id="UserDetail" type="org.nl.system.service.user.dto.SysUserDetail" >
<id column="user_id" property="userId" />
<result column="username" property="username" />
<result column="person_name" property="personName" />
<result column="gender" property="gender" />
<result column="phone" property="phone" />
<result column="email" property="email" />
<result column="avatar_name" property="avatarName" />
<result column="avatar_path" property="avatarPath" />
<result column="password" property="password" />
<result column="is_admin" property="isAdmin" />
<result column="is_used" property="isUsed" />
<result column="pwd_reset_user_id" property="pwdResetUserId" />
<result column="pwd_reset_time" property="pwdResetTime" />
<result column="create_id" property="createId" />
<result column="create_name" property="createName" />
<result column="create_time" property="createTime" />
<result column="update_optid" property="updateOptid" />
<result column="update_optname" property="updateOptname" />
<result column="update_tim" property="updateTime" />
<result column="extperson_id" property="extpersonId" />
<result column="extuser_i" property="extuserId" />
<collection property="depts" ofType="org.nl.system.service.dept.dao.SysDept">
<id property="dept_id" column="deptId"/>
<result column="dept_name" property="name"/>
</collection>
<collection property="roles" ofType="org.nl.system.service.role.dao.SysRole">
<id property="role_id" column="levelId"/>
<result column="name" property="name"/>
</collection>
</resultMap>
<select id="getUserDetail" resultMap="UserDetail">
SELECT
<include refid="Base_Column_List"/>
,sys_dept.dept_id
,sys_dept.name as dept_name
,sys_role.role_id
,sys_role.name as role_name
FROM
sys_user
left join sys_user_dept on sys_user.user_id = sys_user_dept.user_id
left join sys_users_roles on sys_users_roles.user_id = sys_user.user_id
left join sys_dept on sys_user_dept.dept_id = sys_dept.dept_id
left join sys_role on sys_users_roles.role_id = sys_role.role_id
<where>
<if test="query.deptId != null">
and sys_dept.dept_id = #{query.deptId}
</if>
<if test="query.isUsed != null">
and sys_user.is_used = #{query.isUsed}
</if>
<if test="query.startTime != null">
and and sys_user.create_time >= #{query.startTime}
</if>
<if test="query.endTime != null">
and #{query.endTime} >= sys_user.create_time
</if>
<if test="query.blurry != null">
and (email like query.blurry or username like query.blurry or person_name like query.blurry)
</if>
</where>
GROUP BY sys_user.user_id
</select>
<select id="getDetailForMap" resultType="java.util.Map">
SELECT
<include refid="Base_Column_List"/>
,GROUP_CONCAT(DISTINCT sys_dept.dept_id) as depts,
GROUP_CONCAT(DISTINCT sys_dept.name) as deptnames,
GROUP_CONCAT(DISTINCT role_id) as roles
FROM
sys_user
left join sys_user_dept on sys_user.user_id = sys_user_dept.user_id
left join sys_users_roles on sys_users_roles.user_id = sys_user.user_id
left join sys_dept on sys_user_dept.dept_id = sys_dept.dept_id
<where>
<if test="query.deptId != null">
and sys_dept.dept_id = #{query.deptId}
</if>
<if test="query.isUsed != null">
and sys_user.is_used = #{query.isUsed}
</if>
<if test="query.startTime != null">
and and sys_user.create_time >= #{query.startTime}
</if>
<if test="query.endTime != null">
and #{query.endTime} >= sys_user.create_time
</if>
<if test="query.blurry != null">
and (email like #{query.blurry} or username like #{query.blurry} or person_name like #{query.blurry})
</if>
</where>
GROUP BY sys_user.user_id
</select>
</mapper>

View File

@@ -0,0 +1,20 @@
package org.nl.system.service.user.dto;
import lombok.Data;
import org.nl.system.service.dept.dao.SysDept;
import org.nl.system.service.role.dao.SysRole;
import org.nl.system.service.user.dao.SysUser;
import java.util.List;
/*
* @author ZZQ
* @Date 2022/12/16 10:02 上午
*/
@Data
public class SysUserDetail extends SysUser {
private List<SysDept> depts;
private List<SysRole> roles;
}

View File

@@ -1,20 +1,26 @@
package org.nl.system.service.user.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.common.domain.query.PageQuery;
import org.nl.modules.common.config.FileProperties;
import org.nl.modules.common.utils.FileUtil;
import org.nl.modules.common.utils.SecurityUtils;
import org.nl.system.service.user.ISysUserService;
import org.nl.system.service.user.dao.SysUser;
import org.nl.system.service.user.dao.mapper.SysUserMapper;
import org.nl.system.service.user.dto.SysUserDetail;
import org.nl.system.service.user.dto.UserQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -31,6 +37,8 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
@Autowired
FileProperties properties;
@Autowired
SysUserMapper sysUserMapper;
@Override
public Map<String, String> updateAvatar(MultipartFile multipartFile) {
@@ -47,4 +55,10 @@ public class ISysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> imp
put("avatar", file.getName());
}};
}
@Override
public List<Map<String, Object>> getUserDetail(UserQuery query, PageQuery pageQuery) {
List<Map<String, Object>> userDetail = sysUserMapper.getDetailForMap(query, pageQuery);
return userDetail;
}
}