package com.es.demo.recommend; import com.es.demo.back.ChoiceQuestion; import com.es.demo.back.TQRepository; import com.es.demo.recommend.dto.GetRecommend; import com.es.demo.recommend.dto.GetRecommendAnswer; import com.es.demo.recommend.vo.AnswerTQ; import com.es.demo.recommend.vo.NoAnswerTQ; import com.es.demo.recommend.vo.Res; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; import org.springframework.data.elasticsearch.core.ElasticsearchOperations; import org.springframework.web.bind.annotation.*; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; /** * @ClassName recomRestfulController * @PackageName com.es.demo * @Author sheen * @Date 2020/1/2 * @Version 1.0 * @Description //TODO **/ @RestController @RequestMapping("/api/question") public class RecomRestfulController { private final TQRepository tqRepository; @Autowired public RecomRestfulController(@Qualifier("TQRepositoryImp") TQRepository tqRepository) { this.tqRepository = tqRepository; } @PostMapping("/recommend") public Res> getRecommend( @RequestBody GetRecommend body) { final Page all = tqRepository.findAll(PageRequest.of(0, body.questionNum.intValue())); return new Res>( all.getContent().stream() .map(NoAnswerTQ::new) .collect(Collectors.toList())); } @PostMapping("/answer") public Res> getRecommendWithAnswer( @RequestBody GetRecommendAnswer body) { final Page all = tqRepository.findByIdIn(body.getQuestionId(),PageRequest.of(0, body.questionId.size())); return new Res>( all.getContent().stream() .map(AnswerTQ::new) .collect(Collectors.toList())); } }