From 96a6e7ccefe6a4824578931ceaec7fc65efd6fb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=9D=BE?= <8605635+zhang3064194730@user.noreply.gitee.com> Date: Mon, 17 Feb 2025 14:30:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=90=AF=E5=8A=A8=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=B7=BB=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/czg/AccountApplication.java | 51 ++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/cash-api/account-server/src/main/java/com/czg/AccountApplication.java b/cash-api/account-server/src/main/java/com/czg/AccountApplication.java index aab4819f..53848ed1 100644 --- a/cash-api/account-server/src/main/java/com/czg/AccountApplication.java +++ b/cash-api/account-server/src/main/java/com/czg/AccountApplication.java @@ -1,11 +1,27 @@ package com.czg; +import com.czg.account.entity.SysMenu; +import com.czg.account.entity.SysRolesMenus; +import com.czg.account.service.SysMenuService; +import com.czg.account.service.SysRolesMenusService; +import com.czg.annotation.SaAdminCheckPermission; +import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.core.annotation.AnnotationUtils; import org.springframework.transaction.annotation.EnableTransactionManagement; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import java.lang.reflect.Method; +import java.util.Map; + /** * @author ww @@ -15,9 +31,42 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @EnableTransactionManagement @MapperScan("com.czg.service.account.mapper") @EnableDubbo -public class AccountApplication { +@Slf4j +public class AccountApplication implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(AccountApplication.class, args); } + @Autowired + private RequestMappingHandlerMapping requestMappingHandlerMapping; + @Autowired + private SysMenuService sysMenuService; + @Autowired + private SysRolesMenusService sysRolesMenusService; + + public void run(String... args) { + Map handlerMethods = this.requestMappingHandlerMapping.getHandlerMethods(); + handlerMethods.forEach((key, value) -> { + Method method = value.getMethod(); + SaAdminCheckPermission annotation = AnnotationUtils.getAnnotation(method, SaAdminCheckPermission.class); + if (annotation == null) return; + for (String s : annotation.value()) { + long count = sysMenuService.queryChain().eq(SysMenu::getPermission, s).count(); + if (count > 0) { + continue; + } + SysMenu sysMenu = new SysMenu(); + sysMenu.setPermission(s); + sysMenu.setName(s); + sysMenu.setType(2); + sysMenuService.save(sysMenu); + SysRolesMenus sysRolesMenus = new SysRolesMenus(); + sysRolesMenus.setMenuId(sysMenu.getMenuId()); + sysRolesMenus.setRoleId(1L); + sysRolesMenusService.save(sysRolesMenus); + log.info("接口菜单添加成功, 菜单名称: {}, 菜单权限: {}", sysMenu.getName(), sysMenu.getPermission()); + } + }); + + } }