From 90dc7fea701b348f20106c5cf757c84fba76ba28 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Sun, 7 Sep 2025 14:28:42 +0800 Subject: [PATCH] =?UTF-8?q?feat(VideoService):=20=E8=A7=86=E9=A2=91?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3=E5=A2=9E=E5=8A=A0=E6=99=AF?= =?UTF-8?q?=E5=8C=BA=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 VideoServiceImpl 中添加景区名称查询功能 - 使用 ScenicRepository 批量获取景区名称 - 在视频列表中添加景区名称字段 --- .../service/pc/impl/VideoServiceImpl.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/VideoServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/VideoServiceImpl.java index 6d26229..78c6d65 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/VideoServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/VideoServiceImpl.java @@ -5,12 +5,16 @@ import com.github.pagehelper.PageInfo; import com.ycwl.basic.mapper.VideoMapper; import com.ycwl.basic.model.pc.video.req.VideoReqQuery; import com.ycwl.basic.model.pc.video.resp.VideoRespVO; +import com.ycwl.basic.repository.ScenicRepository; import com.ycwl.basic.service.pc.VideoService; import com.ycwl.basic.utils.ApiResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; /** * @Author:longbinbin @@ -21,18 +25,53 @@ public class VideoServiceImpl implements VideoService { @Autowired private VideoMapper videoMapper; + @Autowired + private ScenicRepository scenicRepository; @Override public ApiResponse> pageQuery(VideoReqQuery videoReqQuery) { PageHelper.startPage(videoReqQuery.getPageNum(), videoReqQuery.getPageSize()); List list = videoMapper.list(videoReqQuery); + + // 批量获取景区名称 + List scenicIds = list.stream() + .map(VideoRespVO::getScenicId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + Map scenicNames = scenicRepository.batchGetScenicNames(scenicIds); + + // 设置景区名称 + list.forEach(item -> { + if (item.getScenicId() != null) { + item.setScenicName(scenicNames.get(item.getScenicId())); + } + }); + PageInfo pageInfo = new PageInfo<>(list); return ApiResponse.success(pageInfo); } @Override public ApiResponse> list(VideoReqQuery videoReqQuery) { - return ApiResponse.success(videoMapper.list(videoReqQuery)); + List list = videoMapper.list(videoReqQuery); + + // 批量获取景区名称 + List scenicIds = list.stream() + .map(VideoRespVO::getScenicId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + Map scenicNames = scenicRepository.batchGetScenicNames(scenicIds); + + // 设置景区名称 + list.forEach(item -> { + if (item.getScenicId() != null) { + item.setScenicName(scenicNames.get(item.getScenicId())); + } + }); + + return ApiResponse.success(list); } @Override