From 7f6f5c5c4cfea8a873c56e312b9dc898fc9b54f5 Mon Sep 17 00:00:00 2001 From: aeizzz Date: Thu, 12 Jan 2023 19:29:24 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20Fixing=20a=20bug.=20=E7=A7=9F=E6=88=B7?= =?UTF-8?q?=E5=A5=97=E9=A4=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/update/update.sql | 6 +++--- .../admin/config/ClientDetailsInitRunner.java | 3 ++- .../admin/config/DynamicRouteInitRunner.java | 3 ++- .../controller/SysTenantMenuController.java | 18 ++++++++++++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/db/update/update.sql b/db/update/update.sql index 59ae1f043..f2b30b246 100644 --- a/db/update/update.sql +++ b/db/update/update.sql @@ -10,8 +10,8 @@ CREATE TABLE `sys_tenant_menu` ( `menu_ids` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci, `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '0' COMMENT '租户菜单,9:冻结,0:正常', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0', - `create_by` varchar(64) CHARACTER SET utf8bm4 COLLATE utf8bm4_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', - `update_by` varchar(64) CHARACTER SET utf8bm4 COLLATE utf8bm4_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', + `create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '创建人', + `update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT ' ' COMMENT '修改人', `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建', `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE @@ -25,7 +25,7 @@ INSERT INTO `sys_tenant_menu` VALUES (1, '套餐1', '1000,1100,1101,1102,1103,11 -INSERT INTO `sys_route_conf` VALUES (14, 'APP服务', 'pigx-app-server', '[{\"args\": {\"_genkey_0\": \"/app/**\"}, \"name\": \"Path\"}]', '[]', 'lb://pigx-app-server-biz', 0, '{}', 'admin', ' ', '2022-12-07 10:53:44', NULL, '0'); +INSERT INTO `sys_route_conf` VALUES (17, 'APP服务', 'pigx-app-server', '[{\"args\": {\"_genkey_0\": \"/app/**\"}, \"name\": \"Path\"}]', '[]', 'lb://pigx-app-server-biz', 0, '{}', 'admin', ' ', '2022-12-07 10:53:44', NULL, '0'); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/ClientDetailsInitRunner.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/ClientDetailsInitRunner.java index 80b26d144..654ddbf71 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/ClientDetailsInitRunner.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/ClientDetailsInitRunner.java @@ -17,6 +17,7 @@ import org.springframework.data.redis.listener.ChannelTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; +import org.springframework.transaction.event.TransactionalEventListener; /** * @author lengleng @@ -40,7 +41,7 @@ public class ClientDetailsInitRunner implements InitializingBean { @Async @Order - @EventListener({ WebServerInitializedEvent.class, ClientDetailsInitEvent.class }) + @TransactionalEventListener({ WebServerInitializedEvent.class, ClientDetailsInitEvent.class }) public void initClientDetails() { log.debug("初始化客户端信息开始 "); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java index 0155ca873..6e9f3a2c4 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/config/DynamicRouteInitRunner.java @@ -37,6 +37,7 @@ import org.springframework.data.redis.listener.ChannelTopic; import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.scheduling.annotation.Async; +import org.springframework.transaction.event.TransactionalEventListener; import java.net.URI; import java.util.Map; @@ -60,7 +61,7 @@ public class DynamicRouteInitRunner implements InitializingBean { @Async @Order - @EventListener({ WebServerInitializedEvent.class, DynamicRouteInitEvent.class }) + @TransactionalEventListener({ WebServerInitializedEvent.class, DynamicRouteInitEvent.class }) public void initRoute() { redisTemplate.delete(CacheConstants.ROUTE_KEY); log.info("开始初始化网关路由"); diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysTenantMenuController.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysTenantMenuController.java index 98ee7e8ec..f296d22fa 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysTenantMenuController.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/SysTenantMenuController.java @@ -1,12 +1,16 @@ package com.pig4cloud.pigx.admin.controller; +import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pig4cloud.pigx.admin.api.entity.SysTenantMenu; +import com.pig4cloud.pigx.admin.service.SysMenuService; import com.pig4cloud.pigx.admin.service.SysTenantMenuService; import com.pig4cloud.pigx.common.core.constant.CacheConstants; import com.pig4cloud.pigx.common.core.constant.CommonConstants; import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.data.resolver.ParamResolver; +import com.pig4cloud.pigx.common.data.tenant.TenantBroker; import com.pig4cloud.pigx.common.log.annotation.SysLog; import com.pig4cloud.pigx.common.security.annotation.Inner; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -17,6 +21,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; @RestController @@ -28,6 +33,8 @@ public class SysTenantMenuController { private final SysTenantMenuService sysTenantMenuService; + private final SysMenuService sysMenuService; + /** * 分页查询 * @param page 分页对象 @@ -100,4 +107,15 @@ public class SysTenantMenuController { return R.ok(tenants); } + @GetMapping(value = "/tree/menu") + public R getTree() { + Long defaultId = ParamResolver.getLong("TENANT_DEFAULT_ID", 1L); + List> trees = new ArrayList<>(); + TenantBroker.runAs(defaultId, (id) -> { + trees.addAll(sysMenuService.treeMenu(null, null)); + }); + + return R.ok(trees); + } + }