das接口新增

This commit is contained in:
chenhaojie 2024-06-25 18:34:27 +08:00
parent 4b7f154362
commit d78344c9af
5 changed files with 61 additions and 8 deletions

View File

@ -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));
}
/**

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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>