From faa95a5b183a42a6c3fcf1d6a41d81caa33da3bc Mon Sep 17 00:00:00 2001 From: guyue <1721849008@qq.com> Date: 星期三, 30 七月 2025 17:42:00 +0800 Subject: [PATCH] 修改定时器抢占 --- src/main/java/com/linghu/controller/CollectController.java | 25 ++++++++++++++++++++++++- 1 files changed, 24 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/linghu/controller/CollectController.java b/src/main/java/com/linghu/controller/CollectController.java index b2cd896..0200878 100644 --- a/src/main/java/com/linghu/controller/CollectController.java +++ b/src/main/java/com/linghu/controller/CollectController.java @@ -1183,6 +1183,22 @@ log.info("无有效引用数据,跳过批量保存"); return; } +// // 在合并到 compositeKeyMap 之前 +// validReferences = validReferences.stream() +// .collect(Collectors.toMap( +// ref -> ref.getQuestion_id() +// + "|" + ref.getPlatform_id() +// + "|" + ref.getType_id() +// + "|" + ref.getUrl() +// + "|" + ref.getDomain() +// + "|" + ref.getKeyword_id() +// + "|" + ref.getNum(), +// ref -> ref, +// (r1, r2) -> r1 // 碰到同 key 就保第一个 +// )) +// .values() +// .stream() +// .collect(Collectors.toList()); // 2. 查询数据库中已存在的引用并过滤 null LambdaQueryWrapper<Reference> dbRefWrapper = new LambdaQueryWrapper<>(); @@ -1211,6 +1227,7 @@ .findFirst(); Reference finalRef = existingRef.orElse(validRefGroup.get(0)); +// 重复次数 = 老的 + (这一组里一共抓到多少-1) int repetitionNum = (finalRef.getRepetition_num() == null ? 1 : finalRef.getRepetition_num()) + (validRefGroup.size() - 1); finalRef.setRepetition_num(repetitionNum); @@ -1249,7 +1266,13 @@ log.warn("引用核心字段为空,跳过映射:{}", ref); return; } - String key = ref.getQuestion_id() + "|" + ref.getTitle() + "|" + ref.getUrl() + "|" + ref.getDomain() + "|" + ref.getTask_id(); + String key = ref.getQuestion_id() + "|" + + ref.getPlatform_id() + "|" + + ref.getType_id() + "|" + + ref.getTitle() + "|" + + ref.getUrl() + "|" + + ref.getDomain() + "|" + + ref.getNum(); map.computeIfAbsent(key, k -> new ArrayList<>()).add(ref); } -- Gitblit v1.7.1