Преглед изворни кода

增加获取试卷错题结果列表接口

4228306 пре 5 година
родитељ
комит
4984a4002d

+ 9 - 2
src/main/java/edu/math/diagnosis/controller/PaperResultController.java

@@ -3,9 +3,11 @@ package edu.math.diagnosis.controller;
 import edu.math.diagnosis.dao.PaperCommitRepo;
 import edu.math.diagnosis.entity.Paper;
 import edu.math.diagnosis.entity.PaperCommit;
+import edu.math.diagnosis.entity.PaperResult;
 import edu.math.diagnosis.model.Result;
 import edu.math.diagnosis.service.PaperResultService;
 import edu.math.diagnosis.service.PaperService;
+import edu.math.diagnosis.util.ObjectUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
+import java.util.List;
 
 @Api(tags = "试卷提交后结果生成")
 @RestController
@@ -52,8 +55,12 @@ public class PaperResultController {
     @GetMapping("/listSimpleResult")
     @ApiOperation("获取简单结果")
     public Result listSimpleResult(Long pid, Long uid) {
-
-        return Result.ok();
+        List<PaperResult> result = paperResultService.listSimpleResult(pid, uid);
+//        result.forEach(r -> {
+//            r.setWrongAnswerContrastVo(ObjectUtil.json2List(r.getWrongAnswerContrast()));
+//            r.setWrongAnswerContrast(null);
+//        });
+        return Result.ok(result);
     }
 
 }

+ 7 - 0
src/main/java/edu/math/diagnosis/dao/PaperResultRepo.java

@@ -4,6 +4,8 @@ import edu.math.diagnosis.entity.PaperResult;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.stereotype.Repository;
 
+import java.util.List;
+
 
 /**
  * @AUTHOR: DaiFengWen
@@ -19,4 +21,9 @@ public interface PaperResultRepo extends JpaRepository<PaperResult, Long> {
 
     boolean existsByPidAndUid(Long pid, Long uid);
 
+    List<PaperResult> findByPidOrderByCreatetimeDesc(Long pid);
+
+    List<PaperResult> findByUidOrderByCreatetimeDesc(Long uid);
+
+
 }

+ 13 - 0
src/main/java/edu/math/diagnosis/entity/PaperResult.java

@@ -1,12 +1,14 @@
 package edu.math.diagnosis.entity;
 
 import edu.math.diagnosis.model.AbilityEvaluateVo;
+import edu.math.diagnosis.model.AnswerContrast;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import org.hibernate.annotations.CreationTimestamp;
 
 import javax.persistence.*;
 import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -199,6 +201,9 @@ public class PaperResult {
     @Lob
     private String wrongAnswerContrast;
 
+    @Transient
+    private List<AnswerContrast> wrongAnswerContrastVo;
+
     public PaperResult() {
     }
 
@@ -393,4 +398,12 @@ public class PaperResult {
     public void setWrongAnswerContrast(String wrongAnswerContrast) {
         this.wrongAnswerContrast = wrongAnswerContrast;
     }
+
+    public List<AnswerContrast> getWrongAnswerContrastVo() {
+        return wrongAnswerContrastVo;
+    }
+
+    public void setWrongAnswerContrastVo(List<AnswerContrast> wrongAnswerContrastVo) {
+        this.wrongAnswerContrastVo = wrongAnswerContrastVo;
+    }
 }

+ 17 - 0
src/main/java/edu/math/diagnosis/service/PaperResultService.java

@@ -11,6 +11,7 @@ import edu.math.diagnosis.util.ObjectUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -657,4 +658,20 @@ public class PaperResultService {
         return ObjectUtil.getGson().fromJson(json, new TypeToken<List<Answer>>() {
         }.getType());
     }
+
+    public List<PaperResult> listSimpleResult(Long pid, Long uid) {
+        Sort sort = new Sort(Sort.Direction.DESC, "createtime");
+        if (pid == null && uid == null) {
+            return paperResultRepo.findAll(sort);
+        }
+        if (pid == null) {
+            return paperResultRepo.findByUidOrderByCreatetimeDesc(uid);
+        }
+        if (uid != null) {
+            return new ArrayList<PaperResult>() {{
+                add(paperResultRepo.findByPidAndUid(pid, uid));
+            }};
+        }
+        return paperResultRepo.findByPidOrderByCreatetimeDesc(pid);
+    }
 }