diff --git a/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/HistController.java b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/HistController.java new file mode 100644 index 000000000..1bd27d802 --- /dev/null +++ b/clearing-parent/backend-api/src/main/java/ru/spcex/clearing/backendapi/controller/test/HistController.java @@ -0,0 +1,71 @@ +package ru.spcex.clearing.backendapi.controller.test; + +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +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.ResponseBody; +import ru.clearing.classes.statics.data.register.MoneyBalanceRegister; +import ru.spcex.clearing.backendapi.controller.response.entity.CommonGetAllResponse; +import ru.spcex.clearing.backendapi.meta.GetResponseFactory; +import ru.spcex.clearing.imdg.IMDGDistributedNames; +import ru.spcex.platform.classes.base.SpcexObjectBase; +import ru.spcex.platform.imdg.api.Imdg; +import ru.spcex.platform.imdg.api.ImdgProvider; +import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; +import ru.spcex.platform.utils.time.TimeUtil; + +import java.time.LocalDate; +import java.time.Month; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +@Controller +@RequestMapping("/history") +public class HistController implements InitializingBean { + private final ImdgProvider imdgProviderHist; + private final ImdgProvider imdgProvider; + private final GetResponseFactory responseFactory; + + @Autowired + public HistController(@Qualifier("imdgProviderHist") ImdgProvider imdgProviderHist, + @Qualifier("imdgProvider") ImdgProvider imdgProvider, GetResponseFactory responseFactory) { + this.imdgProviderHist = imdgProviderHist; + this.imdgProvider = imdgProvider; + this.responseFactory = responseFactory; + } + + @ApiOperation(value = "get all accounts.") + @ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)}) + @RequestMapping(path = "/money-balance-register", method = RequestMethod.GET) + @ResponseBody + public CommonGetAllResponse getAll() { + Imdg searchMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_SearchMoneyBalanceRegister, SpcexObjectBase.class); + ImdgPredicateBuilder prdct = searchMap.predicateBuilder(); + LocalDate time = LocalDate.of(2023, Month.JUNE, 8);//2023-06-08 + Collection ids = searchMap.getCollectionIdsByPredicate(prdct.greatEqual("created", TimeUtil.localDateToInstant(time))); + Imdg histMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_MoneyBalanceRegister, MoneyBalanceRegister.class); + List> maps = ids.stream() + .map(histMap::getSingleObjectByID) + .filter(Objects::nonNull) + .map(responseFactory::responseFromObject) + .toList(); + CommonGetAllResponse response = new CommonGetAllResponse(); + response.fromEntity(maps); + return response; + } + + + @Override + public void afterPropertiesSet() throws Exception { + imdgProviderHist.waitAvailable(); + imdgProvider.waitAvailable(); + } +}