✨ 新增解绑用户角色关联关系的功能
This commit is contained in:
@@ -4,12 +4,15 @@ import com.hccake.ballcat.admin.constants.SysRoleConst;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.converter.SysRoleConverter;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.dto.SysRoleUpdateDTO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.RoleBindUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.SysRoleQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.PermissionVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.SysRoleVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysPermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRolePermissionService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysRoleService;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysUserRoleService;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.CreateOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.DeleteOperationLogging;
|
||||
import com.hccake.ballcat.commom.log.operation.annotation.UpdateOperationLogging;
|
||||
@@ -39,10 +42,12 @@ public class SysRoleController {
|
||||
|
||||
private final SysRoleService sysRoleService;
|
||||
|
||||
private final SysRolePermissionService sysRolePermissionService;
|
||||
|
||||
private final SysPermissionService sysPermissionService;
|
||||
|
||||
private final SysUserRoleService sysUserRoleService;
|
||||
|
||||
private final SysRolePermissionService sysRolePermissionService;
|
||||
|
||||
/**
|
||||
* 分页查询角色信息
|
||||
* @param pageParam 分页参数
|
||||
@@ -152,4 +157,28 @@ public class SysRoleController {
|
||||
return R.ok(sysRoleService.listSelectData());
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询已授权指定角色的用户列表
|
||||
* @param roleBindUserQO 角色绑定用户的查询条件
|
||||
* @return R
|
||||
*/
|
||||
@GetMapping("/user/page")
|
||||
@ApiOperation(value = "查看已授权指定角色的用户列表", notes = "查看已授权指定角色的用户列表")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:grant')")
|
||||
public R<PageResult<RoleBindUserVO>> queryUserPageByRoleCode(PageParam pageParam,
|
||||
@Valid RoleBindUserQO roleBindUserQO) {
|
||||
return R.ok(sysUserRoleService.queryUserPageByRoleCode(pageParam, roleBindUserQO));
|
||||
}
|
||||
|
||||
/**
|
||||
* 解绑与用户绑定关系
|
||||
* @return R
|
||||
*/
|
||||
@DeleteMapping("/user")
|
||||
@ApiOperation(value = "解绑与用户绑定关系", notes = "解绑与用户绑定关系")
|
||||
@PreAuthorize("@per.hasPermission('sys:sysrole:grant')")
|
||||
public R<Boolean> unbindRoleUser(@RequestParam Integer userId, @RequestParam String roleCode) {
|
||||
return R.ok(sysUserRoleService.unbindRoleUser(userId, roleCode));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,10 +1,19 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysUserRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.RoleBindUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO;
|
||||
import com.hccake.ballcat.common.model.domain.PageParam;
|
||||
import com.hccake.ballcat.common.model.domain.PageResult;
|
||||
import com.hccake.extend.mybatis.plus.mapper.ExtendMapper;
|
||||
import com.hccake.extend.mybatis.plus.toolkit.WrappersX;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -17,26 +26,76 @@ import java.util.List;
|
||||
*/
|
||||
public interface SysUserRoleMapper extends ExtendMapper<SysUserRole> {
|
||||
|
||||
/**
|
||||
* 通过用户ID,查询角色
|
||||
* @param userId 用户ID
|
||||
* @return 用户拥有的角色集合
|
||||
*/
|
||||
List<SysRole> listRoles(Integer userId);
|
||||
|
||||
/**
|
||||
* 删除用户关联关系
|
||||
* @param userId 用户ID
|
||||
* @return boolean 删除是否成功
|
||||
*/
|
||||
Boolean deleteByUserId(@Param("userId") Integer userId);
|
||||
default boolean deleteByUserId(Integer userId) {
|
||||
int i = this.delete(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, userId));
|
||||
return SqlHelper.retBool(i);
|
||||
}
|
||||
|
||||
/**
|
||||
* 插入用户关联关系
|
||||
* @param userId 用户ID
|
||||
* @param roleCodes 角色标识集合
|
||||
* 插入用户角色关联关系
|
||||
* @param list 用户角色关联集合
|
||||
* @return boolean 插入是否成功
|
||||
*/
|
||||
Boolean insertUserRoles(@Param("userId") Integer userId, @Param("roleCodes") List<String> roleCodes);
|
||||
default boolean insertUserRoles(List<SysUserRole> list) {
|
||||
int i = this.insertBatchSomeColumn(list);
|
||||
return SqlHelper.retBool(i);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户是否存在角色绑定关系
|
||||
* @param userId 用户ID
|
||||
* @param roleCode 角色标识,可为空
|
||||
* @return 存在:true
|
||||
*/
|
||||
default boolean existsRoleBind(Integer userId, String roleCode) {
|
||||
Integer num = this.selectCount(WrappersX.lambdaQueryX(SysUserRole.class).eq(SysUserRole::getUserId, userId)
|
||||
.eqIfPresent(SysUserRole::getRoleCode, roleCode));
|
||||
return SqlHelper.retBool(num);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过角色标识,查询用户列表
|
||||
* @param pageParam 分页参数
|
||||
* @param roleBindUserQO 角色标识
|
||||
* @return List<SysUser> 角色授权的用户列表
|
||||
*/
|
||||
default PageResult<RoleBindUserVO> queryUserPageByRoleCode(PageParam pageParam, RoleBindUserQO roleBindUserQO) {
|
||||
// TODO 连表查询排序,这里暂时禁用
|
||||
pageParam.setSorts(new ArrayList<>());
|
||||
IPage<RoleBindUserVO> page = this.prodPage(pageParam);
|
||||
this.queryUserPageByRoleCode(page, roleBindUserQO);
|
||||
return new PageResult<>(page.getRecords(), page.getTotal());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除角色和用户关系
|
||||
* @param userId 用户ID
|
||||
* @param roleCode 角色标识
|
||||
* @return 删除成功:true
|
||||
*/
|
||||
default boolean deleteUserRole(Integer userId, String roleCode) {
|
||||
int i = this.delete(Wrappers.lambdaQuery(SysUserRole.class).eq(SysUserRole::getUserId, userId)
|
||||
.eq(SysUserRole::getRoleCode, roleCode));
|
||||
return SqlHelper.retBool(i);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过用户ID,查询角色
|
||||
* @param userId 用户ID
|
||||
* @return 用户拥有的角色集合
|
||||
*/
|
||||
List<SysRole> listRoleByUserId(Integer userId);
|
||||
|
||||
/**
|
||||
* 通过角色标识,查询用户列表
|
||||
* @param roleCode 角色标识
|
||||
* @return List<SysUser> 角色授权的用户列表
|
||||
*/
|
||||
IPage<RoleBindUserVO> queryUserPageByRoleCode(IPage<RoleBindUserVO> page, @Param("qo") RoleBindUserQO roleCode);
|
||||
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.hccake.ballcat.admin.modules.sys.model.entity;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.hccake.extend.mybatis.plus.alias.TableAlias;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -14,6 +15,7 @@ import lombok.Data;
|
||||
* @date 2019-10-14 17:42:23
|
||||
*/
|
||||
@Data
|
||||
@TableAlias("ur")
|
||||
@TableName("sys_user_role")
|
||||
@ApiModel(value = "用户角色")
|
||||
public class SysUserRole {
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.qo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
/**
|
||||
* 角色绑定用户查询对象
|
||||
*
|
||||
* @author Hccake
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "角色绑定用户查询对象")
|
||||
public class RoleBindUserQO {
|
||||
|
||||
@NotNull(message = "角色标识不能为空!")
|
||||
@ApiModelProperty(value = "角色标识")
|
||||
private String roleCode;
|
||||
|
||||
@ApiModelProperty(value = "用户ID")
|
||||
private Integer userId;
|
||||
|
||||
@ApiModelProperty(value = "用户名")
|
||||
private Integer username;
|
||||
|
||||
@ApiModelProperty(value = "组织ID")
|
||||
private Integer organizationId;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.model.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 角色绑定的用户
|
||||
*
|
||||
* @author ballcat code generator
|
||||
* @date 2019-09-12 20:39:31
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "角色绑定的用户VO")
|
||||
public class RoleBindUserVO implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "用户ID")
|
||||
private Integer userId;
|
||||
|
||||
@ApiModelProperty(value = "登录账号")
|
||||
private String username;
|
||||
|
||||
@ApiModelProperty(value = "昵称")
|
||||
private String nickname;
|
||||
|
||||
@ApiModelProperty(value = "1:系统用户, 2:客户用户")
|
||||
private Integer type;
|
||||
|
||||
@ApiModelProperty(value = "组织机构ID")
|
||||
private Integer organizationId;
|
||||
|
||||
@ApiModelProperty(value = "组织机构名称")
|
||||
private String organizationName;
|
||||
|
||||
}
|
||||
@@ -2,6 +2,10 @@ package com.hccake.ballcat.admin.modules.sys.service;
|
||||
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysUserRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.RoleBindUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO;
|
||||
import com.hccake.ballcat.common.model.domain.PageParam;
|
||||
import com.hccake.ballcat.common.model.domain.PageResult;
|
||||
import com.hccake.extend.mybatis.plus.service.ExtendService;
|
||||
|
||||
import java.util.List;
|
||||
@@ -18,7 +22,7 @@ public interface SysUserRoleService extends ExtendService<SysUserRole> {
|
||||
* @param userId 用户ID
|
||||
* @return 删除是否程
|
||||
*/
|
||||
Boolean deleteByUserId(Integer userId);
|
||||
boolean deleteByUserId(Integer userId);
|
||||
|
||||
/**
|
||||
* 插入用户角色关联关系
|
||||
@@ -26,7 +30,7 @@ public interface SysUserRoleService extends ExtendService<SysUserRole> {
|
||||
* @param roleCodes 角色标识集合
|
||||
* @return 插入是否成功
|
||||
*/
|
||||
Boolean insertUserRoles(Integer userId, List<String> roleCodes);
|
||||
boolean insertUserRoles(Integer userId, List<String> roleCodes);
|
||||
|
||||
/**
|
||||
* 更新用户关联关系
|
||||
@@ -43,4 +47,20 @@ public interface SysUserRoleService extends ExtendService<SysUserRole> {
|
||||
*/
|
||||
List<SysRole> listRoles(Integer userId);
|
||||
|
||||
/**
|
||||
* 通过角色标识,查询用户列表
|
||||
* @param pageParam 分页参数
|
||||
* @param roleCode 角色标识
|
||||
* @return PageResult<RoleBindUserVO> 角色授权的用户列表
|
||||
*/
|
||||
PageResult<RoleBindUserVO> queryUserPageByRoleCode(PageParam pageParam, RoleBindUserQO roleCode);
|
||||
|
||||
/**
|
||||
* 解绑角色和用户关系
|
||||
* @param userId 用户ID
|
||||
* @param roleCode 角色标识
|
||||
* @return 解绑成功:true
|
||||
*/
|
||||
boolean unbindRoleUser(Integer userId, String roleCode);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,14 +1,25 @@
|
||||
package com.hccake.ballcat.admin.modules.sys.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
|
||||
import com.hccake.ballcat.admin.modules.sys.mapper.SysUserRoleMapper;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.entity.SysUserRole;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.qo.RoleBindUserQO;
|
||||
import com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO;
|
||||
import com.hccake.ballcat.admin.modules.sys.service.SysUserRoleService;
|
||||
import com.hccake.ballcat.common.core.exception.BusinessException;
|
||||
import com.hccake.ballcat.common.model.domain.PageParam;
|
||||
import com.hccake.ballcat.common.model.domain.PageResult;
|
||||
import com.hccake.ballcat.common.model.result.BaseResultCode;
|
||||
import com.hccake.extend.mybatis.plus.service.impl.ExtendServiceImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.lang.NonNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -16,6 +27,7 @@ import java.util.List;
|
||||
*
|
||||
* @author Hccake
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper, SysUserRole>
|
||||
implements SysUserRoleService {
|
||||
@@ -26,7 +38,7 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper,
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteByUserId(Integer userId) {
|
||||
public boolean deleteByUserId(Integer userId) {
|
||||
return baseMapper.deleteByUserId(userId);
|
||||
}
|
||||
|
||||
@@ -37,8 +49,33 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper,
|
||||
* @return boolean
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertUserRoles(Integer userId, List<String> roleCodes) {
|
||||
return baseMapper.insertUserRoles(userId, roleCodes);
|
||||
public boolean insertUserRoles(@NonNull Integer userId, @NonNull List<String> roleCodes) {
|
||||
List<SysUserRole> list = prodSysUserRoles(userId, roleCodes);
|
||||
// 批量插入
|
||||
boolean insertSuccess = SqlHelper.retBool(baseMapper.insertBatchSomeColumn(list));
|
||||
Assert.isTrue(insertSuccess, () -> {
|
||||
log.error("[insertUserRoles] 插入用户角色关联关系失败,userId:{},roleCodes:{}", userId, roleCodes);
|
||||
return new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "插入用户角色关联关系失败");
|
||||
});
|
||||
return insertSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据用户ID 和 角色Code 生成SysUserRole实体集合
|
||||
* @param userId 用户ID
|
||||
* @param roleCodes 角色标识集合
|
||||
* @return List<SysUserRole>
|
||||
*/
|
||||
private List<SysUserRole> prodSysUserRoles(Integer userId, List<String> roleCodes) {
|
||||
// 转换为 SysUserRole 实体集合
|
||||
List<SysUserRole> list = new ArrayList<>();
|
||||
for (String roleCode : roleCodes) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(userId);
|
||||
sysUserRole.setRoleCode(roleCode);
|
||||
list.add(sysUserRole);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -48,13 +85,30 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper,
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public boolean updateUserRoles(Integer userId, List<String> roleCodes) {
|
||||
// 先清空,后插入
|
||||
baseMapper.deleteByUserId(userId);
|
||||
if (CollectionUtil.isNotEmpty(roleCodes)) {
|
||||
baseMapper.insertUserRoles(userId, roleCodes);
|
||||
public boolean updateUserRoles(@NonNull Integer userId, @NonNull List<String> roleCodes) {
|
||||
// 是否存在用户角色绑定关系,存在则先清空
|
||||
boolean existsRoleBind = baseMapper.existsRoleBind(userId, null);
|
||||
if (existsRoleBind) {
|
||||
boolean deleteSuccess = baseMapper.deleteByUserId(userId);
|
||||
Assert.isTrue(deleteSuccess, () -> {
|
||||
log.error("[updateUserRoles] 删除用户角色关联关系失败,userId:{},roleCodes:{}", userId, roleCodes);
|
||||
return new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "删除用户角色关联关系失败");
|
||||
});
|
||||
}
|
||||
return true;
|
||||
|
||||
// 没有的新授权的角色直接返回
|
||||
if (CollectionUtil.isEmpty(roleCodes)) {
|
||||
return true;
|
||||
}
|
||||
// 转换为 SysUserRole 实体集合
|
||||
List<SysUserRole> list = prodSysUserRoles(userId, roleCodes);
|
||||
// 批量插入
|
||||
boolean insertSuccess = SqlHelper.retBool(baseMapper.insertBatchSomeColumn(list));
|
||||
Assert.isTrue(insertSuccess, () -> {
|
||||
log.error("[updateUserRoles] 插入用户角色关联关系失败,userId:{},roleCodes:{}", userId, roleCodes);
|
||||
return new BusinessException(BaseResultCode.UPDATE_DATABASE_ERROR.getCode(), "插入用户角色关联关系失败");
|
||||
});
|
||||
return insertSuccess;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -64,7 +118,30 @@ public class SysUserRoleServiceImpl extends ExtendServiceImpl<SysUserRoleMapper,
|
||||
*/
|
||||
@Override
|
||||
public List<SysRole> listRoles(Integer userId) {
|
||||
return baseMapper.listRoles(userId);
|
||||
return baseMapper.listRoleByUserId(userId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过角色标识,查询用户列表
|
||||
* @param pageParam 分页参数
|
||||
* @param roleBindUserQO 查询条件
|
||||
* @return PageResult<RoleBindUserVO> 角色授权的用户列表
|
||||
*/
|
||||
@Override
|
||||
public PageResult<RoleBindUserVO> queryUserPageByRoleCode(PageParam pageParam, RoleBindUserQO roleBindUserQO) {
|
||||
return baseMapper.queryUserPageByRoleCode(pageParam, roleBindUserQO);
|
||||
}
|
||||
|
||||
/**
|
||||
* 解绑角色和用户关系
|
||||
* @param userId 用户ID
|
||||
* @param roleCode 角色标识
|
||||
* @return 解绑成功:true
|
||||
*/
|
||||
@Override
|
||||
public boolean unbindRoleUser(Integer userId, String roleCode) {
|
||||
// 不存在则不需要进行删除,直接返回true
|
||||
return !baseMapper.existsRoleBind(userId, roleCode) || baseMapper.deleteUserRole(userId, roleCode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.hccake.ballcat.admin.modules.sys.mapper.SysUserRoleMapper">
|
||||
<!-- 通过用户ID查询其关联的角色ID-->
|
||||
<select id="listRoles" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysRole">
|
||||
<select id="listRoleByUserId" resultType="com.hccake.ballcat.admin.modules.sys.model.entity.SysRole">
|
||||
SELECT
|
||||
r.id, r.name, r.code
|
||||
FROM
|
||||
@@ -14,20 +14,28 @@
|
||||
and r.deleted = 0
|
||||
</select>
|
||||
|
||||
<!--新建用户角色关联关系-->
|
||||
<insert id="insertUserRoles">
|
||||
insert into
|
||||
sys_user_role (user_id, role_code)
|
||||
values
|
||||
<foreach collection="roleCodes" item="roleCode" separator=",">
|
||||
( #{userId}, #{roleCode} )
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<!--根据UserId删除用户角色关联关系-->
|
||||
<delete id="deleteByUserId">
|
||||
DELETE FROM sys_user_role WHERE user_id = #{userId}
|
||||
</delete>
|
||||
|
||||
<!-- 通过角色Code查询其关联的用户列表-->
|
||||
<select id="queryUserPageByRoleCode" resultType="com.hccake.ballcat.admin.modules.sys.model.vo.RoleBindUserVO">
|
||||
SELECT
|
||||
su.user_id, su.username, su.nickname, so.name as organization_name
|
||||
FROM
|
||||
sys_user_role ur
|
||||
LEFT JOIN
|
||||
sys_user su ON su.user_id = ur.user_id
|
||||
LEFT JOIN
|
||||
sys_organization so ON su.organization_id = so.id
|
||||
WHERE ur.role_code = #{qo.roleCode}
|
||||
and su.deleted = 0
|
||||
<if test="qo.userId != null">
|
||||
su.user_id = #{qo.userId}
|
||||
</if>
|
||||
<if test="qo.username != null">
|
||||
su.qo.username = #{qo.username}
|
||||
</if>
|
||||
<if test="qo.organizationId != null">
|
||||
so.id = #{organizationId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user