From 321bd3ba21304e80157be17c7adef21130a8077c Mon Sep 17 00:00:00 2001 From: b_yu Date: Thu, 19 Dec 2024 14:35:47 +0800 Subject: [PATCH] query compare configuration by names --- .../ComparisonExclusionsController.java | 3 +- .../ComparisonIgnoreCategoryController.java | 3 +- .../config/ComparisonListSortController.java | 3 +- .../ComparisonRootTransformController.java | 3 +- ...AbstractComparisonConfigurableHandler.java | 23 ++++++ ...mparisonExclusionsConfigurableHandler.java | 7 +- ...isonIgnoreCategoryConfigurableHandler.java | 7 +- ...ComparisonListSortConfigurableHandler.java | 7 +- ...omparisonTransformConfigurableHandler.java | 7 +- .../repository/AppContractRepository.java | 2 + .../mongo/AppContractRepositoryImpl.java | 13 +++ ...ExclusionsConfigurationRepositoryImpl.java | 62 +++++++++----- ...reCategoryConfigurationRepositoryImpl.java | 16 +++- ...onListSortConfigurationRepositoryImpl.java | 82 ++++++++++++++----- ...nTransformConfigurationRepositoryImpl.java | 11 ++- .../ComparisonListSortConfiguration.java | 2 + .../replay/PageQueryCategoryRequestType.java | 14 ++++ .../PageQueryComparisonRequestType.java | 4 +- .../replay/PageQueryExclusionRequestType.java | 13 +++ .../replay/PageQueryListSortRequestType.java | 14 ++++ .../replay/PageQueryTransformRequestType.java | 12 +++ .../web/model/dao/mongodb/CountResult.java | 14 ++++ .../dao/mongodb/entity/CategoryDetailDao.java | 2 + .../mongodb/entity/TransformDetailDao.java | 1 + .../dto/config/PageQueryCategoryDto.java | 15 ++++ .../dto/config/PageQueryComparisonDto.java | 2 + .../dto/config/PageQueryExclusionDto.java | 14 ++++ .../dto/config/PageQueryListSortDto.java | 14 ++++ .../dto/config/PageQueryTransformDto.java | 14 ++++ .../mapper/PageQueryComparisonMapper.java | 12 +++ pom.xml | 2 +- 31 files changed, 339 insertions(+), 59 deletions(-) create mode 100644 arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryCategoryRequestType.java create mode 100644 arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryExclusionRequestType.java create mode 100644 arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryListSortRequestType.java create mode 100644 arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryTransformRequestType.java create mode 100644 arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/CountResult.java create mode 100644 arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryCategoryDto.java create mode 100644 arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryExclusionDto.java create mode 100644 arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryListSortDto.java create mode 100644 arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryTransformDto.java diff --git a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonExclusionsController.java b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonExclusionsController.java index afc41168..b17bc1b9 100644 --- a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonExclusionsController.java +++ b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonExclusionsController.java @@ -6,6 +6,7 @@ import com.arextest.web.core.business.config.replay.ComparisonExclusionsConfigurableHandler; import com.arextest.web.model.contract.contracts.config.replay.ComparisonExclusionsConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryExclusionRequestType; import com.arextest.web.model.contract.contracts.config.replay.QueryComparisonRequestType; import java.util.List; import org.apache.commons.lang3.StringUtils; @@ -76,7 +77,7 @@ public Response queryComparisonConfig(@RequestBody QueryComparisonRequestType re @PostMapping("/pageQueryComparisonConfig") @ResponseBody - public Response pageQueryComparisonConfig(@RequestBody PageQueryComparisonRequestType request) { + public Response pageQueryComparisonConfig(@RequestBody PageQueryExclusionRequestType request) { return ResponseUtils.successResponse( exclusionsHandler.pageQueryComparisonConfig(request) ); diff --git a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonIgnoreCategoryController.java b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonIgnoreCategoryController.java index f46c8237..92daf14b 100644 --- a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonIgnoreCategoryController.java +++ b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonIgnoreCategoryController.java @@ -5,6 +5,7 @@ import com.arextest.web.core.business.config.ConfigurableHandler; import com.arextest.web.core.business.config.replay.ComparisonIgnoreCategoryConfigurableHandler; import com.arextest.web.model.contract.contracts.config.replay.ComparisonIgnoreCategoryConfiguration; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryCategoryRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.QueryComparisonRequestType; import java.util.List; @@ -64,7 +65,7 @@ public Response queryComparisonConfig(@RequestBody QueryComparisonRequestType re @PostMapping("/pageQueryComparisonConfig") @ResponseBody - public Response pageQueryComparisonConfig(@RequestBody PageQueryComparisonRequestType request) { + public Response pageQueryComparisonConfig(@RequestBody PageQueryCategoryRequestType request) { return ResponseUtils.successResponse( ignoreCategoryHandler.pageQueryComparisonConfig(request) ); diff --git a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonListSortController.java b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonListSortController.java index c7681d96..25d766fe 100644 --- a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonListSortController.java +++ b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonListSortController.java @@ -6,6 +6,7 @@ import com.arextest.web.core.business.config.replay.ComparisonListSortConfigurableHandler; import com.arextest.web.model.contract.contracts.config.replay.ComparisonListSortConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryListSortRequestType; import com.arextest.web.model.contract.contracts.config.replay.QueryComparisonRequestType; import jakarta.annotation.Resource; import lombok.Getter; @@ -71,7 +72,7 @@ public Response queryComparisonConfig(@RequestBody QueryComparisonRequestType re @PostMapping("/pageQueryComparisonConfig") @ResponseBody - public Response pageQueryComparisonConfig(@RequestBody PageQueryComparisonRequestType request) { + public Response pageQueryComparisonConfig(@RequestBody PageQueryListSortRequestType request) { return ResponseUtils.successResponse( comparisonListSortConfigurableHandler.pageQueryComparisonConfig(request) ); diff --git a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonRootTransformController.java b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonRootTransformController.java index d1082606..aa3713cd 100644 --- a/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonRootTransformController.java +++ b/arex-web-api/src/main/java/com/arextest/web/api/service/controller/config/ComparisonRootTransformController.java @@ -8,6 +8,7 @@ import com.arextest.web.model.contract.contracts.config.replay.ComparisonRootTransformConfiguration; import com.arextest.web.model.contract.contracts.config.replay.ComparisonTransformConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryTransformRequestType; import com.arextest.web.model.contract.contracts.config.replay.QueryComparisonRequestType; import com.arextest.web.model.mapper.ConfigComparisonTransformMapper; import java.util.List; @@ -72,7 +73,7 @@ public Response modify(@PathVariable ModifyType modifyType, @PostMapping("/pageQueryComparisonConfig") @ResponseBody - public Response pageQueryComparisonConfig(@RequestBody PageQueryComparisonRequestType request) { + public Response pageQueryComparisonConfig(@RequestBody PageQueryTransformRequestType request) { return ResponseUtils.successResponse( comparisonTransformConfigurableHandler.pageQueryComparisonConfig(request) ); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/AbstractComparisonConfigurableHandler.java b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/AbstractComparisonConfigurableHandler.java index ef38c130..04c9847d 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/AbstractComparisonConfigurableHandler.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/AbstractComparisonConfigurableHandler.java @@ -8,6 +8,7 @@ import com.arextest.web.core.repository.AppContractRepository; import com.arextest.web.model.contract.contracts.config.replay.AbstractComparisonDetailsConfiguration; import com.arextest.web.model.dto.AppContractDto; +import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.enums.ContractTypeEnum; import java.util.Collections; import java.util.Date; @@ -182,4 +183,26 @@ void addDependencyId(List comparisonDetails) { } } } + + protected void queryIdsByKeywords(PageQueryComparisonDto dto, + ApplicationOperationConfigurationRepositoryImpl serviceOperationRepository) { + if (StringUtils.isNotBlank(dto.getKeyOfOperationName())) { + List serviceOperations = serviceOperationRepository.queryLikeOperationName( + dto.getAppId(), dto.getKeyOfOperationName()); + if (CollectionUtils.isNotEmpty(serviceOperations)) { + dto.setOperationIds(serviceOperations.stream().map(ApplicationOperationConfiguration::getId) + .collect(Collectors.toList())); + } + } + + if (StringUtils.isNotBlank(dto.getKeyOfDependencyName())) { + List contractDtos = appContractRepository.queryLikeOperationName( + dto.getAppId(), + dto.getKeyOfDependencyName()); + if (CollectionUtils.isNotEmpty(contractDtos)) { + dto.setDependencyIds( + contractDtos.stream().map(AppContractDto::getId).collect(Collectors.toList())); + } + } + } } diff --git a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonExclusionsConfigurableHandler.java b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonExclusionsConfigurableHandler.java index 63594a25..6323a341 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonExclusionsConfigurableHandler.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonExclusionsConfigurableHandler.java @@ -11,8 +11,10 @@ import com.arextest.web.model.contract.contracts.config.replay.ComparisonExclusionsConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonResponseType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryExclusionRequestType; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryExclusionDto; import com.arextest.web.model.dto.filesystem.FSInterfaceDto; import com.arextest.web.model.mapper.PageQueryComparisonMapper; import jakarta.annotation.Resource; @@ -78,9 +80,10 @@ public List queryByInterfaceId(String interfa } public PageQueryComparisonResponseType pageQueryComparisonConfig( - PageQueryComparisonRequestType requestType) { - PageQueryComparisonDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( + PageQueryExclusionRequestType requestType) { + PageQueryExclusionDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( requestType); + queryIdsByKeywords(pageQueryComparisonDto, applicationOperationConfigurationRepository); PageQueryComparisonResultDto queryResult = comparisonExclusionsConfigurationRepository.pageQueryComparisonConfig( pageQueryComparisonDto); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonIgnoreCategoryConfigurableHandler.java b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonIgnoreCategoryConfigurableHandler.java index e90b9253..6f5319a9 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonIgnoreCategoryConfigurableHandler.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonIgnoreCategoryConfigurableHandler.java @@ -11,8 +11,10 @@ import com.arextest.web.core.repository.mongo.ComparisonIgnoreCategoryConfigurationRepositoryImpl; import com.arextest.web.model.contract.contracts.compare.CategoryDetail; import com.arextest.web.model.contract.contracts.config.replay.ComparisonIgnoreCategoryConfiguration; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryCategoryRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonResponseType; +import com.arextest.web.model.dto.config.PageQueryCategoryDto; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; import com.arextest.web.model.dto.filesystem.FSInterfaceDto; @@ -102,9 +104,10 @@ public boolean update(ComparisonIgnoreCategoryConfiguration configuration) { public PageQueryComparisonResponseType pageQueryComparisonConfig( - PageQueryComparisonRequestType requestType) { - PageQueryComparisonDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( + PageQueryCategoryRequestType requestType) { + PageQueryCategoryDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( requestType); + queryIdsByKeywords(pageQueryComparisonDto, applicationOperationConfigurationRepository); PageQueryComparisonResultDto queryResult = ignoreCategoryConfigurationRepository.pageQueryComparisonConfig( pageQueryComparisonDto); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonListSortConfigurableHandler.java b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonListSortConfigurableHandler.java index 8e5cc060..19028440 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonListSortConfigurableHandler.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonListSortConfigurableHandler.java @@ -9,8 +9,10 @@ import com.arextest.web.model.contract.contracts.config.replay.ComparisonListSortConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonResponseType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryListSortRequestType; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryListSortDto; import com.arextest.web.model.dto.filesystem.FSInterfaceDto; import com.arextest.web.model.mapper.PageQueryComparisonMapper; import jakarta.annotation.Resource; @@ -77,9 +79,10 @@ public boolean insertList(List configurationLis } public PageQueryComparisonResponseType pageQueryComparisonConfig( - PageQueryComparisonRequestType requestType) { - PageQueryComparisonDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( + PageQueryListSortRequestType requestType) { + PageQueryListSortDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( requestType); + queryIdsByKeywords(pageQueryComparisonDto, applicationOperationConfigurationRepository); PageQueryComparisonResultDto queryResult = listSortConfigurationRepository.pageQueryComparisonConfig( pageQueryComparisonDto); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonTransformConfigurableHandler.java b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonTransformConfigurableHandler.java index 5b130a15..b6bfb647 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonTransformConfigurableHandler.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/business/config/replay/ComparisonTransformConfigurableHandler.java @@ -14,8 +14,10 @@ import com.arextest.web.model.contract.contracts.config.replay.ComparisonTransformConfiguration; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonResponseType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryTransformRequestType; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryTransformDto; import com.arextest.web.model.dto.filesystem.FSInterfaceDto; import com.arextest.web.model.mapper.PageQueryComparisonMapper; import jakarta.annotation.Resource; @@ -94,9 +96,10 @@ public List getTransformMethodList() { } public PageQueryComparisonResponseType pageQueryComparisonConfig( - PageQueryComparisonRequestType requestType) { - PageQueryComparisonDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( + PageQueryTransformRequestType requestType) { + PageQueryTransformDto pageQueryComparisonDto = PageQueryComparisonMapper.INSTANCE.dtoFromContract( requestType); + queryIdsByKeywords(pageQueryComparisonDto, applicationOperationConfigurationRepository); PageQueryComparisonResultDto queryResult = comparisonTransformConfigurationRepository.pageQueryComparisonConfig( pageQueryComparisonDto); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/AppContractRepository.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/AppContractRepository.java index c4131909..35414b5a 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/AppContractRepository.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/AppContractRepository.java @@ -31,4 +31,6 @@ List queryDependencyWithAppId(String appId, String operationName String operationType); List queryAppContractsByIds(Collection ids); + + List queryLikeOperationName(String appId, String operationName); } diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/AppContractRepositoryImpl.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/AppContractRepositoryImpl.java index efa790d5..c99d3ca7 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/AppContractRepositoryImpl.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/AppContractRepositoryImpl.java @@ -224,4 +224,17 @@ public List queryAppContractsByIds(Collection ids) { .stream().map(AppContractMapper.INSTANCE::dtoFromDao) .collect(Collectors.toList()); } + + @Override + public List queryLikeOperationName(String appId, + String operationName) { + if (StringUtils.isBlank(operationName)) { + return Collections.emptyList(); + } + Query query = Query.query(Criteria.where(AppContractCollection.Fields.appId).is(appId) + .and(AppContractCollection.Fields.operationName).regex(".*?" + operationName + ".*", "i")); + + return mongoTemplate.find(query, AppContractCollection.class) + .stream().map(AppContractMapper.INSTANCE::dtoFromDao).collect(Collectors.toList()); + } } diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonExclusionsConfigurationRepositoryImpl.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonExclusionsConfigurationRepositoryImpl.java index f90d8a28..92455320 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonExclusionsConfigurationRepositoryImpl.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonExclusionsConfigurationRepositoryImpl.java @@ -6,10 +6,11 @@ import com.arextest.web.model.contract.contracts.common.enums.CompareConfigType; import com.arextest.web.model.contract.contracts.config.replay.ComparisonExclusionsConfiguration; import com.arextest.web.model.dao.mongodb.ConfigComparisonExclusionsCollection; +import com.arextest.web.model.dao.mongodb.CountResult; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails.Fields; -import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryExclusionDto; import com.arextest.web.model.mapper.ConfigComparisonExclusionsMapper; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; @@ -25,6 +26,11 @@ import org.springframework.data.mongodb.core.BulkOperations; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators; +import org.springframework.data.mongodb.core.aggregation.StringOperators; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -235,37 +241,51 @@ public List queryConfigOfCategory( } public PageQueryComparisonResultDto pageQueryComparisonConfig( - PageQueryComparisonDto pageQueryComparisonDto) { + PageQueryExclusionDto pageQueryComparisonDto) { PageQueryComparisonResultDto resultDto = new PageQueryComparisonResultDto<>(); - Query query = new Query(); - query.addCriteria(Criteria.where(Fields.appId).is(pageQueryComparisonDto.getAppId())); - query.addCriteria(Criteria.where(Fields.compareConfigType) - .is(CompareConfigType.REPLAY_MAIN.getCodeValue())); - List operationIds = pageQueryComparisonDto.getOperationIds(); - if (CollectionUtils.isNotEmpty(operationIds)) { - query.addCriteria(Criteria.where(Fields.operationId).in(operationIds)); + AggregationOperation project = Aggregation.project(ComparisonExclusionsConfiguration.class).and( + ArrayOperators.Reduce.arrayOf(ConfigComparisonExclusionsCollection.Fields.exclusions) + .withInitialValue("").reduce(StringOperators.Concat.valueOf("$$value") + .concat("/").concatValueOf("$$this"))).as("exclusionPath"); + + Criteria criteria = Criteria.where(Fields.appId).is(pageQueryComparisonDto.getAppId()); + criteria.and(Fields.compareConfigType) + .is(CompareConfigType.REPLAY_MAIN.getCodeValue()); + if (CollectionUtils.isNotEmpty(pageQueryComparisonDto.getOperationIds())) { + criteria.and(Fields.operationId).in(pageQueryComparisonDto.getOperationIds()); } if (CollectionUtils.isNotEmpty(pageQueryComparisonDto.getDependencyIds())) { - query.addCriteria(Criteria.where(Fields.dependencyId) - .in(pageQueryComparisonDto.getDependencyIds())); + criteria.and(Fields.dependencyId).in(pageQueryComparisonDto.getDependencyIds()); } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfExclusionPath())) { + criteria.and("exclusionPath") + .regex(".*?" + pageQueryComparisonDto.getKeyOfExclusionPath() + ".*", "i"); + } + AggregationOperation match = Aggregation.match(criteria); + if (Objects.equals(pageQueryComparisonDto.getNeedTotal(), true)) { - resultDto.setTotalCount( - mongoTemplate.count(query, ConfigComparisonExclusionsCollection.class) - ); + AggregationOperation count = Aggregation.count().as(CountResult.Fields.total); + Aggregation aggCount = Aggregation.newAggregation(project, match, count); + AggregationResults countResults = mongoTemplate.aggregate(aggCount, + ConfigComparisonExclusionsCollection.class, CountResult.class); + resultDto.setTotalCount(countResults.getUniqueMappedResult() == null ? 0L + : countResults.getUniqueMappedResult().getTotal()); } Integer pageSize = pageQueryComparisonDto.getPageSize(); Integer pageIndex = pageQueryComparisonDto.getPageIndex(); - query.skip((long) (pageIndex - 1) * pageSize).limit(pageSize); + AggregationOperation skip = Aggregation.skip((long) (pageIndex - 1) * pageSize); + AggregationOperation limit = Aggregation.limit(pageSize); + AggregationOperation sort = Aggregation.sort(Sort.by(Sort.Direction.ASC, Fields.operationId) + .and(Sort.by(Sort.Direction.ASC, Fields.dependencyId))); - query.with( - Sort.by(Sort.Direction.ASC, Fields.operationId) - .and(Sort.by(Sort.Direction.ASC, Fields.dependencyId)) - ); - List configs = mongoTemplate.find(query, - ConfigComparisonExclusionsCollection.class) + Aggregation agg = Aggregation.newAggregation(project, match, sort, skip, limit); + AggregationResults results = mongoTemplate.aggregate(agg, + ConfigComparisonExclusionsCollection.class, + ConfigComparisonExclusionsCollection.class); + + List configs = results.getMappedResults() .stream() .map(ConfigComparisonExclusionsMapper.INSTANCE::dtoFromDao) .collect(Collectors.toList()); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonIgnoreCategoryConfigurationRepositoryImpl.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonIgnoreCategoryConfigurationRepositoryImpl.java index 92a2ac5f..5fe6a5c1 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonIgnoreCategoryConfigurationRepositoryImpl.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonIgnoreCategoryConfigurationRepositoryImpl.java @@ -7,6 +7,8 @@ import com.arextest.web.model.dao.mongodb.ConfigComparisonIgnoreCategoryCollection; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails.Fields; +import com.arextest.web.model.dao.mongodb.entity.CategoryDetailDao; +import com.arextest.web.model.dto.config.PageQueryCategoryDto; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; import com.arextest.web.model.mapper.ConfigComparisonIgnoreCategoryMapper; @@ -136,7 +138,7 @@ public boolean insert(ComparisonIgnoreCategoryConfiguration configuration) { } public PageQueryComparisonResultDto pageQueryComparisonConfig( - PageQueryComparisonDto pageQueryComparisonDto) { + PageQueryCategoryDto pageQueryComparisonDto) { PageQueryComparisonResultDto resultDto = new PageQueryComparisonResultDto<>(); @@ -152,6 +154,18 @@ public PageQueryComparisonResultDto pageQ query.addCriteria(Criteria.where(Fields.dependencyId) .in(pageQueryComparisonDto.getDependencyIds())); } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfIgnoreOperationType())) { + query.addCriteria(Criteria.where( + ConfigComparisonIgnoreCategoryCollection.Fields.ignoreCategoryDetail.concat(".").concat( + CategoryDetailDao.Fields.operationType)) + .regex(".*?" + pageQueryComparisonDto.getKeyOfIgnoreOperationType() + ".*", "i")); + } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfIgnoreOperationName())){ + query.addCriteria(Criteria.where( + ConfigComparisonIgnoreCategoryCollection.Fields.ignoreCategoryDetail.concat(".").concat( + CategoryDetailDao.Fields.operationName)) + .regex(".*?" + pageQueryComparisonDto.getKeyOfIgnoreOperationName() + ".*", "i")); + } if (Objects.equals(pageQueryComparisonDto.getNeedTotal(), true)) { resultDto.setTotalCount( mongoTemplate.count(query, ConfigComparisonIgnoreCategoryCollection.class) diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonListSortConfigurationRepositoryImpl.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonListSortConfigurationRepositoryImpl.java index b60dd17d..135db8c9 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonListSortConfigurationRepositoryImpl.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonListSortConfigurationRepositoryImpl.java @@ -4,27 +4,45 @@ import com.arextest.web.common.LogUtils; import com.arextest.web.core.repository.mongo.util.MongoHelper; import com.arextest.web.model.contract.contracts.common.enums.CompareConfigType; +import com.arextest.web.model.contract.contracts.config.replay.ComparisonExclusionsConfiguration; import com.arextest.web.model.contract.contracts.config.replay.ComparisonListSortConfiguration; +import com.arextest.web.model.dao.mongodb.ConfigComparisonExclusionsCollection; import com.arextest.web.model.dao.mongodb.ConfigComparisonInclusionsCollection; import com.arextest.web.model.dao.mongodb.ConfigComparisonListSortCollection; +import com.arextest.web.model.dao.mongodb.CountResult; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails.Fields; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryListSortDto; +import com.arextest.web.model.mapper.ConfigComparisonExclusionsMapper; import com.arextest.web.model.mapper.ConfigComparisonListSortMapper; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; +import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.bson.Document; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.MongoExpression; import org.springframework.data.mongodb.core.BulkOperations; import org.springframework.data.mongodb.core.FindAndModifyOptions; import org.springframework.data.mongodb.core.MongoTemplate; +import org.springframework.data.mongodb.core.aggregation.Aggregation; +import org.springframework.data.mongodb.core.aggregation.AggregationExpression; +import org.springframework.data.mongodb.core.aggregation.AggregationOperation; +import org.springframework.data.mongodb.core.aggregation.AggregationOperationContext; +import org.springframework.data.mongodb.core.aggregation.AggregationResults; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators.ArrayToObject; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators.ConcatArrays; +import org.springframework.data.mongodb.core.aggregation.ArrayOperators.In; +import org.springframework.data.mongodb.core.aggregation.StringOperators; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -191,37 +209,59 @@ public ComparisonListSortConfiguration queryById(String id) { } public PageQueryComparisonResultDto pageQueryComparisonConfig( - PageQueryComparisonDto pageQueryComparisonDto) { + PageQueryListSortDto pageQueryComparisonDto) { PageQueryComparisonResultDto resultDto = new PageQueryComparisonResultDto<>(); - Query query = new Query(); - query.addCriteria(Criteria.where(Fields.appId).is(pageQueryComparisonDto.getAppId())); - query.addCriteria(Criteria.where(Fields.compareConfigType) - .is(CompareConfigType.REPLAY_MAIN.getCodeValue())); - List operationIds = pageQueryComparisonDto.getOperationIds(); - if (CollectionUtils.isNotEmpty(operationIds)) { - query.addCriteria(Criteria.where(Fields.operationId).in(operationIds)); + AggregationOperation project = Aggregation.project(ConfigComparisonListSortCollection.class) + .and(ArrayOperators.Reduce.arrayOf(ConfigComparisonListSortCollection.Fields.listPath) + .withInitialValue("").reduce(StringOperators.Concat.valueOf("$$value") + .concat("/").concatValueOf("$$this"))).as("listPathStr") + .and(ArrayOperators.Reduce.arrayOf(ConfigComparisonListSortCollection.Fields.keys) + .withInitialValue(new ArrayList<>()).reduce(ConcatArrays.arrayOf("$$value") + .concat("$$this"))).as("keyStr"); + + Criteria criteria = Criteria.where(Fields.appId).is(pageQueryComparisonDto.getAppId()); + criteria.and(Fields.compareConfigType) + .is(CompareConfigType.REPLAY_MAIN.getCodeValue()); + if (CollectionUtils.isNotEmpty(pageQueryComparisonDto.getOperationIds())) { + criteria.and(Fields.operationId).in(pageQueryComparisonDto.getOperationIds()); } if (CollectionUtils.isNotEmpty(pageQueryComparisonDto.getDependencyIds())) { - query.addCriteria(Criteria.where(Fields.dependencyId) - .in(pageQueryComparisonDto.getDependencyIds())); + criteria.and(Fields.dependencyId).in(pageQueryComparisonDto.getDependencyIds()); + } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfListPath())) { + criteria.and("listPathStr") + .regex(".*?" + pageQueryComparisonDto.getKeyOfListPath() + ".*", "i"); + } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfValue())) { + criteria.and("keyStr") + .regex(".*?" + pageQueryComparisonDto.getKeyOfValue() + ".*", "i"); } + AggregationOperation match = Aggregation.match(criteria); + if (Objects.equals(pageQueryComparisonDto.getNeedTotal(), true)) { - resultDto.setTotalCount( - mongoTemplate.count(query, ConfigComparisonListSortCollection.class) - ); + AggregationOperation count = Aggregation.count().as(CountResult.Fields.total); + Aggregation aggCount = Aggregation.newAggregation(project, match, count); + AggregationResults countResults = mongoTemplate.aggregate(aggCount, + ConfigComparisonListSortCollection.class, CountResult.class); + resultDto.setTotalCount(countResults.getUniqueMappedResult() == null ? 0L + : countResults.getUniqueMappedResult().getTotal()); } + Integer pageSize = pageQueryComparisonDto.getPageSize(); Integer pageIndex = pageQueryComparisonDto.getPageIndex(); - query.skip((long) (pageIndex - 1) * pageSize).limit(pageSize); - - query.with( - Sort.by(Sort.Direction.ASC, Fields.operationId) - .and(Sort.by(Sort.Direction.ASC, Fields.dependencyId)) - ); - List configs = mongoTemplate.find(query, - ConfigComparisonListSortCollection.class) + AggregationOperation skip = Aggregation.skip((long) (pageIndex - 1) * pageSize); + AggregationOperation limit = Aggregation.limit(pageSize); + AggregationOperation sort = Aggregation.sort(Sort.by(Sort.Direction.ASC, Fields.operationId) + .and(Sort.by(Sort.Direction.ASC, Fields.dependencyId))); + + Aggregation agg = Aggregation.newAggregation(project, match, sort, skip, limit); + AggregationResults results = mongoTemplate.aggregate(agg, + ConfigComparisonListSortCollection.class, + ConfigComparisonListSortCollection.class); + + List configs = results.getMappedResults() .stream() .map(ConfigComparisonListSortMapper.INSTANCE::dtoFromDao) .collect(Collectors.toList()); diff --git a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonTransformConfigurationRepositoryImpl.java b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonTransformConfigurationRepositoryImpl.java index 04c0f859..b5bbadd6 100644 --- a/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonTransformConfigurationRepositoryImpl.java +++ b/arex-web-core/src/main/java/com/arextest/web/core/repository/mongo/ComparisonTransformConfigurationRepositoryImpl.java @@ -8,8 +8,10 @@ import com.arextest.web.model.dao.mongodb.ConfigComparisonTransformCollection; import com.arextest.web.model.dao.mongodb.entity.AbstractComparisonDetails.Fields; import com.arextest.web.model.dao.mongodb.entity.TransformDetailDao; +import com.arextest.web.model.dao.mongodb.entity.TransformDetailDao.TransformMethodDao; import com.arextest.web.model.dto.config.PageQueryComparisonDto; import com.arextest.web.model.dto.config.PageQueryComparisonResultDto; +import com.arextest.web.model.dto.config.PageQueryTransformDto; import com.arextest.web.model.mapper.ConfigComparisonTransformMapper; import com.mongodb.client.result.DeleteResult; import com.mongodb.client.result.UpdateResult; @@ -231,7 +233,7 @@ public List queryConfigOfCategory( } public PageQueryComparisonResultDto pageQueryComparisonConfig( - PageQueryComparisonDto pageQueryComparisonDto) { + PageQueryTransformDto pageQueryComparisonDto) { PageQueryComparisonResultDto resultDto = new PageQueryComparisonResultDto<>(); @@ -251,6 +253,13 @@ public PageQueryComparisonResultDto pageQueryC query.addCriteria(Criteria.where(Fields.dependencyId) .in(pageQueryComparisonDto.getDependencyIds())); } + if (StringUtils.isNotEmpty(pageQueryComparisonDto.getKeyOfMethodName())) { + query.addCriteria(Criteria.where(ConfigComparisonTransformCollection.Fields.transformDetail + .concat(".").concat(TransformDetailDao.Fields.transformMethods)) + .elemMatch(Criteria.where(TransformMethodDao.Fields.methodName) + .regex(".*?" + pageQueryComparisonDto.getKeyOfMethodName() + ".*", "i")) + ); + } if (Objects.equals(pageQueryComparisonDto.getNeedTotal(), true)) { resultDto.setTotalCount( mongoTemplate.count(query, ConfigComparisonTransformCollection.class) diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/ComparisonListSortConfiguration.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/ComparisonListSortConfiguration.java index 2cb6a3d1..88614b2f 100644 --- a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/ComparisonListSortConfiguration.java +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/ComparisonListSortConfiguration.java @@ -5,6 +5,7 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.ToString; +import lombok.experimental.FieldNameConstants; import org.springframework.util.CollectionUtils; /** @@ -14,6 +15,7 @@ @NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) +@FieldNameConstants public class ComparisonListSortConfiguration extends AbstractComparisonDetailsConfiguration { private List listPath; diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryCategoryRequestType.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryCategoryRequestType.java new file mode 100644 index 00000000..2c189e4b --- /dev/null +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryCategoryRequestType.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.contract.contracts.config.replay; + +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryCategoryRequestType extends PageQueryComparisonRequestType{ + private String keyOfIgnoreOperationType; + private String keyOfIgnoreOperationName; +} diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryComparisonRequestType.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryComparisonRequestType.java index c06c7aff..3caf5b2f 100644 --- a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryComparisonRequestType.java +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryComparisonRequestType.java @@ -12,9 +12,9 @@ public class PageQueryComparisonRequestType implements PagingRequest { @NotBlank private String appId; - private List operationIds; + private String keyOfOperationName; - private List dependencyIds; + private String keyOfDependencyName; @NotNull private Integer pageIndex; diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryExclusionRequestType.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryExclusionRequestType.java new file mode 100644 index 00000000..e2975595 --- /dev/null +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryExclusionRequestType.java @@ -0,0 +1,13 @@ +package com.arextest.web.model.contract.contracts.config.replay; + +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryExclusionRequestType extends PageQueryComparisonRequestType{ + private String keyOfExclusionPath; +} diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryListSortRequestType.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryListSortRequestType.java new file mode 100644 index 00000000..b203fdf7 --- /dev/null +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryListSortRequestType.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.contract.contracts.config.replay; + +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryListSortRequestType extends PageQueryComparisonRequestType{ + private String keyOfListPath; + private String keyOfValue; +} diff --git a/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryTransformRequestType.java b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryTransformRequestType.java new file mode 100644 index 00000000..ce30215d --- /dev/null +++ b/arex-web-model-contract/src/main/java/com/arextest/web/model/contract/contracts/config/replay/PageQueryTransformRequestType.java @@ -0,0 +1,12 @@ +package com.arextest.web.model.contract.contracts.config.replay; + +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ +@Data +public class PageQueryTransformRequestType extends PageQueryComparisonRequestType { + private String keyOfMethodName; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/CountResult.java b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/CountResult.java new file mode 100644 index 00000000..cf19dc8d --- /dev/null +++ b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/CountResult.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.dao.mongodb; + +import lombok.Data; +import lombok.experimental.FieldNameConstants; + +/** + * @author b_yu + * @since 2024/12/18 + */ +@FieldNameConstants +@Data +public class CountResult { + private long total; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/CategoryDetailDao.java b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/CategoryDetailDao.java index 7114c5ab..f6e41c31 100644 --- a/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/CategoryDetailDao.java +++ b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/CategoryDetailDao.java @@ -3,6 +3,7 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.FieldNameConstants; /** * @author wildeslam. @@ -11,6 +12,7 @@ @Data @NoArgsConstructor @AllArgsConstructor +@FieldNameConstants public class CategoryDetailDao { private String operationType; diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/TransformDetailDao.java b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/TransformDetailDao.java index 86b8ce7e..3a8e3761 100644 --- a/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/TransformDetailDao.java +++ b/arex-web-model/src/main/java/com/arextest/web/model/dao/mongodb/entity/TransformDetailDao.java @@ -13,6 +13,7 @@ public class TransformDetailDao { private List transformMethods; @Data + @FieldNameConstants public static class TransformMethodDao { private String methodName; diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryCategoryDto.java b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryCategoryDto.java new file mode 100644 index 00000000..3518819f --- /dev/null +++ b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryCategoryDto.java @@ -0,0 +1,15 @@ +package com.arextest.web.model.dto.config; + +import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryCategoryDto extends PageQueryComparisonDto { + private String keyOfIgnoreOperationType; + private String keyOfIgnoreOperationName; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryComparisonDto.java b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryComparisonDto.java index 3e359077..85490eee 100644 --- a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryComparisonDto.java +++ b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryComparisonDto.java @@ -10,8 +10,10 @@ public class PageQueryComparisonDto { @NotBlank private String appId; + private String keyOfOperationName; private List operationIds; + private String keyOfDependencyName; private List dependencyIds; private Integer pageIndex; diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryExclusionDto.java b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryExclusionDto.java new file mode 100644 index 00000000..588bffec --- /dev/null +++ b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryExclusionDto.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.dto.config; + +import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryExclusionDto extends PageQueryComparisonDto { + private String keyOfExclusionPath; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryListSortDto.java b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryListSortDto.java new file mode 100644 index 00000000..5f4160da --- /dev/null +++ b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryListSortDto.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.dto.config; + +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryListSortDto extends PageQueryComparisonDto { + private String keyOfListPath; + private String keyOfValue; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryTransformDto.java b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryTransformDto.java new file mode 100644 index 00000000..32e3adf3 --- /dev/null +++ b/arex-web-model/src/main/java/com/arextest/web/model/dto/config/PageQueryTransformDto.java @@ -0,0 +1,14 @@ +package com.arextest.web.model.dto.config; + +import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; +import lombok.Data; + +/** + * @author b_yu + * @since 2024/12/16 + */ + +@Data +public class PageQueryTransformDto extends PageQueryComparisonDto { + private String keyOfMethodName; +} diff --git a/arex-web-model/src/main/java/com/arextest/web/model/mapper/PageQueryComparisonMapper.java b/arex-web-model/src/main/java/com/arextest/web/model/mapper/PageQueryComparisonMapper.java index 67ff6a86..275d5cb7 100644 --- a/arex-web-model/src/main/java/com/arextest/web/model/mapper/PageQueryComparisonMapper.java +++ b/arex-web-model/src/main/java/com/arextest/web/model/mapper/PageQueryComparisonMapper.java @@ -10,9 +10,17 @@ import com.arextest.web.model.contract.contracts.config.replay.ComparisonReferenceConfiguration; import com.arextest.web.model.contract.contracts.config.replay.ComparisonScriptConfiguration; import com.arextest.web.model.contract.contracts.config.replay.ComparisonTransformConfiguration; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryCategoryRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonRequestType; import com.arextest.web.model.contract.contracts.config.replay.PageQueryComparisonResponseType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryExclusionRequestType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryListSortRequestType; +import com.arextest.web.model.contract.contracts.config.replay.PageQueryTransformRequestType; +import com.arextest.web.model.dto.config.PageQueryCategoryDto; import com.arextest.web.model.dto.config.PageQueryComparisonDto; +import com.arextest.web.model.dto.config.PageQueryExclusionDto; +import com.arextest.web.model.dto.config.PageQueryListSortDto; +import com.arextest.web.model.dto.config.PageQueryTransformDto; import java.util.Map; import org.mapstruct.Context; import org.mapstruct.Mapper; @@ -28,6 +36,10 @@ public interface PageQueryComparisonMapper { PageQueryComparisonMapper INSTANCE = Mappers.getMapper(PageQueryComparisonMapper.class); PageQueryComparisonDto dtoFromContract(PageQueryComparisonRequestType contract); + PageQueryExclusionDto dtoFromContract(PageQueryExclusionRequestType contract); + PageQueryListSortDto dtoFromContract(PageQueryListSortRequestType contract); + PageQueryCategoryDto dtoFromContract(PageQueryCategoryRequestType contract); + PageQueryTransformDto dtoFromContract(PageQueryTransformRequestType contract); @Mappings({ @Mapping(target = "exclusionPath", source = "dto.exclusions"), diff --git a/pom.xml b/pom.xml index f7c06a3a..0a65759f 100644 --- a/pom.xml +++ b/pom.xml @@ -493,7 +493,7 @@ 0.7.0.1 1.0.1 0.0.1 - 2.0.2 + 2.0.4-SNAPSHOT 1.1.27 0.0.1 2.9.3