feat(VideoService): 视频查询接口增加景区名称

- 在 VideoServiceImpl 中添加景区名称查询功能
- 使用 ScenicRepository 批量获取景区名称
- 在视频列表中添加景区名称字段
This commit is contained in:
2025-09-07 14:28:42 +08:00
parent e9e59cd33e
commit 90dc7fea70

View File

@@ -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<PageInfo<VideoRespVO>> pageQuery(VideoReqQuery videoReqQuery) {
PageHelper.startPage(videoReqQuery.getPageNum(), videoReqQuery.getPageSize());
List<VideoRespVO> list = videoMapper.list(videoReqQuery);
// 批量获取景区名称
List<Long> scenicIds = list.stream()
.map(VideoRespVO::getScenicId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
// 设置景区名称
list.forEach(item -> {
if (item.getScenicId() != null) {
item.setScenicName(scenicNames.get(item.getScenicId()));
}
});
PageInfo<VideoRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}
@Override
public ApiResponse<List<VideoRespVO>> list(VideoReqQuery videoReqQuery) {
return ApiResponse.success(videoMapper.list(videoReqQuery));
List<VideoRespVO> list = videoMapper.list(videoReqQuery);
// 批量获取景区名称
List<Long> scenicIds = list.stream()
.map(VideoRespVO::getScenicId)
.filter(Objects::nonNull)
.distinct()
.collect(Collectors.toList());
Map<Long, String> scenicNames = scenicRepository.batchGetScenicNames(scenicIds);
// 设置景区名称
list.forEach(item -> {
if (item.getScenicId() != null) {
item.setScenicName(scenicNames.get(item.getScenicId()));
}
});
return ApiResponse.success(list);
}
@Override