Pārlūkot izejas kodu

修改提交后返回总分

4228306 6 gadi atpakaļ
vecāks
revīzija
55485dfc23

+ 35 - 0
src/main/java/edu/math/diagnosis/controller/PaperResultController.java

@@ -0,0 +1,35 @@
+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.model.Result;
+import edu.math.diagnosis.service.PaperResultService;
+import edu.math.diagnosis.service.PaperService;
+import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+@Api(tags = "试卷提交后结果生成")
+@RestController
+@RequestMapping("paperResult")
+public class PaperResultController {
+
+    @Resource
+    private PaperCommitRepo paperCommitRepo;
+    @Resource
+    private PaperResultService paperResultService;
+    @Resource
+    private PaperService paperService;
+
+    @GetMapping("/rebuild")
+    public Result rebuild(Long commitId){
+        PaperCommit commit = paperCommitRepo.getOne(commitId);
+        Paper paper = paperService.getOnePaper(commit.getPid());
+        return paperResultService.parseResult(commit,paper);
+    }
+}

+ 41 - 40
src/main/java/edu/math/diagnosis/controller/ReportController.java

@@ -1,62 +1,63 @@
 package edu.math.diagnosis.controller;
 
-import edu.math.diagnosis.model.GeneralInfo;
-import edu.math.diagnosis.model.Report;
-import edu.math.diagnosis.word.ExcelUtils;
+import edu.math.diagnosis.entity.Paper;
+import edu.math.diagnosis.entity.PaperResult;
+import edu.math.diagnosis.entity.UserInfo;
+import edu.math.diagnosis.model.Constants;
+import edu.math.diagnosis.model.Result;
+import edu.math.diagnosis.service.PaperResultService;
+import edu.math.diagnosis.service.PaperService;
+import edu.math.diagnosis.service.UserService;
+import edu.math.diagnosis.util.CommonUtil;
 import io.swagger.annotations.Api;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-@Api(tags = "获取报告信息 马上废弃")
+@Api(tags = "报告")
 @RestController
