Răsfoiți Sursa

修改Paper get list接口

feick 5 ani în urmă
părinte
comite
04a308436a

+ 4 - 2
src/main/java/edu/math/diagnosis/config/Constants.java

@@ -7,8 +7,10 @@ import java.util.HashMap;
 import java.util.Map;
 
 public class Constants {
-    public static final String ALEADY = "aleady";
-    public static final String NOTALEADY = "notaleady";
+    public static final String ALREADY = "already";
+    public static final String NOTALREADY = "notalready";
+    public static final int NOTREADY = 0;
+    public static final int READY = 1;
 
     public static final String TOPIC_SECTION = "【模块】";
     public static final String TOPIC_QUESTION = "【题干】";

+ 5 - 4
src/main/java/edu/math/diagnosis/controller/PaperController.java

@@ -4,7 +4,6 @@ import edu.math.diagnosis.entity.Paper;
 import edu.math.diagnosis.file.FileService;
 import edu.math.diagnosis.model.PaperVo;
 import edu.math.diagnosis.model.Result;
-import edu.math.diagnosis.file.NginxFileService;
 import edu.math.diagnosis.service.PaperService;
 import edu.math.diagnosis.util.CommonUtil;
 import io.swagger.annotations.Api;
@@ -42,11 +41,13 @@ public class PaperController {
     //   @PreAuthorize("hasRole('ROLE_ADMIN')")
     @ApiOperation(value = "查询所有试卷")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "status", value = "已完成:aleady  未完成:notaleady;  不填则代表全部", paramType = "query"),
+            @ApiImplicitParam(name = "subjectId", value = "科目Id", paramType = "query"),
+            @ApiImplicitParam(name = "status", value = "0 不可用 1可用 不填则代表全部", paramType = "query")
     })
     @RequestMapping(value = "/listPapers", method = RequestMethod.GET)
-    public List<Paper> listPapers(String status) {
-        return paperService.listPapers(status);
+    public List<Paper> listPapers(@RequestParam(required = false) Long subjectId,
+                                  @RequestParam(required = false) Integer status) {
+        return paperService.listPapers(subjectId, status);
     }
 
     @ApiOperation(value = "查询单个试卷  ")

+ 5 - 0
src/main/java/edu/math/diagnosis/dao/PaperRepo.java

@@ -4,6 +4,8 @@ import edu.math.diagnosis.entity.Paper;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 /**
  * @AUTHOR: DaiFengWen
  * @DATE: Create in 2018/7/3 10:12
@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface PaperRepo extends JpaRepository<Paper, Long> {
+
+    List<Paper> findBySubjectId(Long subjectId);
+
 }

+ 13 - 20
src/main/java/edu/math/diagnosis/service/PaperService.java

@@ -65,32 +65,25 @@ public class PaperService {
 
     private static final Logger logger = LoggerFactory.getLogger(PaperService.class);
 
-    public List<Paper> listPapers(String status) {
+    public List<Paper> listPapers(Long subjectId, Integer status) {
         Sort sort = new Sort(Sort.Direction.DESC, "updatetime");
         List<Paper> papers = paperRepo.findAll(sort);
-        if (!Constants.NOTALEADY.equals(status) && !Constants.ALEADY.equals(status)) {
-            return papers;
+        if (subjectId != null) {
+            papers = papers.stream().filter(p -> p.getSubjectId() == subjectId.longValue())
+                    .collect(Collectors.toList());
         }
+        if (status != null) {
+            papers = papers.stream().filter(p -> p.getStatus() == status.intValue())
+                    .collect(Collectors.toList());
+        }
+        logger.info("papers size is {},subjectId is {},status is {}", papers.size(), subjectId, status);
 
-        logger.info("papers size is {},status is {}", papers.size(), status);
-
-        Iterator<Paper> iterator = papers.iterator();
-        while (iterator.hasNext()) {
-            Paper paper = iterator.next();
+        for (Paper paper : papers) {
             Integer questionNum = paper.getQuestionNum();
-            List<Question> questions = questionService.listQuestionByPaper(paper);
+//            List<Question> questions = questionService.listQuestionByPaper(paper);
             List<Section> sections = sectionService.findByPid(paper.getId());
             paper.setSections(sections);
-            logger.info("paper id is {},questionNum is {},questions size is {},sections size is {}", paper.getId(), questionNum, questions.size(), sections.size());
-            if (Constants.ALEADY.equals(status)) {
-                if (questions.size() < questionNum) {
-                    iterator.remove();
-                }
-            } else if (Constants.NOTALEADY.equals(status)) {
-                if (questions.size() >= questionNum) {
-                    iterator.remove();
-                }
-            }
+            logger.info("paper id is {},questionNum is {},sections size is {}", paper.getId(), questionNum, sections.size());
         }
         logger.info("after filter,papers size is {}", papers.size());
         return papers;
@@ -98,7 +91,7 @@ public class PaperService {
 
     public Paper getOnePaper(Long id) {
         Paper paper = paperRepo.getOne(id);
-        if (paper == null || paper.getStatus() == 0) {
+        if (paper == null || paper.getStatus() == Constants.NOTREADY) {
             return null;
         }
         List<Question> questions = questionRepo.findByPidOrderBySectionAscNumberAsc(id);

+ 2 - 2
src/main/resources/application-dev.properties

@@ -2,9 +2,9 @@ server.port=8085
 serverAddress=119.23.22.31
 
 uploadPattern=/upload/**
-baseLocation=d:/diagnosis
+#baseLocation=d:/diagnosis
 #baseLocation=/Users/feick/IdeaProjects/yaoxiang/diagnosis
-#baseLocation=/d:/diagnosis
+baseLocation=/d:/diagnosis
 uploadLocation=${baseLocation}/upload/
 spring.servlet.multipart.location=${baseLocation}/uploadTemp/
 spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${uploadLocation}