diff --git a/tp-functional/src/main/java/com/inscloudtech/functional/controller/FuncCarApiController.java b/tp-functional/src/main/java/com/inscloudtech/functional/controller/FuncCarApiController.java index 2201809..0fbc7f2 100644 --- a/tp-functional/src/main/java/com/inscloudtech/functional/controller/FuncCarApiController.java +++ b/tp-functional/src/main/java/com/inscloudtech/functional/controller/FuncCarApiController.java @@ -39,7 +39,6 @@ public class FuncCarApiController extends BaseController { /** * 查询API接口在不同操作系统、不同浏览器、不同设备以及不同网络环境下的兼容性测试结果列表 */ - @GetMapping("/list") public TableDataInfo list(FuncCarApi bo, PageQuery pageQuery) { bo.setType("compatibility"); diff --git a/tp-functional/src/main/java/com/inscloudtech/functional/domain/FuncCarApi.java b/tp-functional/src/main/java/com/inscloudtech/functional/domain/FuncCarApi.java index b31647b..f8fbdc2 100644 --- a/tp-functional/src/main/java/com/inscloudtech/functional/domain/FuncCarApi.java +++ b/tp-functional/src/main/java/com/inscloudtech/functional/domain/FuncCarApi.java @@ -82,4 +82,10 @@ public class FuncCarApi { private Long userId; private String type; + + /** + * 测试结果 + */ + @TableField(exist = false) + private String testResult; } diff --git a/tp-functional/src/main/java/com/inscloudtech/functional/service/impl/FuncCarApiServiceImpl.java b/tp-functional/src/main/java/com/inscloudtech/functional/service/impl/FuncCarApiServiceImpl.java index 75b11ed..daf5ac9 100644 --- a/tp-functional/src/main/java/com/inscloudtech/functional/service/impl/FuncCarApiServiceImpl.java +++ b/tp-functional/src/main/java/com/inscloudtech/functional/service/impl/FuncCarApiServiceImpl.java @@ -1,6 +1,7 @@ package com.inscloudtech.functional.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.http.*; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; @@ -19,6 +20,7 @@ import com.inscloudtech.functional.mapper.FuncCarApiMapper; import com.inscloudtech.functional.service.IFuncCarApiService; import java.util.*; +import java.util.stream.Collectors; /** * 兼容可靠性测试系统-API接口兼容性测试工具Service业务层处理 @@ -47,6 +49,47 @@ public class FuncCarApiServiceImpl implements IFuncCarApiService { public TableDataInfo queryPageList(FuncCarApi bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectPage(pageQuery.build(), lqw); + List records = result.getRecords(); + if(CollectionUtil.isNotEmpty(records)){ + Set urlSet = records.stream().map(FuncCarApi::getApiUrl).collect(Collectors.toSet()); + Set ids = records.stream().map(FuncCarApi::getOperId).collect(Collectors.toSet()); + LambdaQueryWrapper lqw2 = Wrappers.lambdaQuery(); + lqw2.eq(FuncCarApi::getUserId, records.get(0).getUserId()); + lqw2.in(FuncCarApi::getApiUrl, urlSet); + lqw2.notIn(FuncCarApi::getOperId, ids); + List funcCarApis = baseMapper.selectList(lqw2); + funcCarApis.addAll(records); + if(CollectionUtil.isNotEmpty(funcCarApis)){ + Map> collect = funcCarApis.stream().collect(Collectors.groupingBy(FuncCarApi::getApiUrl)); + for (FuncCarApi record : records) { + String flagVal = record.getOs() + record.getBrowser() + record.getEquipment() + record.getNetwork(); + if(collect.containsKey(record.getApiUrl())){ + List apis = collect.get(record.getApiUrl()); + for (FuncCarApi api : apis) { + if(api.getJsonResult().equals(record.getJsonResult()) && !api.getOperId().equals(record.getOperId())){ + String s = api.getOs() + api.getBrowser() + api.getEquipment() + api.getNetwork(); + if(!flagVal.equals(s)){ + record.setTestResult("接口兼容性测试通过"); + break; + }else { + record.setTestResult("该记录无比对样本"); + } + } + } + }else { + record.setTestResult("该记录无比对样本"); + } + } + }else { + for (FuncCarApi record : records) { + record.setTestResult("该记录无比对样本"); + } + } + + } + + + return TableDataInfo.build(result); } @@ -112,7 +155,7 @@ public class FuncCarApiServiceImpl implements IFuncCarApiService { request.header(Header.USER_AGENT,"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) "); long start = System.currentTimeMillis(); if(StringUtils.isNotEmpty(bo.getNetwork())){ - if(!bo.getNetwork().toLowerCase().equals("wifi")){ + if(!bo.getNetwork().toLowerCase().equals("wifi") || !bo.getNetwork().toLowerCase().equals("有线网络")){ // 模拟网络延迟 Random random = new Random(); int delayMillis = random.nextInt(500); // 随机延迟0-500毫秒