das接口新增
This commit is contained in:
parent
4b7f154362
commit
d78344c9af
@ -39,8 +39,7 @@ public class SysRoleController {
|
||||
*/
|
||||
@PostMapping("/update")
|
||||
public R<?> updateRole(@RequestBody SysRoleDto sysRoleDto) {
|
||||
sysRoleService.updateRole(sysRoleDto);
|
||||
return R.success();
|
||||
return R.success(sysRoleService.updateRole(sysRoleDto));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -28,4 +28,8 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
||||
IPage<SysRole> queryRoleList(IPage<SysRole> page, @Param("sysRole") SysRoleQueryDto sysRoleQueryDto);
|
||||
|
||||
List<SysRoleAuthVo> queryAuthorityById(@Param("id")Long id);
|
||||
|
||||
SysRole selectByCode(@Param("roleCode") String roleCode);
|
||||
|
||||
long existRoleByName(@Param("name") String name);
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ import java.util.List;
|
||||
public interface SysRoleService {
|
||||
SysRoleDto createRole(SysRoleDto sysRoleDto);
|
||||
|
||||
int updateRole(SysRoleDto sysRoleDto);
|
||||
SysRoleDto updateRole(SysRoleDto sysRoleDto);
|
||||
|
||||
int deleteRole(DeleteDto deleteDto);
|
||||
|
||||
|
@ -53,7 +53,7 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
}
|
||||
|
||||
SysRole sysRole = new SysRole();
|
||||
BeanCopyUtils.copy(sysRoleDto,sysRole);
|
||||
BeanCopyUtils.copy(sysRoleDto, sysRole);
|
||||
sysRole.setId(SequenceUtils.generateId());
|
||||
sysRole.setRevision(1);
|
||||
sysRole.setCreatedTime(new Date());
|
||||
@ -108,11 +108,53 @@ public class SysRoleServiceImpl implements SysRoleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateRole(SysRoleDto sysRoleDto) {
|
||||
public SysRoleDto updateRole(SysRoleDto sysRoleDto) {
|
||||
SysRole sysRole = new SysRole();
|
||||
BeanCopyUtils.copy(sysRoleDto,sysRole);
|
||||
sysRole.setUpdatedTime(new Date());
|
||||
return sysRoleMapper.updateById(sysRole);
|
||||
if (StringUtils.isEmpty(sysRoleDto.getId())) {
|
||||
throw new ServiceException("参数缺失");
|
||||
}
|
||||
SysRole role = sysRoleMapper.selectByCode(sysRoleDto.getRoleCode());
|
||||
if (role == null) {
|
||||
throw new ServiceException(String.format("角色 %s 不存在", sysRoleDto.getRoleCode()));
|
||||
}
|
||||
if (StringUtils.hasText(sysRoleDto.getRoleName())) {
|
||||
//若与数据库中角色名相同 则表示未对名称进行修改
|
||||
if (!role.getRoleName().equals(sysRoleDto.getRoleName())) {
|
||||
//判断角色名是否存在
|
||||
long roleCount = sysRoleMapper.existRoleByName(sysRoleDto.getRoleName());
|
||||
if (roleCount > 0) {
|
||||
throw new ServiceException(String.format("角色名 %s 已存在", sysRoleDto.getRoleName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 更新角色自身
|
||||
sysRole.setRoleName(sysRoleDto.getRoleName());
|
||||
sysRole.setRoleCode(sysRoleDto.getRoleCode());
|
||||
sysRole.setId(sysRoleDto.getId());
|
||||
this.sysRoleMapper.updateById(sysRole);
|
||||
//验证权限有效性
|
||||
String errorAuths = checkErrorAuthorities(sysRoleDto.getAuthList());
|
||||
if (StringUtils.hasText(errorAuths)) {
|
||||
throw new ServiceException("权限不存在 " + errorAuths);
|
||||
}
|
||||
if (sysRoleDto.getAuthList() != null) {
|
||||
//解锁role与auth绑定
|
||||
QueryWrapper<SysRoleAuthority> authorityInfoQueryWrapper = new QueryWrapper<>();
|
||||
authorityInfoQueryWrapper.eq("role_id", sysRoleDto.getId());
|
||||
sysRoleAuthorityMapper.delete(authorityInfoQueryWrapper);
|
||||
//绑定新权限
|
||||
for (Long authId : sysRoleDto.getAuthList()) {
|
||||
SysRoleAuthority roleAuthority = new SysRoleAuthority();
|
||||
roleAuthority.setRoleId(sysRole.getId());
|
||||
roleAuthority.setAuthorityId(authId);
|
||||
roleAuthority.setRevision(1);
|
||||
roleAuthority.setCreatedTime(new Date());
|
||||
roleAuthority.setUpdatedTime(new Date());
|
||||
sysRoleAuthorityMapper.insert(roleAuthority);
|
||||
}
|
||||
}
|
||||
return sysRoleDto;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -32,4 +32,12 @@
|
||||
where srra.role_id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectByCode" resultMap="SysRoleMap">
|
||||
select * from sys_role t where t.role_code=#{roleCode}
|
||||
</select>
|
||||
|
||||
<select id="existRoleByName" resultType="java.lang.Long">
|
||||
select count(1) from sys_role t where t.role_name=#{name}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
Loading…
Reference in New Issue
Block a user