diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java index a3213410c..3894d40f3 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionCurrencyController.java @@ -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 pageSize, + @RequestParam(name = "pageIndex", required = false) Optional pageIndex) { + ImdgPredicate filter = imdgPredicateBuilder.and( + imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()), + imdgPredicateBuilder.equals("side", Side.SELL.getKey())); + AtomicReference>> 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; + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositController.java index c5d1cb6bd..8cf0688dd 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionDepositController.java @@ -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 pageSize, + @RequestParam(name = "pageIndex", required = false) Optional pageIndex) { + ImdgPredicate filter = imdgPredicateBuilder.and( + imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()), + imdgPredicateBuilder.equals("side", MoneyFlowSide.SELL.getKey())); + AtomicReference>> 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; + } } diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondController.java index 095dafa89..8daec1a88 100644 --- a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondController.java +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/queue/execution/ExecutionFondController.java @@ -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 pageSize, + @RequestParam(name = "pageIndex", required = false) Optional pageIndex) { + ImdgPredicate filter = imdgPredicateBuilder.and( + imdgPredicateBuilder.greatEqual("settlementDate", LocalDate.now()), + imdgPredicateBuilder.equals("side", Side.SELL.getKey())); + AtomicReference>> 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; + } }