|  |  | 
 |  |  | @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(""); | 
 |  |  |         String permissions = Optional.ofNullable(po.getPermissions()).orElse(""); | 
 |  |  |         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(new JSONArray(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); | 
 |  |  |  | 
 |  |  |         if(roleId == 0 && roleName.length() == 0) | 
 |  |  | 
 |  |  |  | 
 |  |  |             BaRolePermissions baRolePermissions = new BaRolePermissions(); | 
 |  |  |             baRolePermissions.setRoleid(roleId); | 
 |  |  |             baRolePermissions.setPermissions(new JSONArray(permissions)); | 
 |  |  |             baRolePermissions.setPermissions(permissions); | 
 |  |  |             roleSv.addPermissions(baRolePermissions); | 
 |  |  |             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(new JSONArray(permissions)); | 
 |  |  |         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) ; | 
 |  |  |     } |