From 835ac4c14a2ae8d17578e2b7bbbaa54d5a12f40a Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期一, 15 一月 2024 17:01:45 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/role/RoleCtrl.java | 370 +++++++++++++++++++++++++--------------------------- 1 files changed, 178 insertions(+), 192 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 23dd172..59f2061 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,9 +8,10 @@ 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.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -19,15 +21,12 @@ 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; import org.springframework.web.bind.annotation.*; -import java.util.List; -import java.util.Objects; -import java.util.Optional; +import java.util.*; @Slf4j @Tag(name = "瑙掕壊绠$悊", description = "瑙掕壊澧炲垹鏀规煡绛夋搷浣�") @@ -37,89 +36,56 @@ @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") public class RoleCtrl { - private RoleSv sv ; + //private RoleSv sv ; private final RoleSv roleSv; - @Autowired - private void setSv(RoleSv sv){ - this.sv = sv ; - } + //@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); + //BaRolePermissions baRolePermissions = roleSv.getRolePermissionsById(2023122018334500002L); + //return BaseResponseUtils.buildSuccess(baRolePermissions); + + 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()); + } + } catch (Exception e) { - log.error("鏌ヨ瑙掕壊寮傚父", e); + log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); return BaseResponseUtils.buildException(e.getMessage()) ; } } /** - * 瀹㈡埛绔姹傚緱鍒颁竴椤佃鑹叉暟鎹� - * @return 鎵�鏈夎鑹叉暟鎹� + * 娣诲姞瑙掕壊鍙婃潈闄愬垪琛紝娣诲姞鍓嶅垽鏂鑹插悕鏄惁宸插瓨鍦� + * @param po 瑙掕壊浼犲叆瀵硅薄锛屽寘鎷鑹插悕绉般�佹潈闄愬垪琛ㄣ�佹搷浣滀汉缂栧彿 + * @param bindingResult + * @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 @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(Long id){ - return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); - } - - /** - * 淇濆瓨瑙掕壊 - * @param po 淇濆瓨瑙掕壊form琛ㄥ崟瀵硅薄 - * @return 鏄惁鎴愬姛 - */ - @Operation(summary = "淇濆瓨瑙掕壊", description = "鎻愪氦瑙掕壊鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇濆瓨") + @Operation(summary = "娣诲姞瑙掕壊", description = "鎻愪氦瑙掕壊鏁版嵁鍙婃潈闄愭暟鎹紝杩涜淇濆瓨") @ApiResponses(value = { @ApiResponse( responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, @@ -129,134 +95,57 @@ ) }) @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> save(@RequestBody @Valid BaRole po, BindingResult bindingResult){ + public BaseResponse<Boolean> save(@RequestBody @Valid DtoRole po, BindingResult bindingResult){ if(bindingResult != null && bindingResult.hasErrors()){ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - po.id = null ; - Long count; + + // 鑾峰彇瑙掕壊鍚嶇О绾ф潈闄愬垪琛� + 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 { - po.deleted = Deleted.NO ;//榛樿涓嶅垹闄� - count = this.sv.save(po); + 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) { - 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 @Valid BaRole po, 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) ; - } - } + if(roleId <= 0) + return BaseResponseUtils.buildFail(SystemResultCode.ADD_ROLE_FAIL.getMessage()); - - - /** - * 璁剧疆瑙掕壊鏉冮檺 - * @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(Long 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 ; - } - } - try { - this.sv.setRoles(id, privIds_lg); - } catch (Exception e) { - log.error("淇濆瓨鐢ㄦ埛寮傚父", e); - return BaseResponseUtils.buildException(e.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) ; } - /** - * 鍒犻櫎瑙掕壊 - * @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(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) ; - } - } + /** + * 瑙掕壊鎺堟潈锛屽綋瑙掕壊缂栧彿涓虹┖鏃讹紝瀹為檯涓烘坊鍔犺鑹插強鏉冮檺鍒楄〃 + * @param po + * @param bindingResult + * @return + */ @Operation(summary = "鎺堟潈", description = "鎺堟潈") @ApiResponses(value = { @ApiResponse( @@ -269,7 +158,7 @@ @PostMapping(path = "addPermissions", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> permission(@RequestBody @Valid BaRolePermissions po, 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()); } @@ -284,28 +173,125 @@ * 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(""); + 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(new JSONArray(permissions)); + roleSv.addPermissions(baRolePermissions); return BaseResponseUtils.buildSuccess(true) ; } // 淇敼瑙掕壊鎺堟潈 - roleSv.delPermissionsByRoleId(roleid); - roleSv.addPermissions(po); + BaRolePermissions baRolePermissions = new BaRolePermissions(); + baRolePermissions.setRoleid(roleId); + baRolePermissions.setPermissions(new JSONArray(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 = "鎿嶄綔缁撴灉锛歵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 @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 ;//璁剧疆涓簄ull锛屼笉鍋氭洿鏂� + recordCount = roleSv.updateRole(po); + } catch (Exception e) { + return BaseResponseUtils.buildException(e.getMessage()) ; + } + + if(recordCount <= 0) + return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; + + 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