From 42672615a9f28d0da74fd0eeb148c0fdec6c118d Mon Sep 17 00:00:00 2001 From: lilong Date: Wed, 22 May 2024 10:10:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:(REQ-2298)=20=E4=BC=98=E5=8C=96=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E5=88=86=E7=BB=84=E7=9A=84=E5=88=A0=E9=99=A4=E3=80=81?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=8F=9C=E5=8D=95=E7=9A=84=E6=96=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/common/enums/FeatureResourceType.java | 2 ++ .../model/req/FeatureResourceTreeSaveReq.java | 12 +++++++++++- .../client/model/req/QuerySaasRoleGroupReq.java | 3 +++ .../tyr/client/model/res/FeatureResourceDTO.java | 14 ++++++++++++-- tyr-server/pom.xml | 5 +++++ .../server/config/exception/BizResultCode.java | 15 +++++++++++++++ .../config/exception/ExceptionAdviceHandler.java | 8 +++++++- .../server/repository/dao/SaasRoleGroupDao.java | 1 + .../repository/entity/SaasFeatureResource.java | 10 ++++++++++ .../service/impl/SaasRoleGroupServiceImpl.java | 13 ++++++++++++- 10 files changed, 78 insertions(+), 5 deletions(-) create mode 100644 tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/BizResultCode.java diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/FeatureResourceType.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/FeatureResourceType.java index bdecbbf9..ee9f5aaa 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/FeatureResourceType.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/FeatureResourceType.java @@ -23,6 +23,8 @@ public enum FeatureResourceType { PAGE(2, "页面"), APP_ENTRY(3, "应用入口"), COMPONENT(4, "组件"), + ROOT(5, "ROOT"), + GROUP(6, "分组"), ; private static final Map MAPPING = new HashMap<>(); diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/FeatureResourceTreeSaveReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/FeatureResourceTreeSaveReq.java index 22bdd16c..58e84c8b 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/FeatureResourceTreeSaveReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/FeatureResourceTreeSaveReq.java @@ -22,7 +22,7 @@ public class FeatureResourceTreeSaveReq extends BaseFeatureResourceDO { /** 路由地址 **/ private String linkUrl; - /** 路由类型 1-PC 2-小程序 3-原生 **/ + /** 路由类型 1-PC 2-小程序 3-原生 4-h5**/ private Integer linkType; /** APP适配参数 **/ @@ -34,6 +34,16 @@ public class FeatureResourceTreeSaveReq extends BaseFeatureResourceDO { /** 授权类型 0-全部角色 1-指定角色 **/ private Integer authType; + /** + * 应用范围(租户类型):1:企业工作台 2;项目工作台 + */ + private Long workspaceType; + + /** + * 最低版本序列,主要支持版本灰度策略 + */ + private Integer version; + /** 页面组件对象 **/ private List componentSaveReqList; diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java index 6c732293..ceec75d6 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/req/QuerySaasRoleGroupReq.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; +import java.util.Set; @Data @AllArgsConstructor @@ -46,4 +47,6 @@ public class QuerySaasRoleGroupReq { private List roleIds; private Long parentId; + + private Set parentIds; } diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/FeatureResourceDTO.java b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/FeatureResourceDTO.java index 59f67bca..cd43350a 100644 --- a/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/FeatureResourceDTO.java +++ b/tyr-api/src/main/java/cn/axzo/tyr/client/model/res/FeatureResourceDTO.java @@ -38,7 +38,7 @@ public class FeatureResourceDTO implements Serializable { private String featureName; /** - * 资源类型1-菜单 2-页面 3-应用入口 4-组件 + * 资源类型1-菜单 2-页面 3-应用入口 4-组件 5-root 6-分组 */ private Integer featureType; @@ -88,7 +88,7 @@ public class FeatureResourceDTO implements Serializable { private String linkUrl; /** - * 路由类型1-PC 2-小程序 3-原生 + * 路由类型1-PC 2-小程序 3-原生 4-h5 */ private Integer linkType; @@ -136,4 +136,14 @@ public class FeatureResourceDTO implements Serializable { * 更新人 */ private Long updateBy; + + /** + * 应用范围(租户类型):1:企业工作台 2;项目工作台 + */ + private Long workspaceType; + + /** + * 最低版本序列,主要支持版本灰度策略 + */ + private Integer version; } diff --git a/tyr-server/pom.xml b/tyr-server/pom.xml index f0f5014b..23646dc5 100644 --- a/tyr-server/pom.xml +++ b/tyr-server/pom.xml @@ -122,6 +122,11 @@ pom + + cn.axzo.foundation + common-lib + 2.0.0-SNAPSHOT + diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/BizResultCode.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/BizResultCode.java new file mode 100644 index 00000000..191e71b3 --- /dev/null +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/BizResultCode.java @@ -0,0 +1,15 @@ +package cn.axzo.tyr.server.config.exception; + +import cn.axzo.foundation.result.IResultCode; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum BizResultCode implements IResultCode { + + CANT_DELETE_ROLE_GROUP("100001", "不能删除角色分组,当前角色分组下有子角色分组"); + + private String errorCode; + private String errorMessage; +} diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ExceptionAdviceHandler.java b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ExceptionAdviceHandler.java index e4a10811..e82c9e87 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ExceptionAdviceHandler.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/config/exception/ExceptionAdviceHandler.java @@ -1,7 +1,8 @@ package cn.axzo.tyr.server.config.exception; -import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.foundation.exception.BusinessException; import cn.axzo.framework.domain.web.result.ApiResult; +import cn.azxo.framework.common.model.CommonResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; import org.springframework.util.CollectionUtils; @@ -48,4 +49,9 @@ public class ExceptionAdviceHandler { return ApiResult.err(objectErrorDefaultMessage); } + @ExceptionHandler(BusinessException.class) + public CommonResponse businessExceptionHandler(BusinessException e) { + log.warn("参数错误", e); + return CommonResponse.error(Integer.valueOf(e.getErrorCode()), e.getErrorMsg()); + } } diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleGroupDao.java b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleGroupDao.java index cfc9921a..4db10399 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleGroupDao.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/repository/dao/SaasRoleGroupDao.java @@ -39,6 +39,7 @@ public class SaasRoleGroupDao extends ServiceImpl { */ private Long updateBy; + /** + * 应用范围(租户类型):1:企业工作台 2;项目工作台 + */ + private Long workspaceType; + + /** + * 最低版本序列,主要支持版本灰度策略 + */ + private Integer version; + public List splitPath() { if (StrUtil.isBlank(this.path)) { return Collections.emptyList(); diff --git a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java index 921b37f2..8c788c05 100644 --- a/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java +++ b/tyr-server/src/main/java/cn/axzo/tyr/server/service/impl/SaasRoleGroupServiceImpl.java @@ -2,6 +2,7 @@ package cn.axzo.tyr.server.service.impl; import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum; import cn.axzo.basics.common.exception.ServiceException; +import cn.axzo.foundation.exception.Axssert; import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq; import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO; import cn.axzo.tyr.server.repository.dao.SaasRoleGroupDao; @@ -23,12 +24,15 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.stream.Collectors; +import static cn.axzo.tyr.server.config.exception.BizResultCode.CANT_DELETE_ROLE_GROUP; + @Slf4j @RequiredArgsConstructor @Service @@ -111,7 +115,7 @@ public class SaasRoleGroupServiceImpl extends ServiceImpl 0) { throw new ServiceException("该角色分组有关联角色,不能进行删除!"); } + + QuerySaasRoleGroupReq querySaasRoleGroupReq = QuerySaasRoleGroupReq.builder() + .parentIds(new HashSet<>(ids)) + .build(); + List childrenRoleGroups = saasRoleGroupDao.query(querySaasRoleGroupReq); + Axssert.check(CollectionUtils.isEmpty(childrenRoleGroups), CANT_DELETE_ROLE_GROUP); + saasRoleGroupDao.delete(ids); }