去除重复

This commit is contained in:
Guava
2023-07-03 11:33:09 +08:00
parent 61eeada843
commit a0135ecdd1

View File

@@ -33,10 +33,10 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.Date; import java.util.concurrent.ConcurrentHashMap;
import java.util.List; import java.util.function.Function;
import java.util.Map; import java.util.function.Predicate;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@@ -197,10 +197,15 @@ public class CasesRecommendPushRecordServiceImpl implements ICasesRecommendPushR
updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus()); updateProcessStatus(casesRecommend.getId(), CasesPushStatusEnum.PUSH_SUCCESS.getStatus());
} }
private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Set<Object> seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}
private void sendMixCaseRecommend(List<CasesRecommendPushRecord> casesRecommendPushRecords) { private void sendMixCaseRecommend(List<CasesRecommendPushRecord> casesRecommendPushRecords) {
Map<String, List<CasesRecommendPushRecord>> caseMap = casesRecommendPushRecords.stream().collect(Collectors.groupingBy(CasesRecommendPushRecord::getPushUserId)); Map<String, List<CasesRecommendPushRecord>> caseMap = casesRecommendPushRecords.stream().collect(Collectors.groupingBy(CasesRecommendPushRecord::getPushUserId));
Map<String, String> userMap = casesRecommendPushRecords.stream().collect(Collectors.toMap(CasesRecommendPushRecord::getPushUserId, CasesRecommendPushRecord::getPushUserName)); Map<String, String> userMap = casesRecommendPushRecords.stream().filter(distinctByKey(CasesRecommendPushRecord::getPushUserId)).collect(Collectors.toMap(CasesRecommendPushRecord::getPushUserId, CasesRecommendPushRecord::getPushUserName));
for (String userId : caseMap.keySet()) { for (String userId : caseMap.keySet()) {
List<CasesRecommendPushRecord> pushRecords = caseMap.get(userId); List<CasesRecommendPushRecord> pushRecords = caseMap.get(userId);
try { try {