mobilebroken/nflg-mobilebroken-gongfu/src/test/java/ControllerTest.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));
}
}