diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java index 7c2f954c1..a57e0dc38 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java @@ -85,11 +85,23 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService { PageResult datasetQuestionDOPageResult = datasetQuestionMapper.selectPage(pageReqVO); PageResult result = BeanUtils.toBean(datasetQuestionDOPageResult, DatasetQuestionRespVO.class); if (CollectionUtils.isNotEmpty(result.getList())) { - result.getList().forEach(item -> { - List datasetAnswerDOS = datasetAnswerMapper.selectList(new LambdaQueryWrapper<>(DatasetAnswerDO.class) - .eq(DatasetAnswerDO::getQuestionId, item.getId())); - item.setDatasetAnswerRespVO(BeanUtils.toBean(datasetAnswerDOS, DatasetAnswerRespVO.class)); - +// result.getList().forEach(item -> { +// List datasetAnswerDOS = datasetAnswerMapper.selectList(new LambdaQueryWrapper<>(DatasetAnswerDO.class) +// .eq(DatasetAnswerDO::getQuestionId, item.getId())); +// item.setDatasetAnswerRespVO(BeanUtils.toBean(datasetAnswerDOS, DatasetAnswerRespVO.class)); +// +// }); + // 优化代码 + List list = result.getList(); + // 获取答案 + Set collect = list.stream().map(DatasetQuestionRespVO::getId).collect(Collectors.toSet()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .in(DatasetAnswerDO::getQuestionId, collect); + List datasetAnswerDOS = datasetAnswerMapper.selectList(wrapper); + List respVOS = BeanUtils.toBean(datasetAnswerDOS, DatasetAnswerRespVO.class); + Map> collect1 = respVOS.stream().collect(Collectors.groupingBy(DatasetAnswerRespVO::getQuestionId)); + list.forEach(item -> { + item.setDatasetAnswerRespVO(collect1.get(item.getId())); }); } return result;