diff --git a/README.md b/README.md
index 4b924ca9..c53b1d9f 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,9 @@
dev环境启动参数:
-Dspring.datasource.url=jdbc:mysql://172.16.2.197:3311/pudge-dev?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai&useSSL=true&verifyServerCertificate=false&rewriteBatchedStatements=true
--Drocketmq.name-server=114.116.202.128:9876
+-Drocketmq.name-server=172.16.2.82:9876
-DCUSTOM_ENV=dev
-Dspring.profiles.active=dev
--Dspring.redis.host=123.249.44.111
+-Dspring.redis.host=172.16.2.23
-Dspring.redis.port=31270
-Dserver.port=8080
\ No newline at end of file
diff --git a/tyr-api/pom.xml b/tyr-api/pom.xml
index 08786447..56cc7297 100644
--- a/tyr-api/pom.xml
+++ b/tyr-api/pom.xml
@@ -26,5 +26,12 @@
cn.axzo.basics
basics-common
+
+
+ cn.axzo.foundation
+ dao-support-lib
+ 2.0.0-SNAPSHOT
+
+
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/AttrPermissionEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/AttrPermissionEnum.java
index c4bd8666..3144b4ba 100644
--- a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/AttrPermissionEnum.java
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/AttrPermissionEnum.java
@@ -22,7 +22,7 @@ public enum AttrPermissionEnum {
UNIT_COOPERATE_SUBORDINATE(7, "本单位及下级协同(直属+合作)单位数据"),
UNIT_ALL_SUBORDINATE(8, "本单位及以下协同(直属+合作)单位数据"),
- WORKSPACE(9, "本项目部数据"),
+ WORKSPACE(9, "本项目数据"),
EQUAL_TO_ROW(10, "同行级数据权限"),
UNIT_ONLY_EXCLUDE_TEAM(11, "仅本单位数据(不包含班组)"),
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..b7d0673d 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,10 @@ public enum FeatureResourceType {
PAGE(2, "页面"),
APP_ENTRY(3, "应用入口"),
COMPONENT(4, "组件"),
+ ROOT(5, "ROOT"),
+ GROUP(6, "分组"),
+ // 用户pc端菜单直接的分割分组线
+ MENU_PARTITION_GROUP(7, "菜单分割分组"),
;
private static final Map MAPPING = new HashMap<>();
@@ -50,7 +54,9 @@ public enum FeatureResourceType {
public static List navTypes() {
return Arrays.asList(FeatureResourceType.MENU.getCode(),
FeatureResourceType.PAGE.getCode(),
- FeatureResourceType.APP_ENTRY.getCode());
+ FeatureResourceType.APP_ENTRY.getCode(),
+ FeatureResourceType.ROOT.getCode(),
+ FeatureResourceType.GROUP.getCode());
}
public static List pageTypes() {
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementFeatureResourceRelationTypeEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementFeatureResourceRelationTypeEnum.java
new file mode 100644
index 00000000..1105d9f6
--- /dev/null
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementFeatureResourceRelationTypeEnum.java
@@ -0,0 +1,28 @@
+package cn.axzo.tyr.client.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author likunpeng
+ * @date 2024/7/2
+ */
+@Getter
+@AllArgsConstructor
+public enum PageElementFeatureResourceRelationTypeEnum {
+ /**
+ * 默认类型
+ */
+ DEFAULT(0, "默认类型"),
+
+ /**
+ * 页面路由
+ */
+ PAGE_ROUTE(1, "页面路由"),
+ ;
+
+ @EnumValue
+ private final Integer value;
+ private final String desc;
+}
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementTypeEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementTypeEnum.java
new file mode 100644
index 00000000..d51b9070
--- /dev/null
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PageElementTypeEnum.java
@@ -0,0 +1,23 @@
+package cn.axzo.tyr.client.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author likunpeng
+ * @version 1.0
+ * @date 2024/6/18
+ */
+@Getter
+@AllArgsConstructor
+public enum PageElementTypeEnum {
+
+ PAGE("PAGE", "页面"),
+ COMPONENT("COMPONENT", "组件"),
+
+ ;
+
+ private final String code;
+
+ private final String desc;
+}
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PermissionRelationOperateLogSceneEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PermissionRelationOperateLogSceneEnum.java
new file mode 100644
index 00000000..cc3c4adf
--- /dev/null
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/PermissionRelationOperateLogSceneEnum.java
@@ -0,0 +1,101 @@
+package cn.axzo.tyr.client.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * @author likunpeng
+ * @version 1.0
+ * @date 2024/7/24
+ */
+@Getter
+@AllArgsConstructor
+public enum PermissionRelationOperateLogSceneEnum {
+
+ /**
+ * oms同步
+ */
+ OMS_SYNC("OMS_SYNC", "oms同步"),
+
+ /**
+ * oms后台更新资源绑定的角色
+ */
+ OMS_FEATURE_RESOURCE_BIND_ROLE("OMS_FEATURE_RESOURCE_BIND_ROLE", "oms后台更新资源绑定的角色"),
+
+ /**
+ * oms后台更新角色绑定资源绑定的
+ */
+ OMS_ROLE_BIND_FEATURE_RESOURCE("OMS_ROLE_BIND_FEATURE_RESOURCE", "oms后台更新角色绑定的资源"),
+
+ /**
+ * [老]oms后台更新角色绑定资源绑定的
+ */
+ OLD_OMS_ROLE_BIND_FEATURE("OLD_OMS_ROLE_BIND_FEATURE", "[老]oms后台更新角色绑定的资源"),
+
+ /**
+ * oms后台更新资源绑定的页面元素
+ */
+ OMS_FEATURE_RESOURCE_BIND_ELEMENT("OMS_FEATURE_RESOURCE_BIND_ELEMENT", "oms后台更新资源绑定的页面元素"),
+
+ /**
+ * oms后台更新产品榜的资源
+ */
+ OMS_PRODUCT_BIND_FEATURE_RESOURCE("OMS_PRODUCT_BIND_FEATURE_RESOURCE", "oms后台更新产品榜的资源"),
+
+ /**
+ * [老]oms后台更新产品权限点
+ */
+ OLD_OMS_PRODUCT__UPDATE("OLD_OMS_PRODUCT__UPDATE", "[老]oms后台更新产品"),
+
+ /**
+ * [老]oms后台更新产品权限点
+ */
+ OLD_OMS_PRODUCT_PERMISSION_POINT__SAVE_BATCH("OLD_OMS_PRODUCT_PERMISSION_POINT__SAVE_BATCH", "[老]oms后台更新产品权限点"),
+
+ /**
+ * [老]角色分组新增/更新
+ */
+ OLD_OMS_ROLE_GROUP__SAVE_OR_UPDATE("OLD_OMS_ROLE_GROUP__SAVE_OR_UPDATE", "[老]角色分组新增/更新"),
+
+ /**
+ * [老]角色分组删除
+ */
+ OLD_OMS_ROLE_GROUP__DELETE("OLD_OMS_ROLE_GROUP__DELETE", "[老]角色分组删除"),
+
+ /**
+ * [老]权限点删除
+ */
+ OLD_OMS_SAAS_FEATURE__DELETE("OLD_OMS_SAAS_FEATURE__DELETE", "[老]权限点删除"),
+
+ /**
+ * [老]权限点新增/更新
+ */
+ OLD_OMS_SAAS_FEATURE__SAVE_OR_UPDATE("OLD_OMS_SAAS_FEATURE__SAVE_OR_UPDATE", "[老]权限点新增/更新"),
+
+ /**
+ * oms后台添加API
+ */
+ OMS_API_INSERT("OMS_API_INSERT", "oms后台添加API"),
+
+ /**
+ * oms后台更新API
+ */
+ OMS_API_UPDATE("OMS_API_UPDATE", "oms后台更新API"),
+
+ /**
+ * oms后台删除API
+ */
+ OMS_API_DELETE("OMS_API_DELETE", "oms后台删除API"),
+
+ /**
+ * oms后台同步API
+ */
+ OMS_API_SYNC("OMS_API_SYNC", "oms后台同步API"),
+
+ ;
+
+ @EnumValue
+ private final String value;
+ private final String desc;
+}
\ No newline at end of file
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/ProductModuleFeatureRelationTypeEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/ProductModuleFeatureRelationTypeEnum.java
new file mode 100644
index 00000000..80efd4fb
--- /dev/null
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/ProductModuleFeatureRelationTypeEnum.java
@@ -0,0 +1,27 @@
+package cn.axzo.tyr.client.common.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.fasterxml.jackson.annotation.JsonValue;
+import lombok.Getter;
+
+/**
+ * @author likunpeng
+ * @version 1.0
+ * @date 2024/5/13
+ */
+public enum ProductModuleFeatureRelationTypeEnum {
+
+ FEATURE(0, "FEATURE"),
+ FEATURE_RESOURCE(1, "FEATURE_RESOURCE")
+ ;
+ @Getter
+ @EnumValue
+ @JsonValue
+ public final Integer code;
+ public final String desc;
+
+ ProductModuleFeatureRelationTypeEnum(Integer code, String desc){
+ this.code = code;
+ this.desc = desc;
+ }
+}
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java
index 04a09e7f..c94a57f7 100644
--- a/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/common/enums/RoleTypeEnum.java
@@ -20,12 +20,12 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public enum RoleTypeEnum {
- //角色类型:common 普通角色 super_admin超级管理员(禁止删除) admin子管理员(禁止删除) init初始化内置角色 auto_own自定义角色(禁止删除)<承载向用户单独分配的自定义权限>
- COMMON("common", "普通角色",false),
+ //角色类型:common 自定义角色 super_admin超级管理员(禁止删除) admin子管理员(禁止删除) init初始化内置角色 auto_own自定义角色(禁止删除)<承载向用户单独分配的自定义权限>
+ COMMON("common", "自定义角色",false),
SUPER_ADMIN("super_admin", "超级管理员",true),
ADMIN("admin", "子管理员",true),
- INIT("init", "初始化内置角色",false),
- AUTO_OWN("auto_own", "自定义角色",false);
+ INIT("init", "初始化内置角色-标准角色",false),
+ AUTO_OWN("auto_own", "虚拟角色(自定义权限使用)",false);
@EnumValue
private final String value;
diff --git a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java
index ef3833f4..e7867591 100644
--- a/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java
+++ b/tyr-api/src/main/java/cn/axzo/tyr/client/feign/FeatureResourceApi.java
@@ -1,12 +1,13 @@
package cn.axzo.tyr.client.feign;
import cn.axzo.framework.domain.web.result.ApiResult;
+import cn.axzo.tyr.client.model.req.DeleteFeatureResourceReq;
+import cn.axzo.tyr.client.model.req.FeatureResourceTreeSaveReq;
import cn.axzo.tyr.client.model.req.GetFeatureResourceTreeReq;
import cn.axzo.tyr.client.model.req.ResourceSyncReq;
-import cn.axzo.tyr.client.model.req.FeatureResourceTreeSaveReq;
-import cn.axzo.tyr.client.model.res.FeatureResourceDetailResp;
import cn.axzo.tyr.client.model.res.FeatureResourceTreeNode;
import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
import javax.validation.Valid;
import java.util.List;
+import java.util.Map;
/**
* 功能资源API接口
@@ -44,7 +46,7 @@ public interface FeatureResourceApi {
/** 删除菜单/页面/组件 **/
@PostMapping("/api/featureResource/delete")
- ApiResult deleteFeatureResource(@RequestParam Long featureId, @RequestParam Long operatorId);
+ ApiResult deleteFeatureResource(@Validated @RequestBody DeleteFeatureResourceReq req);
/** 重排序菜单/页面/组件 **/
@@ -58,4 +60,8 @@ public interface FeatureResourceApi {
/** 从基准环境查询功能资源树 **/
@PostMapping("/api/featureResource/getBaseTree")
ApiResult> getBaseTree(@RequestBody @Valid GetFeatureResourceTreeReq req);
+
+ /** 通过featureResourceIds查询对应的featureCode **/
+ @PostMapping("/api/featureResource/listFeatureCodeByFeatureResourceIds")
+ ApiResult