Commit d560dd10 authored by shiyu's avatar shiyu

去重

parent ee2c8325
......@@ -6,6 +6,10 @@ import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.IntStream;
public class StringUtil {
......@@ -43,5 +47,9 @@ public class StringUtil {
return numberArray;
}
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}
}
......@@ -242,7 +242,10 @@ public class DistributionOrderServiceImpl implements DistributionOrderService {
//查询参与出价的所有用户所对应的分销商,可以评分成交额的3%的利润
List<AuctionRecord> auctionRecordList = auctionRecordDao.findByItemId(dto.getItemId());
List<AuctionRecord> filterRecordList = auctionRecordList.stream().filter(a -> a.getUserId().longValue() != auctionRecord.getUserId()).collect(Collectors.toList());
List<AuctionRecord> filterRecordList = auctionRecordList.stream()
.filter(StringUtil.distinctByKey(AuctionRecord::getDistributorId))
.filter(a -> a.getUserId().longValue() != auctionRecord.getUserId())
.collect(Collectors.toList());
for (AuctionRecord record : filterRecordList) {
Double allProfit = distributionOrder.getAmount().doubleValue() * 0.03;
int peopleNum = filterRecordList.size();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment