RecomRestfulController.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.es.demo.recommend;
  2. import com.es.demo.back.ChoiceQuestion;
  3. import com.es.demo.back.TQRepository;
  4. import com.es.demo.recommend.dto.GetRecommend;
  5. import com.es.demo.recommend.dto.GetRecommendAnswer;
  6. import com.es.demo.recommend.vo.AnswerTQ;
  7. import com.es.demo.recommend.vo.NoAnswerTQ;
  8. import com.es.demo.recommend.vo.Res;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.beans.factory.annotation.Qualifier;
  11. import org.springframework.data.domain.Page;
  12. import org.springframework.data.domain.PageRequest;
  13. import org.springframework.data.domain.Sort;
  14. import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
  15. import org.springframework.web.bind.annotation.*;
  16. import java.util.Collections;
  17. import java.util.List;
  18. import java.util.stream.Collectors;
  19. /**
  20. * @ClassName recomRestfulController
  21. * @PackageName com.es.demo
  22. * @Author sheen
  23. * @Date 2020/1/2
  24. * @Version 1.0
  25. * @Description //TODO
  26. **/
  27. @RestController
  28. @RequestMapping("/api/question")
  29. public class RecomRestfulController {
  30. private final TQRepository tqRepository;
  31. @Autowired
  32. public RecomRestfulController(@Qualifier("TQRepositoryImp") TQRepository tqRepository) {
  33. this.tqRepository = tqRepository;
  34. }
  35. @PostMapping("/recommend")
  36. public Res<List<NoAnswerTQ>> getRecommend(
  37. @RequestBody GetRecommend body) {
  38. final Page<ChoiceQuestion> all = tqRepository.findAll(PageRequest.of(0, body.questionNum.intValue()));
  39. return new Res<List<NoAnswerTQ>>(
  40. all.getContent().stream()
  41. .map(NoAnswerTQ::new)
  42. .collect(Collectors.toList()));
  43. }
  44. @PostMapping("/answer")
  45. public Res<List<AnswerTQ>> getRecommendWithAnswer(
  46. @RequestBody GetRecommendAnswer body) {
  47. final Page<ChoiceQuestion> all = tqRepository.findByIdIn(body.getQuestionId(),PageRequest.of(0, body.questionId.size()));
  48. return new Res<List<AnswerTQ>>(
  49. all.getContent().stream()
  50. .map(AnswerTQ::new)
  51. .collect(Collectors.toList()));
  52. }
  53. }