| | |
| | | @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") |
| | | public class RoleCtrl { |
| | | |
| | | //private RoleSv sv ; |
| | | private final RoleSv roleSv; |
| | | |
| | | //@Autowired |
| | | //private void setSv(RoleSv sv){ |
| | | // this.sv = sv ; |
| | | //} |
| | | |
| | | /** |
| | | * 根据指定条件(角色编号、角色名称)获取角色列表 |
| | |
| | | } |
| | | |
| | | /** |
| | | * 添加角色及权限列表,添加前判断角色名是否已存在 |
| | | * @param po 角色传入对象,包括角色名称、权限列表、操作人编号 |
| | | * @param bindingResult |
| | | * @return |
| | | */ |
| | | @Operation(summary = "添加角色", description = "提交角色数据及权限数据,进行保存") |
| | | @ApiResponses(value = { |
| | | @ApiResponse( |
| | | responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, |
| | | description = "操作结果:true:成功,false:失败(BaseResponse.content)", |
| | | content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, |
| | | schema = @Schema(implementation = Boolean.class))} |
| | | ) |
| | | }) |
| | | @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> save(@RequestBody @Valid DtoRole po, BindingResult bindingResult){ |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | // 获取角色名称级权限列表 |
| | | String roleName = Optional.ofNullable(po.getRoleName()).orElse(""); |
| | | JSONArray permissions = Optional.ofNullable(JSONArray.parseArray(po.getPermissions())).orElse(JSONArray.parseArray("[]")); |
| | | Long operator = Optional.ofNullable(po.getOperator()).orElse(0L); |
| | | |
| | | // 判断角色名称是否重名 |
| | | Integer recordCount = Optional.ofNullable(roleSv.getRecordCountByName(roleName)).orElse(0); |
| | | if(recordCount > 0) |
| | | return BaseResponseUtils.buildFail(SystemResultCode.ROLE_NAME_EXIST.getMessage()); |
| | | |
| | | // 添加角色 |
| | | BaRole baRole = new BaRole(); |
| | | Long roleId = 0L; |
| | | try { |
| | | baRole.setName(roleName); |
| | | baRole.setOperator(operator); |
| | | Date operateTime = new Date(); |
| | | baRole.setOperateDt(operateTime); |
| | | baRole.setDeleted(Deleted.NO.getCode()); |
| | | roleId = roleSv.addRole(baRole); |
| | | } catch (Exception e) { |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | |
| | | if(roleId <= 0) |
| | | return BaseResponseUtils.buildFail(SystemResultCode.ADD_ROLE_FAIL.getMessage()); |
| | | |
| | | // 添加权限列表 |
| | | BaRolePermissions baRolePermissions = new BaRolePermissions(); |
| | | baRolePermissions.setRoleid(roleId); |
| | | baRolePermissions.setPermissions(permissions); |
| | | Integer rc = Optional.ofNullable(roleSv.addPermissions(baRolePermissions)).orElse(0); |
| | | if(rc <= 0) { |
| | | return BaseResponseUtils.buildFail(SystemResultCode.ADD_ROLE_FAIL.getMessage()); |
| | | } |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |
| | | |
| | | /** |
| | | * 角色授权,当角色编号为空时,实际为添加角色及权限列表 |
| | | * 角色授权 |
| | | * 1. 如果roleid和roleName都空:提示错误信息 |
| | | * 2. 如果roleid为空:新建角色且授权 |
| | | * 1. 添加角色记录 |
| | | * 2. 添加角色、权限关联记录 |
| | | * 3. 如果roleid不为空:修改角色及授权 |
| | | * 1. 删除角色、权限记录 |
| | | * 2. 修改角色信息 |
| | | * 3. 添加角色、权限记录 |
| | | * @param po |
| | | * @param bindingResult |
| | | * @return |
| | |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | /** |
| | | * 如果roleid和roleName都空:提示错误信息 |
| | | * 如果roleid为空:新建角色且授权 |
| | | * 1. 添加角色记录 |
| | | * 2. 添加角色、权限关联记录 |
| | | * 如果roleid不为空:修改角色授权 |
| | | * 1. 删除角色、权限记录 |
| | | * 2. 添加角色、权限记录 |
| | | */ |
| | | |
| | | Long roleId = Optional.ofNullable(po.getRoleid()).orElse(0L); |
| | | Long roleId = Optional.ofNullable(po.getRoleId()).orElse(0L); |
| | | String roleName = Optional.ofNullable(po.getRoleName()).orElse(""); |
| | | //String permissions = Optional.ofNullable(po.getPermissions()).orElse(""); |
| | | JSONArray permissions = Optional.ofNullable(JSONArray.parseArray(po.getPermissions())).orElse(JSONArray.parseArray("[]")); |
| | | Long operator = Optional.ofNullable(po.getOperator()).orElse(0L); |
| | | |
| | |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |
| | | |
| | | // 修改角色信息 |
| | | BaRole baRole = new BaRole(); |
| | | baRole.setId(roleId); |
| | | baRole.setName(roleName); |
| | | baRole.setOperator(operator); |
| | | Date operateTime = new Date(); |
| | | baRole.setOperateDt(operateTime); |
| | | roleSv.updateRole(baRole); |
| | | |
| | | // 修改角色授权 |
| | | BaRolePermissions baRolePermissions = new BaRolePermissions(); |
| | | baRolePermissions.setRoleid(roleId); |
| | | baRolePermissions.setPermissions(permissions); |
| | | roleSv.delPermissionsByRoleId(roleId); |
| | | roleSv.addPermissions(baRolePermissions); |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |
| | | |
| | | /** |
| | | * 修改角色 |
| | | * @param po 保存角色form表单对象 |
| | | * @return 是否成功 |
| | | */ |
| | | @Operation(summary = "修改角色", description = "提交角色数据,进行修改") |
| | | @ApiResponses(value = { |
| | | @ApiResponse( |
| | | responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, |
| | | description = "操作结果:true:成功,false:失败(BaseResponse.content)", |
| | | content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, |
| | | schema = @Schema(implementation = Boolean.class))} |
| | | ) |
| | | }) |
| | | @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE) |
| | | @SsoAop() |
| | | public BaseResponse<Boolean> update(@RequestBody @Valid BaRole po, BindingResult bindingResult){ |
| | | if(bindingResult != null && bindingResult.hasErrors()){ |
| | | return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); |
| | | } |
| | | |
| | | // 接收角色编号、角色名称、操作人编号 |
| | | Long roleId = Optional.ofNullable(po.getId()).orElse(0L); |
| | | String roleName = Optional.ofNullable(po.getName()).orElse(""); |
| | | Long operator = Optional.ofNullable(po.getOperator()).orElse(0L); |
| | | |
| | | // 判断主键是否为空 |
| | | if(roleId == 0) |
| | | return BaseResponseUtils.buildFail(SystemResultCode.PLEASE_INPUT_ROLE_ID.getMessage()) ; |
| | | |
| | | Integer recordCount = 0; |
| | | try { |
| | | po.setName(roleName); |
| | | po.setOperator(operator); |
| | | Date operateTime = new Date(); |
| | | po.setOperateDt(operateTime); |
| | | |
| | | //po.deleted = null ;//设置为null,不做更新 |
| | | recordCount = roleSv.updateRole(po); |
| | | } catch (Exception e) { |
| | | return BaseResponseUtils.buildException(e.getMessage()) ; |
| | | } |
| | | |
| | | if(recordCount <= 0) |
| | | return BaseResponseUtils.buildFail("数据库存储失败") ; |
| | | |
| | | return BaseResponseUtils.buildSuccess(true) ; |
| | | } |