UserInteractiveController.java 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.seec.bok.web.controller;
  2. import com.seec.bok.service.InteractiveService;
  3. import com.seec.bok.web.dto.CollectDTO;
  4. import com.seec.bok.web.dto.RateDTO;
  5. import com.seec.bok.web.util.FakeQuestionData;
  6. import com.seec.bok.web.vo.QuestionVO;
  7. import io.swagger.v3.oas.annotations.Operation;
  8. import io.swagger.v3.oas.annotations.Parameter;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.web.bind.annotation.*;
  11. import java.util.List;
  12. /** @author Kunduin */
  13. @RestController
  14. @RequestMapping("/api/user")
  15. public class UserInteractiveController {
  16. @Autowired
  17. private InteractiveService interactiveService;
  18. @PostMapping("/{userId}/question/{questionId}/rate")
  19. @Operation(description = "记录用户对题目的评分信息")
  20. public Object userRateQuestion(
  21. @PathVariable String userId,
  22. @PathVariable String questionId,
  23. @RequestBody RateDTO rateDTO) {
  24. return interactiveService.addRate(userId,questionId,rateDTO.getRate());
  25. }
  26. @PostMapping("/{userId}/question/{questionId}/collection")
  27. @Operation(description = "记录用户对题目的收藏情况")
  28. public Object userCollectQuestion(
  29. @PathVariable String userId,
  30. @PathVariable String questionId,
  31. @RequestBody CollectDTO collectDTO) {
  32. return interactiveService.addCollect(userId,questionId,collectDTO.getCollect());
  33. }
  34. @GetMapping("/{userId}/question")
  35. @Operation(description = "获得某用户交互的题目列表")
  36. public List<QuestionVO> getUserInteractiveQuestions(
  37. @PathVariable String userId,
  38. @Parameter(description = "是否是用户收藏的题目")
  39. @RequestParam(value = "collection", required = false)
  40. Boolean collection,
  41. @Parameter(description = "是否是用户打分的题目") @RequestParam(value = "rate", required = false)
  42. Boolean rate) {
  43. return interactiveService.findInteractiveQuestions(userId,collection,rate);
  44. }
  45. }