From 426d99944e8e87d3ad1ea1f9e5a3677d249a1413 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期五, 06 三月 2026 16:28:33 +0800
Subject: [PATCH] feat(customer-follow-up): 增加批量填充附件列表功能
---
src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java | 21 ++++++++++
src/main/java/com/ruoyi/basic/service/CustomerFollowUpService.java | 3 +
src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java | 48 ++++++++++++++++++++++++
src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpServiceImpl.java | 3 +
4 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
index e35054e..66e5e2c 100644
--- a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
+++ b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpFileService.java
@@ -2,6 +2,13 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.basic.pojo.CustomerFollowUpFile;
+import com.ruoyi.common.vo.SimpleFileVo;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Null;
+import java.util.List;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
/**
* <br>
@@ -13,4 +20,18 @@
* @since 2026/03/04 14:52
*/
public interface CustomerFollowUpFileService extends IService<CustomerFollowUpFile> {
+
+ /**
+ * 鏍规嵁 xx,xxx,xx鎵归噺鏌ヨ骞朵笖鍑烘彃鍏impleFileVo杩涘叆
+ * @param list
+ * @param getAttachmentIds
+ * @param setAttachmentList
+ * @param <T>
+ */
+ <T> void fillAttachment(
+ @Null List<T> list,
+ @NotNull Function<T, String> getAttachmentIds,
+ @NotNull BiConsumer<T, List<SimpleFileVo>> setAttachmentList
+ );
+
}
diff --git a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpService.java b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpService.java
index 561ef33..24992f7 100644
--- a/src/main/java/com/ruoyi/basic/service/CustomerFollowUpService.java
+++ b/src/main/java/com/ruoyi/basic/service/CustomerFollowUpService.java
@@ -7,6 +7,7 @@
import com.ruoyi.basic.pojo.CustomerFollowUpFile;
import org.springframework.web.multipart.MultipartFile;
+import java.util.Collection;
import java.util.List;
/**
@@ -52,7 +53,7 @@
/**
* 鏍规嵁闄勪欢ID闆嗗悎鑾峰彇闄勪欢鍒楄〃
*/
- List<CustomerFollowUpFile> getFollowUpFilesByIds(List<Long> fileIds);
+ List<CustomerFollowUpFile> getFollowUpFilesByIds(Collection<Long> fileIds);
/**
* 鑾峰彇璺熻繘璇︽儏
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
index 48cbddb..e5f992f 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpFileServiceImpl.java
@@ -1,10 +1,21 @@
package com.ruoyi.basic.service.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.stream.CollectorUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.mapper.CustomerFollowUpFileMapper;
import com.ruoyi.basic.pojo.CustomerFollowUpFile;
import com.ruoyi.basic.service.CustomerFollowUpFileService;
+import com.ruoyi.basic.service.CustomerFollowUpService;
+import com.ruoyi.common.vo.SimpleFileVo;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+import java.util.stream.Collectors;
/**
* <br>
@@ -16,5 +27,42 @@
* @since 2026/03/04 14:53
*/
@Service
+@RequiredArgsConstructor
public class CustomerFollowUpFileServiceImpl extends ServiceImpl<CustomerFollowUpFileMapper, CustomerFollowUpFile> implements CustomerFollowUpFileService {
+
+ private final CustomerFollowUpService customerFollowUpService;
+
+
+ @Override
+ public <T> void fillAttachment(List<T> list, Function<T, String> getAttachmentIds, BiConsumer<T, List<SimpleFileVo>> setAttachmentList) {
+ if (CollUtil.isEmpty(list)) {
+ return;
+ }
+ // 鏀堕泦鎵�鏈夋枃浠禝D
+ Set<Long> ids = list.stream()
+ .map(getAttachmentIds)
+ .filter(StrUtil::isNotBlank)
+ .flatMap(s -> Arrays.stream(s.split(",")))
+ .map(Long::valueOf)
+ .collect(Collectors.toSet());
+
+ List<CustomerFollowUpFile> followUpFilesByIds = customerFollowUpService.getFollowUpFilesByIds(ids);
+ if (CollUtil.isEmpty(followUpFilesByIds)) {
+ return;
+ }
+ Map<Long, SimpleFileVo> collectMap = followUpFilesByIds.stream().map(SimpleFileVo::convert).collect(Collectors.toMap(
+ SimpleFileVo::getId,
+ Function.identity()
+ ));
+ list.forEach(t -> {
+ String attachmentIds = getAttachmentIds.apply(t);
+ if (StrUtil.isNotBlank(attachmentIds)) {
+ List<SimpleFileVo> fileVos = Arrays.stream(attachmentIds.split(","))
+ .map(Long::valueOf)
+ .map(it->collectMap.getOrDefault(it, (SimpleFileVo) Collections.emptyList()))
+ .collect(Collectors.toList());
+ setAttachmentList.accept(t, fileVos);
+ }
+ });
+ }
}
diff --git a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpServiceImpl.java b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpServiceImpl.java
index 4fd252c..5637307 100644
--- a/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpServiceImpl.java
+++ b/src/main/java/com/ruoyi/basic/service/impl/CustomerFollowUpServiceImpl.java
@@ -30,6 +30,7 @@
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import java.util.UUID;
@@ -141,7 +142,7 @@
}
@Override
- public List<CustomerFollowUpFile> getFollowUpFilesByIds(List<Long> fileIds) {
+ public List<CustomerFollowUpFile> getFollowUpFilesByIds(Collection<Long> fileIds) {
if (fileIds == null || fileIds.isEmpty()) {
return new ArrayList<>(0);
}
--
Gitblit v1.9.3