добавлена пагинация для execution

This commit is contained in:
etreschenkov 2024-08-28 11:42:52 +03:00
parent 54f305447f
commit e45d499555
3 changed files with 70 additions and 0 deletions

View file

@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.clearing.classes.statics.data.execution.ExecutionCurrency;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
@ -14,6 +15,7 @@ import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllRespo
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@ -21,6 +23,8 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
@Controller
@RequestMapping("/execution-currency")
@ -53,4 +57,23 @@ public class ExecutionCurrencyController extends AbstractQueueController {
response.fromEntity(all);
return response;
}
@ApiOperation(value = "get ExecutionCurrency by filter.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(value = "/filter", method = RequestMethod.GET)
@ResponseBody
public CommonGetAllResponse getByFilter(@RequestParam(name = "pageSize", required = false) Optional<Integer> pageSize,
@RequestParam(name = "pageIndex", required = false) Optional<Integer> pageIndex) {
ImdgPredicate filter = imdgPredicateBuilder.and(
imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()),
imdgPredicateBuilder.equals("side", Side.SELL.getKey()));
AtomicReference<Collection<Map<String, Object>>> all = new AtomicReference<>();
pageIndex.ifPresentOrElse(index ->
all.set(stateLoader.getAllMetaTransformWithPagination(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class, filter,
pageSize.orElse(10_000), index)),
() -> all.set(stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_ExecutionCurrency, ExecutionCurrency.class, filter)));
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all.get());
return response;
}
}

View file

@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.clearing.classes.statics.data.execution.ExecutionDeposit;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
@ -14,6 +15,8 @@ import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllRespo
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.MoneyFlowSide;
import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@ -21,6 +24,8 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
@Controller
@RequestMapping("/execution-deposits")
@ -52,4 +57,23 @@ public class ExecutionDepositController extends AbstractQueueController {
response.fromEntity(all);
return response;
}
@ApiOperation(value = "get ExecutionDeposits by filter.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(value = "/filter", method = RequestMethod.GET)
@ResponseBody
public CommonGetAllResponse getByFilter(@RequestParam(name = "pageSize", required = false) Optional<Integer> pageSize,
@RequestParam(name = "pageIndex", required = false) Optional<Integer> pageIndex) {
ImdgPredicate filter = imdgPredicateBuilder.and(
imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()),
imdgPredicateBuilder.equals("side", MoneyFlowSide.SELL.getKey()));
AtomicReference<Collection<Map<String, Object>>> all = new AtomicReference<>();
pageIndex.ifPresentOrElse(index ->
all.set(stateLoader.getAllMetaTransformWithPagination(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class, filter,
pageSize.orElse(10_000), index)),
() -> all.set(stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_ExecutionDeposit, ExecutionDeposit.class, filter)));
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all.get());
return response;
}
}

View file

@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.clearing.classes.statics.data.execution.ExecutionFond;
import ru.spcex.clearing.backendapi.controller.queue.AbstractQueueController;
@ -14,6 +15,7 @@ import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllRespo
import ru.spcex.clearing.backendapi.service.IOperator;
import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.enumeration.Side;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@ -21,6 +23,8 @@ import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicReference;
@Controller
@RequestMapping("/execution-fonds")
@ -53,4 +57,23 @@ public class ExecutionFondController extends AbstractQueueController {
response.fromEntity(all);
return response;
}
@ApiOperation(value = "get ExecutionCurrency by filter.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(value = "/filter", method = RequestMethod.GET)
@ResponseBody
public CommonGetAllResponse getByFilter(@RequestParam(name = "pageSize", required = false) Optional<Integer> pageSize,
@RequestParam(name = "pageIndex", required = false) Optional<Integer> pageIndex) {
ImdgPredicate filter = imdgPredicateBuilder.and(
imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()),
imdgPredicateBuilder.equals("side", Side.SELL.getKey()));
AtomicReference<Collection<Map<String, Object>>> all = new AtomicReference<>();
pageIndex.ifPresentOrElse(index ->
all.set(stateLoader.getAllMetaTransformWithPagination(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class, filter,
pageSize.orElse(10_000), index)),
() -> all.set(stateLoader.getAllMetaTransform(IMDGDistributedNames.Map_ExecutionFond, ExecutionFond.class, filter)));
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(all.get());
return response;
}
}