瀏覽代碼

4-13中午新需求

XuShengTao 6 年之前
父節點
當前提交
55f896d0f0

+ 2 - 0
src/main/java/com/seec/bok/back/repository/InteractiveCollectRepository.java

@@ -6,8 +6,10 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.repository.query.QueryByExampleExecutor;
 
+import java.util.Collection;
 import java.util.List;
 
 public interface InteractiveCollectRepository extends JpaRepository<InteractiveCollect, InteractiveMultiKeys>, JpaSpecificationExecutor<InteractiveCollect>,QueryByExampleExecutor<InteractiveCollect> {
     List<InteractiveCollect> findAllByUserId(String userId);
+    List<InteractiveCollect> findAllByUserIdAndQuestionIdIn(String userId, Collection<String> questionId);
 }

+ 3 - 0
src/main/java/com/seec/bok/back/repository/InteractiveRateRepository.java

@@ -1,5 +1,6 @@
 package com.seec.bok.back.repository;
 
+import com.seec.bok.back.entity.InteractiveCollect;
 import com.seec.bok.back.entity.InteractiveRate;
 import com.seec.bok.back.utils.InteractiveMultiKeys;
 import org.springframework.data.jpa.repository.JpaRepository;
@@ -10,4 +11,6 @@ import java.util.List;
 
 public interface InteractiveRateRepository extends JpaRepository<InteractiveRate, InteractiveMultiKeys>, JpaSpecificationExecutor<InteractiveRate>,QueryByExampleExecutor<InteractiveRate> {
     List<InteractiveRate> findAllByUserId(String userId);
+
+    List<InteractiveRate> findAllByUserIdAndQuestionIdIn(String userId, List<String> questionIdList);
 }

+ 16 - 3
src/main/java/com/seec/bok/service/InteractiveService.java

@@ -13,9 +13,7 @@ import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -76,4 +74,19 @@ public class InteractiveService {
         interactiveVO.setCollection(interactiveCollect.getCollection());
         return interactiveVO;
     }
+
+    public List<InteractiveVO> findInteractiveQuestionIn(String userId, List<String> questionIdList) {
+        final List<InteractiveCollect> interactiveCollectList = collectRepository.findAllByUserIdAndQuestionIdIn(userId, questionIdList);
+        final List<InteractiveRate> interactiveRateList = rateRepository.findAllByUserIdAndQuestionIdIn(userId, questionIdList);
+        Map<String,InteractiveVO> qid2InteractiveVOS =new HashMap<>();
+        for(String qid:questionIdList){
+            InteractiveVO interactiveVO=new InteractiveVO();
+            interactiveVO.setUserId(userId);
+            interactiveVO.setQuestionId(qid);
+            qid2InteractiveVOS.put(qid,interactiveVO );
+        }
+        interactiveCollectList.forEach(i->{qid2InteractiveVOS.get(i.getQuestionId()).setCollection(i.getCollection());});
+        interactiveRateList.forEach(i->{qid2InteractiveVOS.get(i.getQuestionId()).setRate(i.getRate());});
+        return new ArrayList<>(qid2InteractiveVOS.values());
+    }
 }

+ 7 - 0
src/main/java/com/seec/bok/web/controller/UserInteractiveController.java

@@ -58,4 +58,11 @@ public class UserInteractiveController {
                                                     @PathVariable String questionId) {
         return interactiveService.findInteractiveQuestion(userId,questionId);
     }
+    @GetMapping("/{userId}/questionInList")
+    @Operation(description = "获得某用户交互的题目")
+    public List<InteractiveVO> getUserInteractiveQuestionIn(@PathVariable String userId,
+                                                    @RequestParam(value = "questionId", required = false) @Parameter(description = "题目id")
+                                                            List<String> questionIdList) {
+        return interactiveService.findInteractiveQuestionIn(userId,questionIdList);
+    }
 }