102 lines
4.5 KiB
Java
102 lines
4.5 KiB
Java
import cn.hutool.core.util.StrUtil;
|
|
import com.nflg.mobilebroken.gongfu.GongFuApplication;
|
|
import com.nflg.mobilebroken.gongfu.annotation.ApiMark;
|
|
import com.nflg.mobilebroken.gongfu.pojo.dto.SyncFromCrmDTO;
|
|
import com.nflg.mobilebroken.gongfu.service.AdminCustomerService;
|
|
import com.nflg.mobilebroken.gongfu.service.AdminDeviceService;
|
|
import com.nflg.mobilebroken.repository.entity.AdminApi;
|
|
import com.nflg.mobilebroken.repository.service.IAdminApiService;
|
|
import org.junit.jupiter.api.Test;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.test.context.ContextConfiguration;
|
|
import org.springframework.web.method.HandlerMethod;
|
|
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
|
|
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
|
|
|
|
import javax.annotation.Resource;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
|
|
@SpringBootTest
|
|
@ContextConfiguration(classes = GongFuApplication.class)
|
|
public class ControllerTest {
|
|
|
|
@Autowired
|
|
private RequestMappingHandlerMapping requestMappingHandlerMapping;
|
|
|
|
@Resource
|
|
private IAdminApiService adminApiService;
|
|
|
|
@Resource
|
|
AdminCustomerService customerService;
|
|
|
|
@Resource
|
|
AdminDeviceService deviceService;
|
|
|
|
@Test
|
|
public void testToken() {
|
|
// customerService.syncFromCrm(new SyncFromCrmDTO("2025-02-21","2025-02-25") ); //2020-05-21
|
|
|
|
deviceService.syncFormCrm(new SyncFromCrmDTO("2025-02-21", "2025-02-25"));
|
|
// String qu = UniqueSequenceGenerator.generateCode("QU");
|
|
// System.out.println(qu);
|
|
|
|
}
|
|
|
|
@Test
|
|
public void test2() {
|
|
// List<AdminApi> apis = new ArrayList<>();
|
|
String pre = "/admin";
|
|
// 获取所有的请求映射
|
|
Map<RequestMappingInfo, HandlerMethod> handlerMethods = requestMappingHandlerMapping.getHandlerMethods();
|
|
for (Map.Entry<RequestMappingInfo, HandlerMethod> entry : handlerMethods.entrySet()) {
|
|
RequestMappingInfo mappingInfo = entry.getKey();
|
|
HandlerMethod handlerMethod = entry.getValue();
|
|
|
|
// 获取Controller的RequestMapping注解
|
|
// RequestMapping controllerRequestMapping = handlerMethod.getBeanType().getAnnotation(RequestMapping.class);
|
|
// if (controllerRequestMapping != null) {
|
|
// System.out.println("Controller: " + handlerMethod.getBeanType().getName());
|
|
// System.out.println("Controller RequestMapping: " + String.join(",", controllerRequestMapping.value()));
|
|
// }
|
|
|
|
// 获取方法的PostMapping注解
|
|
ApiMark mark = handlerMethod.getMethod().getAnnotation(ApiMark.class);
|
|
if (mark != null) {
|
|
System.out.println("方法: " + handlerMethod.getMethod().getName());
|
|
System.out.println("位置: " + mark.moduleName() + " - " + mark.apiName());
|
|
// AdminApi api=new AdminApi()
|
|
// .setName(mark.apiName())
|
|
// .setModuleName(mark.moduleName())
|
|
// .setIsPublic(mark.isPublic())
|
|
// .setUrl(StrUtil.join(",", mappingInfo.getPatternsCondition().getPatterns()));
|
|
// apis.add(api);
|
|
// 打印请求路径
|
|
String url = pre + StrUtil.join(",", mappingInfo.getPatternsCondition().getPatterns());
|
|
System.out.println("Request Paths: " + url);
|
|
AdminApi api = adminApiService.lambdaQuery()
|
|
.eq(AdminApi::getModuleName, mark.moduleName())
|
|
.eq(AdminApi::getName, mark.apiName())
|
|
.one();
|
|
if (Objects.isNull(api)) {
|
|
api = new AdminApi()
|
|
.setName(mark.apiName())
|
|
.setModuleName(mark.moduleName())
|
|
.setIsPublic(mark.isPublic())
|
|
.setUrl(url);
|
|
adminApiService.save(api);
|
|
} else if (!StrUtil.equals(url, api.getUrl()) || !Objects.equals(api.getIsPublic(), mark.isPublic())) {
|
|
api.setUrl(url);
|
|
api.setIsPublic(mark.isPublic());
|
|
adminApiService.updateById(api);
|
|
}
|
|
System.out.println("----------------------------------------");
|
|
}
|
|
}
|
|
// adminApiService.remove(new LambdaQueryWrapper<>());
|
|
// adminApiService.saveBatch(apis);
|
|
// System.out.println(JSONUtil.toJsonStr(apis));
|
|
}
|
|
}
|