系统启动自动添加相关权限
This commit is contained in:
parent
00f83f0e2d
commit
96a6e7ccef
|
|
@ -1,11 +1,27 @@
|
||||||
package com.czg;
|
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.apache.dubbo.config.spring.context.annotation.EnableDubbo;
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
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.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
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
|
* @author ww
|
||||||
|
|
@ -15,9 +31,42 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
@MapperScan("com.czg.service.account.mapper")
|
@MapperScan("com.czg.service.account.mapper")
|
||||||
@EnableDubbo
|
@EnableDubbo
|
||||||
public class AccountApplication {
|
@Slf4j
|
||||||
|
public class AccountApplication implements CommandLineRunner {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(AccountApplication.class, args);
|
SpringApplication.run(AccountApplication.class, args);
|
||||||
}
|
}
|
||||||
|
@Autowired
|
||||||
|
private RequestMappingHandlerMapping requestMappingHandlerMapping;
|
||||||
|
@Autowired
|
||||||
|
private SysMenuService sysMenuService;
|
||||||
|
@Autowired
|
||||||
|
private SysRolesMenusService sysRolesMenusService;
|
||||||
|
|
||||||
|
public void run(String... args) {
|
||||||
|
Map<RequestMappingInfo, HandlerMethod> 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());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue