Skip to content

Commit

Permalink
feat: add last id
Browse files Browse the repository at this point in the history
  • Loading branch information
pangdayuan1 committed Jan 20, 2025
1 parent 7a5c059 commit d4fbc7a
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,6 @@
public class QuerySceneRequestType extends PagedRequestType {

private String categoryType;
private String lastId;

}
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,5 @@
public class SceneDTO {
private List<String> sceneList;
private Long total;
private String lastId;
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,5 +41,8 @@ public interface Constants{
String AGENT_VERSION = "agentVersion";
String CLAZZ_NAME_AREX_MOCKER = AREXMocker.class.getSimpleName();
String CLAZZ_NAME_AREX_QUERY_MOCKER = AREXQueryMocker.class.getSimpleName();
String QUERY_CONFIG_URL = "query.config.url";
String QUERY_SCHEDULE_REPLAY_CONFIG_URL = "query.schedule.replay.config.url";
String UPDATE_CASE_STATUS_URL = "update.case.status.url";

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ public interface ScenePoolProvider {

Scene findByRecordId(String recordId);

List<String> findRecordsByAppId(String appId, int pageIndex, int pageSize);
List<Scene> findRecordsByAppId(String appId, String lastId, int pageSize);

long countByAppId(String appId);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.mongodb.core.FindAndModifyOptions;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
Expand Down Expand Up @@ -81,16 +78,16 @@ public Scene findByRecordId(String recordId) {
}

@Override
public List<String> findRecordsByAppId(String appId, int pageIndex, int pageSize) {
Query filter = Query.query(Criteria.where(Fields.appId).is(appId));

filter.fields().include(Fields.recordId);

Pageable pageableRequest = PageRequest.of(pageIndex, pageSize, Sort.by(Direction.ASC, Fields.id));
filter.with(pageableRequest);
return getTemplate().find(filter, Scene.class, getCollectionName()).stream()
.map(Scene::getRecordId)
.collect(Collectors.toList());
public List<Scene> findRecordsByAppId(String appId, String lastId, int pageSize) {
Criteria criteria = Criteria.where(Fields.appId).is(appId);
if (StringUtils.isNotBlank(lastId)) {
criteria.and(Fields.id).gt(lastId);
}
Query filter = Query.query(criteria);
filter.fields().include(Fields.recordId, Fields.id);
filter.limit(pageSize);
filter.with(Sort.by(Sort.Order.asc(Fields.id)));
return getTemplate().find(filter, Scene.class, getCollectionName());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import static com.arextest.diff.utils.JacksonHelperUtil.objectMapper;
import com.arextest.common.cache.CacheProvider;
import com.arextest.common.config.DefaultApplicationConfig;
import com.arextest.config.model.dao.config.SystemConfigurationCollection.KeySummary;
import com.arextest.config.model.dto.ComparisonExclusionsConfiguration;
import com.arextest.config.model.dto.application.AppContract;
Expand All @@ -18,6 +19,7 @@
import com.arextest.model.mock.Mocker;
import com.arextest.storage.cache.CacheKeyUtils;
import com.arextest.storage.client.HttpWebServiceApiClient;
import com.arextest.storage.model.Constants;
import com.arextest.storage.repository.AppContractRepository;
import java.util.ArrayList;
import java.util.Collection;
Expand Down Expand Up @@ -73,6 +75,8 @@ public class QueryConfigService {

@Resource
private AppContractRepository appContractRepository;
@Resource
private DefaultApplicationConfig defaultApplicationConfig;

public QueryConfigOfCategory queryConfigOfCategory(Mocker mocker) {
if (mocker.getCategoryType().isSkipComparison()) {
Expand All @@ -94,7 +98,8 @@ public QueryConfigOfCategory queryConfigOfCategory(Mocker mocker) {
queryConfigOfCategoryRequest.setEntryPoint(mocker.getCategoryType().isEntryPoint());
queryConfigOfCategoryRequest.setOperationName(operationName);
QueryConfigOfCategoryResponse queryConfigOfCategoryResponse =
httpWebServiceApiClient.jsonPost(queryConfigOfCategoryUrl,
httpWebServiceApiClient.jsonPost(defaultApplicationConfig.getConfigAsString(Constants.QUERY_CONFIG_URL,
queryConfigOfCategoryUrl),
queryConfigOfCategoryRequest, QueryConfigOfCategoryResponse.class);
if (queryConfigOfCategoryResponse != null && queryConfigOfCategoryResponse.getBody() != null) {
putConfigCache(appId, categoryName, operationName, queryConfigOfCategoryResponse.getBody());
Expand All @@ -104,7 +109,8 @@ public QueryConfigOfCategory queryConfigOfCategory(Mocker mocker) {
}

public ScheduleReplayConfigurationResponse queryScheduleReplayConfiguration(String appId) {
String url = String.format(queryScheduleReplayConfigurationUrl, appId);
String url = String.format(defaultApplicationConfig.getConfigAsString(Constants.QUERY_SCHEDULE_REPLAY_CONFIG_URL,
queryScheduleReplayConfigurationUrl), appId);
return httpWebServiceApiClient.get(url, Collections.emptyMap(),
ScheduleReplayConfigurationResponse.class);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,10 @@
import java.util.Date;
import java.util.List;
import jakarta.annotation.Resource;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

/**
* created by xinyuan_wang on 2024/2/2
Expand Down Expand Up @@ -72,9 +74,8 @@ public AREXMocker findByRecordId(String recordId, MockCategoryType categoryType)
return convert(provider.findByRecordId(recordId));
}

public SceneDTO findRecordsByAppId(String appId, String category, Integer pageIndex, int pageSize) {
if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(category) || pageIndex == null
|| pageIndex < 0 || pageSize == 0) {
public SceneDTO findRecordsByAppId(String appId, String lastId, String category, int pageSize) {
if (StringUtils.isEmpty(appId) || StringUtils.isEmpty(category) || pageSize == 0) {
return null;
}

Expand All @@ -93,8 +94,16 @@ public SceneDTO findRecordsByAppId(String appId, String category, Integer pageIn
return sceneDTO;
}

List<String> scenes = provider.findRecordsByAppId(appId, pageIndex, pageSize);
sceneDTO.setSceneList(scenes);
List<Scene> scenes = provider.findRecordsByAppId(appId, lastId, pageSize);
if (CollectionUtils.isEmpty(scenes)) {
sceneDTO.setSceneList(Collections.emptyList());
return sceneDTO;
}

List<String> recordIds = scenes.stream().map(Scene::getRecordId).collect(Collectors.toList());
Scene last = scenes.getLast();
sceneDTO.setSceneList(recordIds);
sceneDTO.setLastId(last.getId());
return sceneDTO;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.arextest.storage.service;

import com.arextest.common.config.DefaultApplicationConfig;
import com.arextest.model.replay.UpdateCaseStatusRequestType;
import com.arextest.model.replay.UpdateCaseStatusResponseType;
import com.arextest.storage.client.HttpWebServiceApiClient;
import com.arextest.storage.model.Constants;
import com.arextest.storage.trace.MDCTracer;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -22,6 +24,8 @@ public class UpdateCaseStatusService {
private String updateCaseStatusUrl;
@Resource
private HttpWebServiceApiClient httpWebServiceApiClient;
@Resource
private DefaultApplicationConfig defaultApplicationConfig;
private static final String TITLE = "[[title=updateCaseStatus]]";

public void updateStatusOfCase(String recordId, int caseStatus) {
Expand All @@ -32,7 +36,7 @@ public void updateStatusOfCase(String recordId, int caseStatus) {
try {
MDCTracer.addRecordId(recordId);
UpdateCaseStatusResponseType response = httpWebServiceApiClient.jsonPost(
updateCaseStatusUrl,
defaultApplicationConfig.getConfigAsString(Constants.UPDATE_CASE_STATUS_URL, updateCaseStatusUrl),
new UpdateCaseStatusRequestType(recordId, caseStatus),
UpdateCaseStatusResponseType.class
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public Response clearReplayPool(@PathVariable("appId") String appId) {
@ResponseBody
public Response findRecordsByAppId(@RequestBody QuerySceneRequestType requestType) {
return ResponseUtils.successResponse(
scenePoolService.findRecordsByAppId(requestType.getAppId(), requestType.getCategoryType(),
requestType.getPageIndex(), requestType.getPageSize()));
scenePoolService.findRecordsByAppId(requestType.getAppId(), requestType.getLastId(), requestType.getCategoryType(),
requestType.getPageSize()));
}
}
3 changes: 1 addition & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -443,13 +443,12 @@
<id>jar-local</id>
<properties>
<packagingType>jar</packagingType>
<snapshots.repo></snapshots.repo>
</properties>
</profile>
</profiles>

<properties>
<revision>2.0.7</revision>
<revision>2.0.8</revision>
<commons-lang3.version>3.3.2</commons-lang3.version>
<java.version>1.8</java.version>

Expand Down

0 comments on commit d4fbc7a

Please sign in to comment.