wuzeyu
2024-01-18 9281643d18bc2e0aaffed3c5f216d1df12d68424
pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java
@@ -36,13 +36,7 @@
@SuppressWarnings("unchecked")//java版本越高,对泛型约束越严,所以配置SuppressWarnings("unchecked")
public class RoleCtrl {
    //private RoleSv sv ;
    private final RoleSv roleSv;
    //@Autowired
    //private void setSv(RoleSv sv){
    //    this.sv = sv ;
    //}
    /**
     * 根据指定条件(角色编号、角色名称)获取角色列表
@@ -80,68 +74,15 @@
    }
    /**
     * 添加角色及权限列表,添加前判断角色名是否已存在
     * @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
@@ -163,19 +104,8 @@
            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);
@@ -199,60 +129,21 @@
            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) ;
    }