mirror of https://gitee.com/stylefeng/roses
【7.6.0】【sys】【user】完善绑定用户角色
parent
1d916e8335
commit
bd83a4f3d8
|
@ -9,6 +9,8 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.GetResource;
|
|||
import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.entity.SysUser;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.pojo.request.SysUserRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserRoleService;
|
||||
import cn.stylefeng.roses.kernel.sys.modular.user.service.SysUserService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
@ -29,6 +31,9 @@ public class SysUserController {
|
|||
@Resource
|
||||
private SysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private SysUserRoleService sysUserRoleService;
|
||||
|
||||
/**
|
||||
* 添加用户
|
||||
*
|
||||
|
@ -111,4 +116,16 @@ public class SysUserController {
|
|||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* 绑定用户角色
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/12 10:58
|
||||
*/
|
||||
@PostResource(name = "绑定用户角色", path = "/sysUser/bindRoles")
|
||||
public ResponseData<?> bindRoles(@RequestBody @Validated(SysUserRoleRequest.bindRoles.class) SysUserRoleRequest sysUserRoleRequest) {
|
||||
sysUserRoleService.bindRoles(sysUserRoleRequest);
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,7 +5,9 @@ import cn.stylefeng.roses.kernel.rule.pojo.request.BaseRequest;
|
|||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 用户角色关联封装类
|
||||
|
@ -20,28 +22,33 @@ public class SysUserRoleRequest extends BaseRequest {
|
|||
/**
|
||||
* 主键
|
||||
*/
|
||||
@NotNull(message = "主键不能为空", groups = {edit.class, delete.class})
|
||||
@ChineseDescription("主键")
|
||||
private Long userRoleId;
|
||||
|
||||
/**
|
||||
* 用户id
|
||||
*/
|
||||
@NotNull(message = "用户id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("用户id")
|
||||
@NotNull(message = "用户id不能为空", groups = {bindRoles.class})
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
@NotNull(message = "角色id不能为空", groups = {add.class, edit.class})
|
||||
@ChineseDescription("角色id")
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 租户号
|
||||
* 用户id集合,用在批量删除用户的参数
|
||||
*/
|
||||
@ChineseDescription("租户号")
|
||||
private Long tenantId;
|
||||
@ChineseDescription("用户id集合,用在批量删除用户的参数")
|
||||
@NotEmpty(message = "用户id集合不能为空", groups = bindRoles.class)
|
||||
private Set<Long> roleIdList;
|
||||
|
||||
/**
|
||||
* 参数校验分组:用户绑定角色
|
||||
*/
|
||||
public @interface bindRoles {
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,7 +15,7 @@ import java.util.List;
|
|||
*/
|
||||
public interface SysUserRoleService extends IService<SysUserRole> {
|
||||
|
||||
/**
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
|
@ -24,7 +24,7 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
*/
|
||||
void add(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
|
@ -33,7 +33,7 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
*/
|
||||
void del(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
|
@ -42,7 +42,7 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
*/
|
||||
void edit(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 查询详情
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
|
@ -51,24 +51,32 @@ public interface SysUserRoleService extends IService<SysUserRole> {
|
|||
*/
|
||||
SysUserRole detail(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 获取列表
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
* @return List<SysUserRole> 返回结果
|
||||
* @author fengshuonan
|
||||
* @date 2023/06/10 21:26
|
||||
*/
|
||||
List<SysUserRole> findList(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
/**
|
||||
* 获取列表(带分页)
|
||||
*
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
* @param sysUserRoleRequest 请求参数
|
||||
* @return PageResult<SysUserRole> 返回结果
|
||||
* @author fengshuonan
|
||||
* @date 2023/06/10 21:26
|
||||
*/
|
||||
PageResult<SysUserRole> findPage(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
/**
|
||||
* 绑定用户角色
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/12 13:47
|
||||
*/
|
||||
void bindRoles(SysUserRoleRequest sysUserRoleRequest);
|
||||
|
||||
}
|
|
@ -16,7 +16,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
|
@ -61,6 +63,26 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
|
|||
return PageResultFactory.createPageResult(sysRolePage);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void bindRoles(SysUserRoleRequest sysUserRoleRequest) {
|
||||
|
||||
// 清空已有的用户角色绑定
|
||||
LambdaQueryWrapper<SysUserRole> wrapper = this.createWrapper(sysUserRoleRequest);
|
||||
this.remove(wrapper);
|
||||
|
||||
// 重新绑定用户角色信息
|
||||
Set<Long> roleIdList = sysUserRoleRequest.getRoleIdList();
|
||||
ArrayList<SysUserRole> newUserRoles = new ArrayList<>();
|
||||
for (Long newRoleId : roleIdList) {
|
||||
SysUserRole sysUserRole = new SysUserRole();
|
||||
sysUserRole.setUserId(sysUserRoleRequest.getUserId());
|
||||
sysUserRole.setRoleId(newRoleId);
|
||||
newUserRoles.add(sysUserRole);
|
||||
}
|
||||
this.saveBatch(newUserRoles);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysUserRole> findList(SysUserRoleRequest sysUserRoleRequest) {
|
||||
LambdaQueryWrapper<SysUserRole> wrapper = this.createWrapper(sysUserRoleRequest);
|
||||
|
@ -102,15 +124,8 @@ public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUs
|
|||
private LambdaQueryWrapper<SysUserRole> createWrapper(SysUserRoleRequest sysUserRoleRequest) {
|
||||
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
Long userRoleId = sysUserRoleRequest.getUserRoleId();
|
||||
Long userId = sysUserRoleRequest.getUserId();
|
||||
Long roleId = sysUserRoleRequest.getRoleId();
|
||||
Long tenantId = sysUserRoleRequest.getTenantId();
|
||||
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userRoleId), SysUserRole::getUserRoleId, userRoleId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(userId), SysUserRole::getUserId, userId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(roleId), SysUserRole::getRoleId, roleId);
|
||||
queryWrapper.eq(ObjectUtil.isNotNull(tenantId), SysUserRole::getTenantId, tenantId);
|
||||
|
||||
return queryWrapper;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue