|
@@ -526,18 +526,39 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
|
// if(cacheDto != null && cacheDto.getClass().equals(PaperDto.class)){
|
|
|
// return (PaperDto)cacheDto;
|
|
|
// }
|
|
|
+ long beginTime = System.currentTimeMillis();
|
|
|
//没有则重新组装
|
|
|
PaperDto paperDto = paperDtoAssembler.toDto(paper);
|
|
|
+ long paperDtoEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("单独组装paperDto耗时:"+(paperDtoEndTime - beginTime)+"ms");
|
|
|
+
|
|
|
//将小题全部取出来,只取一次
|
|
|
- List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
|
+ List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaper(paper);
|
|
|
+ long pduEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("数据库取小题耗时:"+(pduEndTime - paperDtoEndTime)+"ms");
|
|
|
+ Collections.sort(allPaperDetailUnits);
|
|
|
+ long pduSortEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("排序小题耗时:"+(pduSortEndTime - pduEndTime)+"ms");
|
|
|
+
|
|
|
//获取大题
|
|
|
- List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
|
|
|
+ List<PaperDetail> paperDetails = paperDetailRepo.findByPaper(paper);
|
|
|
+ long pdEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("数据库取大题耗时:"+(pdEndTime - pduSortEndTime)+"ms");
|
|
|
+ Collections.sort(paperDetails);
|
|
|
+ long pdSortEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("排序大题耗时:"+(pdSortEndTime - pdEndTime)+"ms");
|
|
|
+
|
|
|
//抽取大题Id对应的小题
|
|
|
Map<String,List<PaperDetailUnit>> pduMap = allPaperDetailUnits.stream()
|
|
|
.collect(Collectors.groupingBy(PaperDetailUnit::getDetailId));
|
|
|
+ long pduMapEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("获取大题与小题对应关系耗时:"+(pduMapEndTime - pdSortEndTime)+"ms");
|
|
|
+
|
|
|
// 获取大题Dto
|
|
|
List<PaperDetailDto> paperDetailDtos = paperDetailDtoAssembler.toDtoList(paperDetails);
|
|
|
paperDto.setPaperDetails(paperDetailDtos);
|
|
|
+ long paperDetailDtoEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("单独组装paperDetailDto耗时:"+(paperDetailDtoEndTime - pduMapEndTime)+"ms");
|
|
|
|
|
|
// 封装小题
|
|
|
for (int i = 0; i < paperDetailDtos.size(); i++) {
|
|
@@ -583,6 +604,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
|
paperDetailDtos.get(i).setPaperDetailUnits(paperDetailUnitDtos);
|
|
|
paperDetailDtos.get(i).setCnNum(CommonUtils.toCHNum(paperDetailDtos.get(i).getNumber()));
|
|
|
}
|
|
|
+ long paperDetailUnitDtoEndTime = System.currentTimeMillis();
|
|
|
+ logger.info("单独组装paperDetailUnitDto耗时:"+(paperDetailUnitDtoEndTime - paperDetailDtoEndTime)+"ms");
|
|
|
//将重新组装的dto放进缓存
|
|
|
// redisTemplate.opsForValue().set(paperDto.getId(),paperDto);
|
|
|
return paperDto;
|