From b92e550408396356d6b10d3070ecb3058baa0701 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期三, 17 一月 2024 15:27:59 +0800 Subject: [PATCH] 2024-01-17 朱宝民 优化授权传参 --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java | 330 +++++++++++++++++------------------------------------- 1 files changed, 104 insertions(+), 226 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java index 67f1606..a14f8a3 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java @@ -1,5 +1,6 @@ package com.dy.pipIrrBase.role; +import com.alibaba.fastjson2.JSONArray; import com.dy.common.aop.SsoAop; import com.dy.common.mybatis.envm.Deleted; import com.dy.common.webUtil.BaseResponse; @@ -7,11 +8,11 @@ import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; import com.dy.pipIrrBase.result.SystemResultCode; -import com.dy.pipIrrBase.user.QueryVo; import com.dy.pipIrrGlobal.pojoBa.BaRole; import com.dy.pipIrrGlobal.pojoBa.BaRolePermissions; +import com.dy.pipIrrGlobal.voBa.VoRole; +import com.dy.pipIrrGlobal.voSe.VoActiveCard; import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.responses.ApiResponse; @@ -20,7 +21,6 @@ import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; @@ -36,227 +36,57 @@ @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") public class RoleCtrl { - private RoleSv sv ; private final RoleSv roleSv; - @Autowired - private void setSv(RoleSv sv){ - this.sv = sv ; - } - /** - * 瀹㈡埛绔姹傚緱鍒版墍鏈夎鑹叉暟鎹� - * @return 鎵�鏈夎鑹叉暟鎹� + * 鏍规嵁鎸囧畾鏉′欢锛堣鑹茬紪鍙枫�佽鑹插悕绉帮級鑾峰彇瑙掕壊鍒楄〃 + * 褰撹幏鍙栦竴鏉¤褰曟椂锛屼紶鍏oleId鍗冲彲 + * @param vo + * @return */ - @Operation(summary = "鑾峰緱鍏ㄩ儴瑙掕壊", description = "杩斿洖鍏ㄩ儴瑙掕壊鏁版嵁") + @Operation(summary = "鑾峰緱涓�椤佃鑹茶褰�", description = "杩斿洖涓�椤佃鑹叉暟鎹�") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖鍏ㄩ儴瑙掕壊鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", + description = "杩斿洖涓�椤垫帶鍒跺櫒鏁版嵁锛圔aseResponse.content:QueryResultVo[{}]锛�", content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaRole.class))} + schema = @Schema(implementation = VoActiveCard.class))} ) }) - @GetMapping(path = "all") + @GetMapping(path = "/roles") @SsoAop() - public BaseResponse<QueryResultVo<List<BaRole>>> all(){ + public BaseResponse<QueryResultVo<List<VoRole>>> getRoles(QueryVo vo){ try { - QueryResultVo<List<BaRole>> res = this.sv.selectAll() ; - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鏌ヨ瑙掕壊寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } + //BaRolePermissions baRolePermissions = roleSv.getRolePermissionsById(2023122018334500002L); + //return BaseResponseUtils.buildSuccess(baRolePermissions); - /** - * 瀹㈡埛绔姹傚緱鍒颁竴椤佃鑹叉暟鎹� - * @return 鎵�鏈夎鑹叉暟鎹� - */ - @Operation(summary = "鑾峰緱涓�椤佃鑹�", description = "杩斿洖涓�椤佃鑹叉暟鎹�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤佃鑹叉暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaRole.class))} - ) - }) - @PostMapping(path = "some", consumes = MediaType.APPLICATION_JSON_VALUE) - @SsoAop() - public BaseResponse<QueryResultVo<List<BaRole>>> some(@RequestBody @Parameter(description = "鏌ヨform琛ㄥ崟json鏁版嵁", required = true) @Valid QueryVo vo){ - try { - QueryResultVo<List<BaRole>> res = this.sv.selectSome(vo) ; - return BaseResponseUtils.buildSuccess(res); - } catch (Exception e) { - log.error("鏌ヨ瑙掕壊寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - } - - /** - * 寰楀埌涓�涓鑹叉暟鎹� - * @return 涓�涓鑹叉暟鎹� - */ - @Operation(summary = "涓�涓鑹�", description = "寰楀埌涓�涓鑹叉暟鎹�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�涓鑹叉暟鎹紙BaseResponse.content:{}锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaRole.class))} - ) - }) - @GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) - @SsoAop() - public BaseResponse<BaRole> one(@Parameter(description = "瀹炰綋id", required = true) Long id){ - return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); - } - - /** - * 淇濆瓨瑙掕壊 - * @param po 淇濆瓨瑙掕壊form琛ㄥ崟瀵硅薄 - * @return 鏄惁鎴愬姛 - */ - @Operation(summary = "淇濆瓨瑙掕壊", description = "鎻愪氦瑙掕壊鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇濆瓨") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = Boolean.class))} - ) - }) - @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE) - @SsoAop() - public BaseResponse<Boolean> save(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid BaRole po, @Parameter(hidden = true) BindingResult bindingResult){ - if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); - } - po.id = null ; - Long count; - try { - po.deleted = Deleted.NO ;//榛樿涓嶅垹闄� - count = this.sv.save(po); - } catch (Exception e) { - log.error("淇濆瓨瑙掕壊寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; - } - } - - /** - * 缂栬緫淇敼瑙掕壊 - * @param po 淇濆瓨瑙掕壊form琛ㄥ崟瀵硅薄 - * @return 鏄惁鎴愬姛 - */ - @Operation(summary = "缂栬緫淇敼瑙掕壊", description = "鎻愪氦瑙掕壊鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇敼") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝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 @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid BaRole po, @Parameter(hidden = true) BindingResult bindingResult){ - if(bindingResult != null && bindingResult.hasErrors()){ - return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); - } - if(po.id == null){ - return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D") ; - } - int count; - try { - po.deleted = null ;//璁剧疆涓簄ull锛屼笉鍋氭洿鏂� - count = this.sv.update(po); - } catch (Exception e) { - log.error("淇濆瓨瑙掕壊寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; - } - } - - - - /** - * 璁剧疆瑙掕壊鏉冮檺 - * @param id 瑙掕壊ID - * @return 鏄惁鎴愬姛 - */ - @Operation(summary = "璁剧疆瑙掕壊鏉冮檺", description = "鎻愪氦瑙掕壊ID锛屽強鎵�閫夋嫨鐨勬潈闄怚D闆嗗悎锛堟暟缁勶級") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = Boolean.class))} - ) - }) - @GetMapping(path = "setPrivs", consumes = MediaType.APPLICATION_JSON_VALUE) - @SsoAop() - public BaseResponse<Boolean> setPrivileges(@Parameter(description = "瀹炰綋id", required = true) Long id, - @Parameter(description = "鏉冮檺id鏁扮粍") Long[] privIds){ - Long[] privIds_lg = null ; - if(privIds != null && privIds.length > 0){ - privIds_lg = new Long[privIds.length] ; - int index = 0 ; - for(Long privId : privIds){ - privIds_lg[index++] = privId ; + QueryResultVo<List<VoRole>> res = roleSv.getRoles(vo); + if(res.itemTotal != null && res.itemTotal > 0) { + return BaseResponseUtils.buildSuccess(res); + }else { + return BaseResponseUtils.buildFail(SystemResultCode.NO_ROLES.getMessage()); } - } - try { - this.sv.setRoles(id, privIds_lg); + } catch (Exception e) { - log.error("淇濆瓨鐢ㄦ埛寮傚父", e); + log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); return BaseResponseUtils.buildException(e.getMessage()) ; - } - return BaseResponseUtils.buildSuccess(true) ; - } - /** - * 鍒犻櫎瑙掕壊 - * @param id 瑙掕壊ID - * @return 鏄惁鎴愬姛 - */ - @Operation(summary = "鍒犻櫎瑙掕壊", description = "鎻愪氦瑙掕壊ID锛岃繘琛岄�昏緫鍒犻櫎") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = Boolean.class))} - ) - }) - @GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) - @SsoAop() - public BaseResponse<Boolean> delete(@Parameter(description = "瀹炰綋id", required = true) Long id){ - if(id == null){ - return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖") ; - } - int count; - try { - count = this.sv.delete(id); - } catch (Exception e) { - log.error("淇濆瓨瑙掕壊寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; - } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; } } + /** + * 瑙掕壊鎺堟潈 + * 1. 濡傛灉roleid鍜宺oleName閮界┖锛氭彁绀洪敊璇俊鎭� + * 2. 濡傛灉roleid涓虹┖锛氭柊寤鸿鑹蹭笖鎺堟潈 + * 1. 娣诲姞瑙掕壊璁板綍 + * 2. 娣诲姞瑙掕壊銆佹潈闄愬叧鑱旇褰� + * 3. 濡傛灉roleid涓嶄负绌猴細淇敼瑙掕壊鍙婃巿鏉� + * 1. 鍒犻櫎瑙掕壊銆佹潈闄愯褰� + * 2. 淇敼瑙掕壊淇℃伅 + * 3. 娣诲姞瑙掕壊銆佹潈闄愯褰� + * @param po + * @param bindingResult + * @return + */ @Operation(summary = "鎺堟潈", description = "鎺堟潈") @ApiResponses(value = { @ApiResponse( @@ -269,43 +99,91 @@ @PostMapping(path = "addPermissions", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> permission(@RequestBody @Parameter(description = "form琛ㄥ崟json鏁版嵁", required = true) @Valid BaRolePermissions po, @Parameter(hidden = true) BindingResult bindingResult){ + public BaseResponse<Boolean> permission(@RequestBody @Valid DtoRole po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - /** - * 濡傛灉roleid鍜宺oleName閮界┖锛氭彁绀洪敊璇俊鎭� - * 濡傛灉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) { + if(roleId == 0 && roleName.length() == 0) return BaseResponseUtils.buildFail(SystemResultCode.PERMISSION_ERROR.getMessage()); - } // 鏂板缓瑙掕壊涓旀巿鏉� - if(roleid == 0) { + if(roleId == 0) { BaRole baRole = new BaRole(); baRole.setName(roleName); - roleid = Optional.ofNullable(roleSv.save(baRole)).orElse(0L); - po.setRoleid(roleid); - roleSv.addPermissions(po); + baRole.setOperator(operator); + Date operateTime = new Date(); + baRole.setOperateDt(operateTime); + baRole.setDeleted(Deleted.NO.getCode()); + roleId = Optional.ofNullable(roleSv.addRole(baRole)).orElse(0L); + + BaRolePermissions baRolePermissions = new BaRolePermissions(); + baRolePermissions.setRoleid(roleId); + 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); + // 淇敼瑙掕壊鎺堟潈 - roleSv.delPermissionsByRoleId(roleid); - roleSv.addPermissions(po); + BaRolePermissions baRolePermissions = new BaRolePermissions(); + baRolePermissions.setRoleid(roleId); + baRolePermissions.setPermissions(permissions); + roleSv.delPermissionsByRoleId(roleId); + roleSv.addPermissions(baRolePermissions); + return BaseResponseUtils.buildSuccess(true) ; } + /** + * 鍒犻櫎瑙掕壊 + * 閫昏緫鍒犻櫎瑙掕壊璁板綍锛岀墿鐞嗗垹闄よ鑹叉巿鏉冭褰� + * @param map + * @return 鏄惁鎴愬姛 + */ + @Operation(summary = "鍒犻櫎瑙掕壊", description = "鎻愪氦瑙掕壊ID锛岃繘琛岄�昏緫鍒犻櫎") + @ApiResponses(value = { + @ApiResponse( + responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, + description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", + content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, + schema = @Schema(implementation = Boolean.class))} + ) + }) + //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) + @PostMapping(path = "delete", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> delete(@RequestBody Map map){ + Long id = Optional.ofNullable(Long.parseLong(map.get("id").toString())).orElse(0L); + + if(id == 0) + return BaseResponseUtils.buildException(SystemResultCode.PLEASE_INPUT_ROLE_ID.getMessage()); + + try { + // 閫昏緫鍒犻櫎瑙掕壊璁板綍锛岀墿鐞嗗垹闄よ鑹叉巿鏉冭褰� + Integer res_role = Optional.ofNullable(roleSv.deleteRoleById(id)).orElse(0); + Integer res_per = Optional.ofNullable(roleSv.delPermissionsByRoleId(id)).orElse(0); + if(res_role == 0 || res_per == 0) + return BaseResponseUtils.buildFail(SystemResultCode.DELETE_ROLE_FAIL.getMessage()); + + return BaseResponseUtils.buildSuccess(true); + } catch (Exception e) { + return BaseResponseUtils.buildException(e.getMessage()) ; + } + } + } -- Gitblit v1.8.0