|
@@ -25,6 +25,7 @@ import org.springframework.data.domain.PageRequest;
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
|
+import org.springframework.data.redis.core.RedisTemplate;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.util.Assert;
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
@@ -141,6 +142,9 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
@Autowired
|
|
@Autowired
|
|
private SubQuestionDtoAssembler subQuestionDtoAssembler;
|
|
private SubQuestionDtoAssembler subQuestionDtoAssembler;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedisTemplate redisTemplate;
|
|
|
|
+
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public ExtractConfig findConfig(ExtractConfig condition) {
|
|
public ExtractConfig findConfig(ExtractConfig condition) {
|
|
@@ -227,9 +231,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
logger.info("总共耗时:"+(System.currentTimeMillis() - beginTime)+"ms");
|
|
logger.info("总共耗时:"+(System.currentTimeMillis() - beginTime)+"ms");
|
|
}else{
|
|
}else{
|
|
//乱序重新生成试卷
|
|
//乱序重新生成试卷
|
|
- Paper newPaper = this.recombinationPaper(basePaper,PaperType.STUDENT_EXAM,
|
|
|
|
- upSetQuestionOrder,
|
|
|
|
- upSetOptionOrder);
|
|
|
|
|
|
+ Paper newPaper = this.recombinationPaper(basePaper, PaperType.STUDENT_EXAM, upSetQuestionOrder, upSetOptionOrder);
|
|
logger.info("根据新试卷 paperId:"+newPaper.getId()+"组装PaperDto后返回");
|
|
logger.info("根据新试卷 paperId:"+newPaper.getId()+"组装PaperDto后返回");
|
|
|
|
|
|
long genPaperFinishTime = System.currentTimeMillis();
|
|
long genPaperFinishTime = System.currentTimeMillis();
|
|
@@ -510,8 +512,14 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
private PaperDto getPaperDtoByPaper(Paper paper){
|
|
private PaperDto getPaperDtoByPaper(Paper paper){
|
|
- PaperDto paperDto = paperDtoAssembler.toDto(paper);
|
|
|
|
|
|
|
|
|
|
+ //优先从redis中获取缓存dto
|
|
|
|
+ Object cacheDto = redisTemplate.opsForValue().get(paper.getId());
|
|
|
|
+ if(cacheDto != null && cacheDto.getClass().equals(PaperDto.class)){
|
|
|
|
+ return (PaperDto)cacheDto;
|
|
|
|
+ }
|
|
|
|
+ //没有则重新组装
|
|
|
|
+ PaperDto paperDto = paperDtoAssembler.toDto(paper);
|
|
//将小题全部取出来,只取一次
|
|
//将小题全部取出来,只取一次
|
|
List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
List<PaperDetailUnit> allPaperDetailUnits = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
|
|
//获取大题
|
|
//获取大题
|
|
@@ -567,6 +575,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
|
|
paperDetailDtos.get(i).setPaperDetailUnits(paperDetailUnitDtos);
|
|
paperDetailDtos.get(i).setPaperDetailUnits(paperDetailUnitDtos);
|
|
paperDetailDtos.get(i).setCnNum(CommonUtils.toCHNum(paperDetailDtos.get(i).getNumber()));
|
|
paperDetailDtos.get(i).setCnNum(CommonUtils.toCHNum(paperDetailDtos.get(i).getNumber()));
|
|
}
|
|
}
|
|
|
|
+ //将重新组装的dto放进缓存
|
|
|
|
+ redisTemplate.opsForValue().set(paperDto.getId(),paperDto);
|
|
return paperDto;
|
|
return paperDto;
|
|
}
|
|
}
|
|
|
|
|