This commit is contained in:
parent
b9c90d7c28
commit
b7c73ec64a
1 changed files with 9 additions and 7 deletions
|
|
@ -76,7 +76,7 @@ public class MarketCodesBySessionConfig {
|
|||
}
|
||||
|
||||
private static class MarketCodesProviderV2 implements Supplier<List<String>> {
|
||||
private final MarketType[] marketType2;
|
||||
private final MarketType[] marketTypes;
|
||||
private volatile List<String> codes;
|
||||
private final Object lock = new Object();
|
||||
private final ImdgProvider imdgProvider;
|
||||
|
|
@ -85,7 +85,7 @@ public class MarketCodesBySessionConfig {
|
|||
public MarketCodesProviderV2(ImdgProvider imdgProvider, Section section, MarketType... marketType) {
|
||||
this.imdgProvider = imdgProvider;
|
||||
this.section = section;
|
||||
this.marketType2 = marketType;
|
||||
this.marketTypes = marketType;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -96,13 +96,15 @@ public class MarketCodesBySessionConfig {
|
|||
imdgProvider.waitAvailable();
|
||||
Imdg<Market> marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class);
|
||||
ImdgPredicateBuilder pb = marketImdg.predicateBuilder();
|
||||
ImdgPredicate[] prd = new ImdgPredicate[marketType2.length + 1];
|
||||
prd[0] = pb.equals("section", section.getKey());
|
||||
for (int i = 0; i < marketType2.length; i++) {
|
||||
prd[i + 1] = pb.equals("marketType", marketType2[i].getKey());
|
||||
ImdgPredicate[] marketTypePredicates = new ImdgPredicate[marketTypes.length];
|
||||
for (int i = 0; i < marketTypes.length; i++) {
|
||||
marketTypePredicates[i] = pb.equals("marketType", marketTypes[i].getKey());
|
||||
}
|
||||
Collection<Market> markets = marketImdg.getCollectionObjectsByPredicate(
|
||||
pb.and(prd)
|
||||
pb.and(
|
||||
pb.equals("section", section.getKey()),
|
||||
pb.or(marketTypePredicates)
|
||||
)
|
||||
);
|
||||
codes = markets.stream().map(Market::getCode).distinct().collect(Collectors.toList());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue