From 380d6d29088a408315c862acd2828d2fbe01f094 Mon Sep 17 00:00:00 2001 From: tianyongbao Date: Sun, 22 Feb 2026 18:59:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=99=AE=E9=80=9A=E7=BA=AA=E5=BF=B5?= =?UTF-8?q?=E5=B8=81=EF=BC=8Cbug=E4=BF=AE=E5=A4=8D=EF=BC=8C=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/CommemorativeCoinMapper.java | 8 ++++ .../impl/CommemorativeCoinServiceImpl.java | 32 +++++++++++++- .../collect/CommemorativeCoinMapper.xml | 43 ++++++++++++------- 3 files changed, 67 insertions(+), 16 deletions(-) diff --git a/intc-modules/intc-collect/src/main/java/com/intc/collect/mapper/CommemorativeCoinMapper.java b/intc-modules/intc-collect/src/main/java/com/intc/collect/mapper/CommemorativeCoinMapper.java index 76f9d39..bfd10fb 100644 --- a/intc-modules/intc-collect/src/main/java/com/intc/collect/mapper/CommemorativeCoinMapper.java +++ b/intc-modules/intc-collect/src/main/java/com/intc/collect/mapper/CommemorativeCoinMapper.java @@ -29,6 +29,14 @@ public interface CommemorativeCoinMapper */ public List selectCommemorativeCoinList(CommemorativeCoinDto commemorativeCoinDto); + /** + * 根据ID列表查询流通纪念币及其关联文件 + * + * @param ids 流通纪念币ID列表 + * @return 流通纪念币集合(包含关联文件) + */ + public List selectCommemorativeCoinListWithFiles(List ids); + /** * 新增流通纪念币 * diff --git a/intc-modules/intc-collect/src/main/java/com/intc/collect/service/impl/CommemorativeCoinServiceImpl.java b/intc-modules/intc-collect/src/main/java/com/intc/collect/service/impl/CommemorativeCoinServiceImpl.java index 68f096c..7c1222b 100644 --- a/intc-modules/intc-collect/src/main/java/com/intc/collect/service/impl/CommemorativeCoinServiceImpl.java +++ b/intc-modules/intc-collect/src/main/java/com/intc/collect/service/impl/CommemorativeCoinServiceImpl.java @@ -2,6 +2,8 @@ package com.intc.collect.service.impl; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import com.intc.collect.domain.CollectFile; import com.intc.collect.mapper.CollectFileMapper; @@ -53,7 +55,35 @@ public class CommemorativeCoinServiceImpl implements ICommemorativeCoinService @Override public List selectCommemorativeCoinList(CommemorativeCoinDto commemorativeCoinDto) { - return commemorativeCoinMapper.selectCommemorativeCoinList(commemorativeCoinDto); + // 第一步:先分页查询主表数据 + List list = commemorativeCoinMapper.selectCommemorativeCoinList(commemorativeCoinDto); + + // 如果查询结果为空,直接返回 + if (list == null || list.isEmpty()) + { + return list; + } + + // 第二步:提取主表ID列表 + List ids = list.stream().map(CommemorativeCoinVo::getId).collect(Collectors.toList()); + + // 第三步:批量查询关联的文件信息 + List listWithFiles = commemorativeCoinMapper.selectCommemorativeCoinListWithFiles(ids); + + // 第四步:将关联文件数据填充回主表对象 + Map fileMap = listWithFiles.stream() + .collect(Collectors.toMap(CommemorativeCoinVo::getId, vo -> vo)); + + for (CommemorativeCoinVo vo : list) + { + CommemorativeCoinVo voWithFiles = fileMap.get(vo.getId()); + if (voWithFiles != null && voWithFiles.getCollectFileList() != null) + { + vo.setCollectFileList(voWithFiles.getCollectFileList()); + } + } + + return list; } /** diff --git a/intc-modules/intc-collect/src/main/resources/mapper/collect/CommemorativeCoinMapper.xml b/intc-modules/intc-collect/src/main/resources/mapper/collect/CommemorativeCoinMapper.xml index 0162de3..3415669 100644 --- a/intc-modules/intc-collect/src/main/resources/mapper/collect/CommemorativeCoinMapper.xml +++ b/intc-modules/intc-collect/src/main/resources/mapper/collect/CommemorativeCoinMapper.xml @@ -57,25 +57,38 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + select id, type, full_name, short_name, face_value, issue_date, mintage, composition, + issue_year, series, set_number, block_type, shape, create_by, + create_time, update_by, update_time, del_flag, remark, + weight, dimension, thickness, coin_teeth + from col_commemorative_coin - a.del_flag='0' - and a.type = #{type} - and a.full_name like '%'|| #{fullName}||'%' - and (a.short_name like '%'|| #{name}||'%' or a.full_name like '%'|| #{name}||'%') - and a.issue_date = #{issueDate} - and a.issue_year like '%'|| #{issueYear}||'%' - and a.series = #{series} - and a.block_type = #{blockType} - and a.shape = #{shape} - - and #{endTime}>=to_char(a.issue_date, 'yyyy-MM-dd') + del_flag='0' + and type = #{type} + and full_name like '%'|| #{fullName}||'%' + and (short_name like '%'|| #{name}||'%' or full_name like '%'|| #{name}||'%') + and issue_date = #{issueDate} + and issue_year like '%'|| #{issueYear}||'%' + and series = #{series} + and block_type = #{blockType} + and shape = #{shape} + + and #{endTime}>=to_char(issue_date, 'yyyy-MM-dd') - - and to_char(a.issue_date, 'yyyy-MM-dd')>=#{startTime} + + and to_char(issue_date, 'yyyy-MM-dd')>=#{startTime} + order by issue_date desc + + +