|  |  |  | 
|---|
|  |  |  | @SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked") | 
|---|
|  |  |  | public class RoleCtrl { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //private RoleSv sv ; | 
|---|
|  |  |  | private final RoleSv roleSv; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //@Autowired | 
|---|
|  |  |  | //private void setSv(RoleSv sv){ | 
|---|
|  |  |  | //    this.sv = sv ; | 
|---|
|  |  |  | //} | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 根据指定条件(角色编号、角色名称)获取角色列表 | 
|---|
|  |  |  | 
|---|
|  |  |  | if(res.itemTotal != null && res.itemTotal > 0) { | 
|---|
|  |  |  | return BaseResponseUtils.buildSuccess(res); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | return BaseResponseUtils.buildFail(SystemResultCode.NO_ROLES.getMessage()); | 
|---|
|  |  |  | return BaseResponseUtils.buildSuccess(SystemResultCode.NO_ROLES.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 添加角色及权限列表,添加前判断角色名是否已存在 | 
|---|
|  |  |  | * @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) ; | 
|---|
|  |  |  | } | 
|---|