diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java index 2fcb287..181c211 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/mapper/FileMapper.java @@ -22,4 +22,6 @@ public interface FileMapper extends BaseMapper public List selectFileList(File file); public int updateBussinessids(@Param("longs") List longs,@Param("newBussinessid") Long bussinessid); + + public List selectFileListByBussinessIds(@Param("longs") List longs); } diff --git a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java index 907d58e..1e6982c 100644 --- a/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java +++ b/ruoyi-bussiness/src/main/java/com/ruoyi/cms/service/impl/JobServiceImpl.java @@ -30,6 +30,7 @@ import com.ruoyi.common.utils.SiteSecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.bean.BeanUtils; import com.ruoyi.common.utils.spring.SpringUtils; +import org.apache.commons.collections4.CollectionUtils; import org.dromara.easyes.core.biz.EsPageInfo; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -251,6 +252,39 @@ public class JobServiceImpl extends ServiceImpl implements IJobSe public List selectJobList(Job job) { List jobs = jobMapper.selectJobList(job); + if (CollectionUtils.isNotEmpty(jobs)) { + String baseFilePath = StringUtil.getFilePath(); + + List jobIds = jobs.stream().filter(Objects::nonNull) + .map(Job::getJobId).filter(Objects::nonNull) + .distinct().collect(Collectors.toList()); + + List allFiles = CollectionUtils.isNotEmpty(jobIds) + ? Optional.ofNullable(fileMapper.selectFileListByBussinessIds(jobIds)) + .orElseGet(Collections::emptyList) + : Collections.emptyList(); + + Map> fileGroupMap = allFiles.stream() + .filter(Objects::nonNull) + .filter(file -> Objects.nonNull(file.getBussinessid())) + .filter(file -> StringUtils.isNotBlank(file.getFileUrl())) + .peek(file -> { + String fullFileUrl = StringUtils.join(baseFilePath, file.getFileUrl().trim()); + file.setFileUrl(fullFileUrl); + }) + .collect(Collectors.groupingBy( + File::getBussinessid, + Collectors.collectingAndThen(Collectors.toList(),Collections::unmodifiableList) + )); + + jobs.forEach(jobItem -> { + if (Objects.nonNull(jobItem)) { + Long jobItemId = jobItem.getJobId(); + List jobFiles = fileGroupMap.getOrDefault(jobItemId, Collections.emptyList()); + jobItem.setFilesList(jobFiles); + } + }); + } return jobs; } diff --git a/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml b/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml index a2e4fb3..a6db6c0 100644 --- a/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml +++ b/ruoyi-bussiness/src/main/resources/mapper/app/FileMapper.xml @@ -49,4 +49,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + \ No newline at end of file