history example controller
This commit is contained in:
parent
039f1f8510
commit
86a76a4488
1 changed files with 71 additions and 0 deletions
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue