package com.yuanchu.limslaboratory.commandLineRunner; import com.yuanchu.limslaboratory.annotation.AuthHandler; import com.yuanchu.limslaboratory.mapper.RoleManageMapper; import com.yuanchu.limslaboratory.utils.ArrayListUtil; import com.yuanchu.limslaboratory.utils.MyClassUtil; import com.yuanchu.limslaboratory.utils.SpringUtil; import io.swagger.annotations.ApiOperation; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.annotation.Order; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; import org.springframework.core.type.classreading.CachingMetadataReaderFactory; import org.springframework.core.type.classreading.MetadataReader; import org.springframework.core.type.classreading.MetadataReaderFactory; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.*; import java.lang.reflect.Method; import java.util.*; import java.util.stream.Collectors; /** * @Author 张宾 * @Date 2023/8/28 */ @Component @Order(1) @Slf4j public class ResolutionRequestsCommandLineRunner implements CommandLineRunner { @Autowired private RoleManageMapper roleManageMapper; @SneakyThrows @Override public void run(String... args) throws Exception { //log.info("容器生成之后执行"); //List> classList = MyClassUtil.getClassList("com.yuanchu.limslaboratory.controller"); //List> requestListInfo = new ArrayList>(); //List> urlList = new ArrayList>(); //classList.stream().forEach(c -> { // Method[] methods = c.getMethods(); // //去掉对象方法 // List methodList = Arrays.stream(methods) // .filter(m -> !"notify".equals(m.getName()) && !"getClass".equals(m.getName()) // && !"hashCode".equals(m.getName()) && !"toString".equals(m.getName()) // && !"equals".equals(m.getName()) && !"wait".equals(m.getName()) && !"notifyAll".equals(m.getName())) // .collect(Collectors.toList()); // // for (int i = 0; i < methodList.size(); i++) { // Method method = methodList.get(i); // if (method.isAnnotationPresent(AuthHandler.class)) { // //获取类上请求地址 // RequestMapping annotation = c.getAnnotation(RequestMapping.class); // StringBuilder builder = new StringBuilder(); // String apiInfo = null; // builder.append(annotation.value()[0]); // //获取方法上注解 // if (method.isAnnotationPresent(PostMapping.class)) { // PostMapping post = method.getAnnotation(PostMapping.class); // builder.append(post.value()[0]); // } // if (method.isAnnotationPresent(GetMapping.class)) { // GetMapping get = method.getAnnotation(GetMapping.class); // builder.append(get.value()[0]); // } // if (method.isAnnotationPresent(DeleteMapping.class)) { // DeleteMapping delete = method.getAnnotation(DeleteMapping.class); // builder.append(delete.value()[0]); // } // if (method.isAnnotationPresent(PutMapping.class)) { // PutMapping put = method.getAnnotation(PutMapping.class); // builder.append(put.value()[0]); // } // if (method.isAnnotationPresent(ApiOperation.class)) { // ApiOperation api = method.getAnnotation(ApiOperation.class); // apiInfo = api.value(); // } // Map map = new HashMap(); // map.put("url", builder); // map.put("name", apiInfo); // urlList.add(map); // requestListInfo.add(map); // } // } //}); //requestListInfo.forEach(System.out::println); //List> allInterfaces = roleManageMapper.getAllInterfaces(); //System.out.println(requestListInfo.size()); //List> mapList = urlList.stream().filter(item -> !allInterfaces.stream() // .map(e -> e).distinct().collect(Collectors.toList()) // .contains(item)) // .collect(Collectors.toList()); //System.out.println("======================="); //mapList.forEach(System.out::println); } }