das接口新增
This commit is contained in:
parent
4b7f154362
commit
d78344c9af
@ -39,8 +39,7 @@ public class SysRoleController {
|
|||||||
*/
|
*/
|
||||||
@PostMapping("/update")
|
@PostMapping("/update")
|
||||||
public R<?> updateRole(@RequestBody SysRoleDto sysRoleDto) {
|
public R<?> updateRole(@RequestBody SysRoleDto sysRoleDto) {
|
||||||
sysRoleService.updateRole(sysRoleDto);
|
return R.success(sysRoleService.updateRole(sysRoleDto));
|
||||||
return R.success();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -28,4 +28,8 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
|
|||||||
IPage<SysRole> queryRoleList(IPage<SysRole> page, @Param("sysRole") SysRoleQueryDto sysRoleQueryDto);
|
IPage<SysRole> queryRoleList(IPage<SysRole> page, @Param("sysRole") SysRoleQueryDto sysRoleQueryDto);
|
||||||
|
|
||||||
List<SysRoleAuthVo> queryAuthorityById(@Param("id")Long id);
|
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 {
|
public interface SysRoleService {
|
||||||
SysRoleDto createRole(SysRoleDto sysRoleDto);
|
SysRoleDto createRole(SysRoleDto sysRoleDto);
|
||||||
|
|
||||||
int updateRole(SysRoleDto sysRoleDto);
|
SysRoleDto updateRole(SysRoleDto sysRoleDto);
|
||||||
|
|
||||||
int deleteRole(DeleteDto deleteDto);
|
int deleteRole(DeleteDto deleteDto);
|
||||||
|
|
||||||
|
@ -108,11 +108,53 @@ public class SysRoleServiceImpl implements SysRoleService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int updateRole(SysRoleDto sysRoleDto) {
|
public SysRoleDto updateRole(SysRoleDto sysRoleDto) {
|
||||||
SysRole sysRole = new SysRole();
|
SysRole sysRole = new SysRole();
|
||||||
BeanCopyUtils.copy(sysRoleDto,sysRole);
|
if (StringUtils.isEmpty(sysRoleDto.getId())) {
|
||||||
sysRole.setUpdatedTime(new Date());
|
throw new ServiceException("参数缺失");
|
||||||
return sysRoleMapper.updateById(sysRole);
|
}
|
||||||
|
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
|
@Override
|
||||||
|
@ -32,4 +32,12 @@
|
|||||||
where srra.role_id = #{id}
|
where srra.role_id = #{id}
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
|
Loading…
Reference in New Issue
Block a user