history example controller

This commit is contained in:
ialbert 2023-10-13 16:44:28 +03:00
parent 039f1f8510
commit 86a76a4488

View file

@ -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<SpcexObjectBase> searchMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_SearchMoneyBalanceRegister, SpcexObjectBase.class);
ImdgPredicateBuilder prdct = searchMap.predicateBuilder();
LocalDate time = LocalDate.of(2023, Month.JUNE, 8);//2023-06-08
Collection<Long> ids = searchMap.getCollectionIdsByPredicate(prdct.greatEqual("created", TimeUtil.localDateToInstant(time)));
Imdg<MoneyBalanceRegister> histMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_MoneyBalanceRegister, MoneyBalanceRegister.class);
List<Map<String, Object>> 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();
}
}