guyue
3 天以前 faa95a5b183a42a6c3fcf1d6a41d81caa33da3bc
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();
        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);
    }