-@RequestMapping("/getTempPapers")
-//@PreAuthorize("hasRole('ROLE_ADMIN')")
+@RequestMapping("/report")
 public class ReportController {
 
     @Resource
-    private ExcelUtils excelUtils;
+    private UserService userService;
+    @Resource
+    private PaperService paperService;
+    @Resource
+    private PaperResultService paperResultService;
+
+    @GetMapping("generate")
+    public Result generateAll(){
+        return Result.fail("not implements");
+    }
 
-    @RequestMapping(value = "/getGeneralInfo", method = RequestMethod.GET)
-    public GeneralInfo getCorrectInfo() {
-        GeneralInfo info = new GeneralInfo();
-        info.setCorrectOptions(excelUtils.getCorrectAns());
-        info.setRates(excelUtils.getCorrectRate());
-        info.setAbilityAveScore(excelUtils.getAbilityAveScore());
-        info.setCurveGraph(excelUtils.getCurveGraph());
+    @GetMapping("generateKnowledge")
+    public Result generateKnowledge(Long uid,Long pid){
 
-        return info;
+        return Result.fail("not implements");
     }
 
-    @RequestMapping(value = "/getReportData", method = RequestMethod.GET)
-    public List<Report> getPaperData() {
-        List<Report> reports = new ArrayList<>(81);
-        List<String> names = excelUtils.getNames();
-        Map<String, List<String>> optionMap = excelUtils.getOptions();
-        Map<String, List<Integer>> optionRwMap = excelUtils.getOptionRw();
-        Map<String, List<String>> optionCommentMap = excelUtils.getOptionCommentMap(optionRwMap);
-        Map<String, List<Integer>> abilityLevelMap = excelUtils.getAbilityLevel();
-        Map<String, List<Double>> abilityScoreMap = excelUtils.getAbilityScore();
-        Map<String, List<String>> abilityCommentMap = excelUtils.getAbilityWords(abilityLevelMap, abilityScoreMap);
-        Map<String, Integer> scoreMap = excelUtils.getTotalScore();
-        for (String name : names) {
-            Report report = new Report();
-            report.setName(name);
-            report.setOptions(optionMap.get(name));
-            report.setAbilityComments(abilityCommentMap.get(name));
-            report.setAbilityLevel(abilityLevelMap.get(name));
-            report.setRw(optionRwMap.get(name));
-            report.setComments(optionCommentMap.get(name));
-            report.setAbilityScore(abilityScoreMap.get(name));
-            report.setTotalScore(scoreMap.get(name));
-            reports.add(report);
+    @GetMapping("userInfo")
+    public Result userInfo(Long uid,Long pid){
+        UserInfo info = userService.getSimpleUser(uid);
+        Paper paper = paperService.getOnePaper(pid);
+        List<PaperResult> paperResults = paperResultService.findByUidAndPid(String.valueOf(pid),String.valueOf(uid));
+        if(CommonUtil.isEmpty(paperResults)){
+            return Result.fail("未找到提交的试卷");
         }
+        PaperResult paperResult = paperResults.get(0);
+        Map<String,Object> result = new HashMap<>();
+        result.put("name",info.getName());
+        result.put("grade",paper.getGrade());
+        result.put("subject", Constants.SUBJECT_MAS);
+        result.put("diagnosisTime",paperResult.getCreatetime());
+        result.put("code",paperResult.getCode());
+        return Result.ok(result);
 
-        return reports;
     }
 }

+ 5 - 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
  * @DATE: Create in 2018/7/3 10:13
@@ -11,4 +13,7 @@ import org.springframework.stereotype.Repository;
  */
 @Repository
 public interface PaperResultRepo extends JpaRepository<PaperResult, Long> {
+
+    List<PaperResult> findByPidAndUid(String pid,String uid);
+
 }

+ 10 - 0
src/main/java/edu/math/diagnosis/entity/PaperCommit.java

@@ -26,6 +26,8 @@ public class PaperCommit {
     @Column(nullable = false)
     private Long uid;
 
+    private String code;
+
     @Column(nullable = false)
     @ApiModelProperty("用户姓名")
     private String name;
@@ -149,4 +151,12 @@ public class PaperCommit {
     public void setEndTime(Date endTime) {
         this.endTime = endTime;
     }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
 }

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

@@ -24,6 +24,9 @@ public class PaperResult {
     private String uid;
     @Column(nullable = false)
     private Long pid;
+
+    private String code;
+
     @CreationTimestamp
     @Column(nullable = false)
     private Date createtime;
@@ -179,4 +182,12 @@ public class PaperResult {
     public void setCollectQuestion(String collectQuestion) {
         this.collectQuestion = collectQuestion;
     }
+
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
 }

+ 7 - 2
src/main/java/edu/math/diagnosis/service/CommitService.java

@@ -123,8 +123,13 @@ public class CommitService {
         paperCommit.setJsonAns(jsonAns);
         paperCommitRepo.saveAndFlush(paperCommit);
         logger.info("uid={},name={},pid={} commit paper success", paperCommit.getUid(), paperCommit.getName(), paperCommit.getPid());
-
-        return paperResultService.parseResult(paperCommit, paper);
+        try {
+            return paperResultService.parseResult(paperCommit, paper);
+        }catch (Exception e){
+            logger.error("考试结果解析失败");
+            e.printStackTrace();
+        }
+        return Result.fail("考试结果解析失败");
     }
 
     public List<PaperCommit> listPaperCommit(Long pid, String name, Long startTime, Long endTime) {

+ 9 - 2
src/main/java/edu/math/diagnosis/service/PaperResultService.java

@@ -71,11 +71,18 @@ public class PaperResultService {
         result.setScore((double) count);
         paperResultRepo.save(result);
         logger.info("答案分析保存成功");
-        return Result.ok();
+        return Result.ok(result);
     }
 
-
     public PaperResult save(PaperResult result) {
         return paperResultRepo.save(result);
     }
+
+    public PaperResult get(Long resultId){
+        return paperResultRepo.getOne(resultId);
+    }
+
+    public List<PaperResult> findByUidAndPid(String pid,String uid){
+        return paperResultRepo.findByPidAndUid(pid,uid);
+    }
 }