提交 ce32807d authored 作者: 000516's avatar 000516 提交者: Coding

查询user对象时,取消User对象本身的role值,改为查询一对多的中间表值

查询user对象时,取消User对象本身的role值,改为查询一对多的中间表值
......@@ -12,6 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2024-10-30 17
......@@ -52,11 +54,14 @@ public class SysUserCoreController {
@PutMapping
public void edit(@Validated @RequestBody UserVo userVo) {
deptDao.checkDeptDataScope(userVo.getDeptId());
roleDao.checkRoleDataScope(userVo.getRoleId());
roleDao.checkRoleDataScope(userVo.getRoleIds());
userVo.setUpdateUserId(SecurityUtils.getUserId());
userVo.setUpdateBy(SecurityUtils.getUsername());
sysUserService.updateUser(userVo);
if (Objects.isNull(userVo.getPrivilegeId())){
return;
}
// 开通促销账号
sysUserService.openPromotion(userVo);
}
......
......@@ -34,6 +34,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
......@@ -205,6 +206,8 @@ public class SysUserQueryController extends BaseController {
UserDto userDto = new UserDto();
BeanUtils.copyProperties(sysUser, userDto);
SysUserProDto sysUserProDto = userQueryService.selectUserPromotion(userDto);
List<Long> roleIds = sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList());
userDto.setRoleIds(roleIds.toArray(new Long[0]));
userDto.setIsOpenPromotion(sysUserProDto != null);
if (userDto.getIsOpenPromotion()) {
userDto.setPrivilegeId(sysUserProDto.getPrivilegeId());
......@@ -213,7 +216,7 @@ public class SysUserQueryController extends BaseController {
ajax.put(AjaxResult.DATA_TAG, userDto);
// ajax.put("postIds", sysPostDao.selectPostListByUserId(userId));
// ajax.put("roleIds", sysUser.getRoles().stream().map(SysRole::getRoleId).collect(Collectors.toList()));
}
return ajax;
}
......
......@@ -58,7 +58,8 @@ public class SysMenuDaoImpl implements ISysMenuDao
/**
* 查询系统菜单列表
*
* 只有admin超管一个账号可以进行角色-菜单管理
* 【其他账号登录只能看到自己角色的菜单的逻辑】被注视,不可使用。
* @param menu 菜单信息
* @return 菜单列表
*/
......
......@@ -254,17 +254,13 @@ public class SysUserDaoImpl implements ISysUserDao {
SysUser user = new SysUser();
BeanUtils.copyProperties(userVo, user);
// 补充角色
SysRole sysRole = roleMapper.selectById(user.getRoleId());
user.setRoleName(sysRole.getRoleName());
// 新增用户信息
int rows = userMapper.insert(user);
// 新增用户岗位关联
// insertUserPost(user);
// 新增用户与角色管理
// insertUserRole(user);
insertUserRoleOne(user.getUserId(), user.getRoleId());
insertUserRole(user);
// insertUserRoleOne(user.getUserId(), user.getRoleId());
return rows;
}
......@@ -319,11 +315,11 @@ public class SysUserDaoImpl implements ISysUserDao {
// 删除用户与角色关联
userRoleMapper.deleteUserRoleByUserId(userVo.getUserId());
// 新增用户与角色管理
// insertUserRole(user);
insertUserRoleOne(user.getUserId(), user.getRoleId());
insertUserRole(user);
user.setPassword(null);
userMapper.updateById(user);
return userMapper.updateRoleName(user);
return userMapper.updateById(user);
// insertUserRoleOne(user.getUserId(), user.getRoleId());
// return userMapper.updateRoleName(user);
}
/**
......@@ -551,37 +547,8 @@ public class SysUserDaoImpl implements ISysUserDao {
@Override
public PageInfo selectUserPage(SysUserWq sysUserWq) {
LambdaQueryWrapper<SysUser> qw = buildWrapper(sysUserWq);
Page<SysUser> pageR = userMapper.selectPage(TableSupport.pageI(), qw);
Page<SysUser> pageR = userMapper.selectUserPage(TableSupport.pageI(), sysUserWq);
PageInfo<SysUser> pageInfo = new PageInfo<>(pageR);
return pageInfo;
}
private LambdaQueryWrapper<SysUser> buildWrapper(SysUserWq sysUserWq) {
LambdaQueryWrapper<SysUser> qw = new LambdaQueryWrapper<>();
qw.eq(SysUser::getDelFlag, "0");
if (StringUtils.isNotBlank(sysUserWq.getStatus())) {
qw.eq(SysUser::getStatus, sysUserWq.getStatus());
}
if (Objects.nonNull(sysUserWq.getRoleId())) {
qw.eq(SysUser::getRoleId, sysUserWq.getRoleId());
}
if (Objects.nonNull(sysUserWq.getDeptId())) {
qw.eq(SysUser::getDeptId, sysUserWq.getDeptId());
}
if (Objects.nonNull(sysUserWq.getBeginTime())&&Objects.nonNull(sysUserWq.getEndTime())){
qw.between(SysUser::getCreateTime, sysUserWq.getBeginTime(),sysUserWq.getEndTime());
}
if (Objects.nonNull(sysUserWq.getExistRole()) && !sysUserWq.getExistRole()){
qw.isNull(SysUser::getRoleId);
}
if (StringUtils.isNotBlank(sysUserWq.getUserNameLike())) {
qw.like(SysUser::getUserName, sysUserWq.getUserNameLike());
}
if (StringUtils.isNotBlank(sysUserWq.getPhonenumberLike())) {
qw.like(SysUser::getPhonenumber, sysUserWq.getPhonenumberLike());
}
return qw;
}
}
......@@ -3,6 +3,8 @@ package com.sfa.system.domain.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sfa.system.domain.wq.SysUserWq;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.sfa.system.api.domain.SysUser;
......@@ -131,9 +133,11 @@ public interface SysUserMapper extends BaseMapper<SysUser>
*/
public SysUser checkEmailUnique(String email);
List<SysUser> selectUserPage();
// List<SysUser> selectUserPage();
void updateUserPostByPostId(@Param("postId") Long postId, @Param("postName") String postName, @Param("ruleId") Long ruleId, @Param("ruleName") String ruleName);
int updateRoleName(SysUser user);
Page<SysUser> selectUserPage(Page<SysUser> page, @Param("sysUserWq") SysUserWq sysUserWq);
}
......@@ -18,6 +18,7 @@ public class SysUserWq {
private String phonenumber;
private String userNameLike;
private String nickNameLike;
private String phonenumberLike;
......
......@@ -33,6 +33,7 @@ public class UserQueryServiceImpl implements IUserQueryService {
SysUserWq sysUserWq = new SysUserWq();
BeanUtils.copyProperties(userVo,sysUserWq);
sysUserWq.setUserNameLike(userVo.getUserName())
.setNickNameLike(userVo.getNickName())
.setPhonenumberLike(userVo.getPhonenumber());
return userDao.selectUserPage(sysUserWq);
......
spring:
application:
name: wangxiaolu-sfa-system
cloud:
nacos:
discovery:
server-addr: 10.0.0.170:8848
group: sfa
namespace: e2996044-6ddc-4988-8810-602e05d01ccf
config:
server-addr: 10.0.0.170:8848
file-extension: yaml
group: sfa
namespace: e2996044-6ddc-4988-8810-602e05d01ccf
......@@ -24,8 +24,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="roleId" column="role_id" />
<result property="roleName" column="role_name" />
<!-- <result property="roleId" column="role_id" />-->
<!-- <result property="roleName" column="role_name" />-->
<result property="workProvinceNum" column="work_province_num" />
<result property="workProvinceName" column="work_province_name" />
<result property="workCityNum" column="work_city_num" />
......@@ -57,10 +57,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="dataScope" column="data_scope" />
<result property="status" column="role_status" />
</resultMap>
<!-- u.role_id,u.role_name,-->
<sql id="selectUserVo">
select u.user_id, u.dept_id, u.user_name, u.nick_name,u.password, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
u.role_id,u.role_name,u.post_id,u.post_name,u.rule_id,u.rule_name,u.work_province_num,u.work_province_name,u.work_city_num,u.work_city_name,
u.post_id,u.post_name,u.rule_id,u.rule_name,u.work_province_num,u.work_province_name,u.work_city_num,u.work_city_name,
d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
from sys_user u
......@@ -222,28 +223,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectUserPage" parameterType="com.sfa.system.api.domain.SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,
u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.post_id,u.post_name,u.rule_id,u.rule_name, d.dept_name, d.leader from sys_user
u
left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0'
<if test="userId != null and userId != 0">
AND u.user_id = #{userId}
<!-- <select id="selectUserPage" parameterType="com.sfa.system.api.domain.SysUser" resultMap="SysUserResult">-->
<!-- select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status,-->
<!-- u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.post_id,u.post_name,u.rule_id,u.rule_name, d.dept_name, d.leader from sys_user-->
<!-- u-->
<!-- left join sys_dept d on u.dept_id = d.dept_id-->
<!-- where u.del_flag = '0'-->
<!-- <if test="userId != null and userId != 0">-->
<!-- AND u.user_id = #{userId}-->
<!-- </if>-->
<!-- <if test="userName != null and userName != ''">-->
<!-- AND u.user_name like concat('%', #{userName}, '%')-->
<!-- </if>-->
<!-- <if test="status != null and status != ''">-->
<!-- AND u.status = #{status}-->
<!-- </if>-->
<!-- <if test="phonenumber != null and phonenumber != ''">-->
<!-- AND u.phonenumber like concat('%', #{phonenumber}, '%')-->
<!-- </if>-->
<!-- <if test="deptId != null and deptId != 0">-->
<!-- AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},-->
<!-- ancestors) ))-->
<!-- </if>-->
<!-- </select>-->
<select id="selectUserPage" resultType="com.sfa.system.api.domain.SysUser">
select *
from sys_user su
where del_flag = '0'
<if test="sysUserWq.status != null and sysUserWq.status != ''">
and su.status = #{sysUserWq.status}
</if>
<if test="userName != null and userName != ''">
AND u.user_name like concat('%', #{userName}, '%')
<if test="sysUserWq.deptId != null">
and su.dept_id = #{sysUserWq.deptId}
</if>
<if test="status != null and status != ''">
AND u.status = #{status}
<if test="sysUserWq.nickNameLike != null and sysUserWq.nickNameLike != ''">
and su.nick_name like concat('%',#{sysUserWq.nickNameLike},'%')
</if>
<if test="phonenumber != null and phonenumber != ''">
AND u.phonenumber like concat('%', #{phonenumber}, '%')
<if test="sysUserWq.userNameLike != null and sysUserWq.userNameLike != ''">
and su.user_name like concat('%',#{sysUserWq.userNameLike},'%')
</if>
<if test="deptId != null and deptId != 0">
AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
ancestors) ))
<if test="sysUserWq.phonenumberLike != null and sysUserWq.phonenumberLike != ''">
and su.phonenumber like concat('%',#{sysUserWq.phonenumberLike},'%')
</if>
<if test="sysUserWq.beginTime != null and sysUserWq.endTime != null">
AND su.create_time BETWEEN #{sysUserWq.beginTime} AND #{sysUserWq.endTime}
</if>
<if test="sysUserWq.roleId != null">
<if test="sysUserWq.existRole != null and !sysUserWq.existRole">
and su.user_id not in (select user_id from sys_user_role where role_id = #{sysUserWq.roleId})
</if>
<if test="sysUserWq.existRole == null or sysUserWq.existRole">
and su.user_id in (select user_id from sys_user_role where role_id = #{sysUserWq.roleId})
</if>
</if>
</select>
<update id="updateUserPostByPostId">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论