Browse Source

统一修改subjectId类型为Long

4228306 6 năm trước cách đây
mục cha
commit
b42b4480f0

+ 30 - 29
src/main/java/edu/math/diagnosis/controller/CommitController.java

@@ -3,7 +3,7 @@ package edu.math.diagnosis.controller;
 import edu.math.diagnosis.cache.DbCacheFactory;
 import edu.math.diagnosis.cache.instance.OptionCache;
 import edu.math.diagnosis.cache.instance.QuestionCache;
-import edu.math.diagnosis.dao.CommitRepo;
+//import edu.math.diagnosis.dao.CommitRepo;
 import edu.math.diagnosis.dao.UserRepo;
 import edu.math.diagnosis.entity.*;
 import edu.math.diagnosis.model.AuthUser;
@@ -30,39 +30,39 @@ import java.util.Map;
 @RestController
 @RequestMapping("/commit")
 public class CommitController {
-    @Resource
-    CommitRepo commitRepo;
+//    @Resource
+//    CommitRepo commitRepo;
     @Resource
     UserRepo userRepo;
 
     private final OptionCache OptionCache = DbCacheFactory.INSTANCE.getCache(OptionCache.class);
     private final QuestionCache QuestionCache = DbCacheFactory.INSTANCE.getCache(QuestionCache.class);
 
-    @RequestMapping(value = "/paper", method = RequestMethod.POST)
-    public ResponseMessage commitPaper(@RequestBody Paper paper) {
-        AuthUser authUser = SecurityUtil.getCurrentUser();
-        Commit commit = new Commit();
-        paper.getQuestions().forEach((question -> {
-            question.setOptions(null);
-            question.setUpdatetime(null);
-            question.setCreatetime(null);
-            question.setContent(null);
-            question.setWrongDesc(null);
-        }));
-        paper.setCreatetime(null);
-        paper.setUpdatetime(null);
-        String data = ObjectUtil.object2Json(paper);
-        commit.setData(data);
-        long uid = authUser.getUser().getId();
-        long pid = paper.getId();
-        commit.setUid(uid);
-        commit.setPid(pid);
-        double point = calculatePoint(paper);
-        commit.setScore(point);
-        commit.setCreatetime(new Date());
-        commitRepo.saveAndFlush(commit);
-        return ResponseMessage.getInstance(200, NumberUtil.formatDouble(point));
-    }
+//    @RequestMapping(value = "/paper", method = RequestMethod.POST)
+//    public ResponseMessage commitPaper(@RequestBody Paper paper) {
+//        AuthUser authUser = SecurityUtil.getCurrentUser();
+//        Commit commit = new Commit();
+//        paper.getQuestions().forEach((question -> {
+//            question.setOptions(null);
+//            question.setUpdatetime(null);
+//            question.setCreatetime(null);
+//            question.setContent(null);
+//            question.setWrongDesc(null);
+//        }));
+//        paper.setCreatetime(null);
+//        paper.setUpdatetime(null);
+//        String data = ObjectUtil.object2Json(paper);
+//        commit.setData(data);
+//        long uid = authUser.getUser().getId();
+//        long pid = paper.getId();
+//        commit.setUid(uid);
+//        commit.setPid(pid);
+//        double point = calculatePoint(paper);
+//        commit.setScore(point);
+//        commit.setCreatetime(new Date());
+//        commitRepo.saveAndFlush(commit);
+//        return ResponseMessage.getInstance(200, NumberUtil.formatDouble(point));
+//    }
 
     private double calculatePoint(Paper paper) {
         double result = 0.0;
@@ -106,7 +106,8 @@ public class CommitController {
     public boolean checkPaper(@RequestParam long pid) {
         AuthUser authUser = SecurityUtil.getCurrentUser();
         long uid = authUser.getUser().getId();
-        int cnt = commitRepo.countByUidAndPid(uid, pid);
+//        int cnt = commitRepo.countByUidAndPid(uid, pid);
+        int cnt=0;
         return cnt < 1;
     }
 

+ 1 - 1
src/main/java/edu/math/diagnosis/controller/ExcelController.java

@@ -25,7 +25,7 @@ public class ExcelController {
     }
 
     @PostMapping("/uploadKnowledge")
-    public Result uploadKnowledge(@RequestParam(defaultValue = "2") String subjectId,
+    public Result uploadKnowledge(@RequestParam(defaultValue = "2") Long subjectId,
                                   @RequestParam(defaultValue = "6Y") String grade,
                                   @RequestBody MultipartFile file) throws Exception {
         byte[] data = file.getBytes();

+ 7 - 1
src/main/java/edu/math/diagnosis/controller/ReportController.java

@@ -1,6 +1,7 @@
 package edu.math.diagnosis.controller;
 
 import edu.math.diagnosis.entity.Paper;
+import edu.math.diagnosis.entity.PaperCommit;
 import edu.math.diagnosis.entity.PaperResult;
 import edu.math.diagnosis.entity.UserInfo;
 import edu.math.diagnosis.model.Result;
@@ -78,7 +79,12 @@ public class ReportController {
     @ApiOperation("诊断结果")
     public Result<PaperResult> globalResult(Long paperResultId) {
         Map<String, Object> result = new HashMap<>();
-        return new Result<>(true,"",new PaperResult());
+        PaperResult paperResult = paperResultService.get(paperResultId);
+        if(paperResult == null){
+            return new Result<>(false,"");
+        }
+        paperResultService.globalResult(paperResult);
+        return new Result<>(true,"",paperResult);
     }
 
 }

+ 7 - 12
src/main/java/edu/math/diagnosis/controller/TestController.java

@@ -1,9 +1,7 @@
 package edu.math.diagnosis.controller;
 
-import edu.math.diagnosis.dao.CommitRepo;
 import edu.math.diagnosis.dao.OptionRepo;
 import edu.math.diagnosis.dao.QuestionRepo;
-import edu.math.diagnosis.entity.Commit;
 import edu.math.diagnosis.entity.Paper;
 import edu.math.diagnosis.entity.Question;
 import edu.math.diagnosis.model.AuthUser;
@@ -35,9 +33,6 @@ public class TestController {
     @Resource
     private QuestionRepo questionRepo;
 
-    @Resource
-    private CommitRepo commitRepo;
-
     @Resource
     private CommitController commitController;
 
@@ -69,13 +64,13 @@ public class TestController {
     @GetMapping("/temp")
     public List<PaperReport> temp() {
         List<PaperReport> result = new ArrayList<>();
-        List<Commit> commitList = commitRepo.findAll();
-        for (Commit commit : commitList) {
-            Paper paper = ObjectUtil.json2Object(commit.getData(), Paper.class);
-            PaperReport paperReport = commitController.generateReport(paper, commit.getUid());
-            result.add(paperReport);
-            //		System.out.println(ObjectUtil.object2Json(paperReport));
-        }
+//        List<Commit> commitList = commitRepo.findAll();
+//        for (Commit commit : commitList) {
+//            Paper paper = ObjectUtil.json2Object(commit.getData(), Paper.class);
+//            PaperReport paperReport = commitController.generateReport(paper, commit.getUid());
+//            result.add(paperReport);
+//            //		System.out.println(ObjectUtil.object2Json(paperReport));
+//        }
         return result;
     }
 

+ 4 - 4
src/main/java/edu/math/diagnosis/dao/CommitRepo.java

@@ -1,8 +1,8 @@
 package edu.math.diagnosis.dao;
 
-import edu.math.diagnosis.entity.Commit;
+//import edu.math.diagnosis.entity.Commit;
 import org.springframework.data.jpa.repository.JpaRepository;
 
-public interface CommitRepo extends JpaRepository<Commit, Long> {
-    int countByUidAndPid(long uid, long pid);
-}
+//public interface CommitRepo extends JpaRepository<Commit, Long> {
+//    int countByUidAndPid(long uid, long pid);
+//}

+ 2 - 0
src/main/java/edu/math/diagnosis/dao/PaperCommitRepo.java

@@ -20,5 +20,7 @@ public interface PaperCommitRepo extends JpaRepository<PaperCommit, Long> {
 
     boolean existsByPidAndUid(Long pid, Long uid);
 
+    PaperCommit findByPidAndUid(Long pid,Long uid);
+
     boolean existsByCode(String code);
 }

+ 1 - 1
src/main/java/edu/math/diagnosis/dao/SubjectAbilityRepo.java

@@ -6,5 +6,5 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import java.util.List;
 
 public interface SubjectAbilityRepo extends JpaRepository<SubjectAbility, Long> {
-    List<SubjectAbility> findAllBySubjectId(String subjectId);
+    List<SubjectAbility> findAllBySubjectId(Long subjectId);
 }

+ 6 - 0
src/main/java/edu/math/diagnosis/dao/SubjectKnowledgeRepo.java

@@ -3,5 +3,11 @@ package edu.math.diagnosis.dao;
 import edu.math.diagnosis.entity.SubjectKnowledge;
 import org.springframework.data.jpa.repository.JpaRepository;
 
+import java.util.List;
+
 public interface SubjectKnowledgeRepo extends JpaRepository<SubjectKnowledge, Long> {
+
+    List<SubjectKnowledge> findBySubjectIdAndGrade(Long subjectId,String grade);
+
+
 }

+ 4 - 4
src/main/java/edu/math/diagnosis/entity/AbilityScore.java

@@ -22,7 +22,7 @@ public class AbilityScore {
 
     private String grade;
 
-    private String subjectId;
+    private Long subjectId;
 
     @Column(nullable = false)
     @ApiModelProperty("试卷Id")
@@ -43,7 +43,7 @@ public class AbilityScore {
     public AbilityScore() {
     }
 
-    public AbilityScore(String abilityCode, String grade, String subjectId, Long pid, Long qid, Double score) {
+    public AbilityScore(String abilityCode, String grade, Long subjectId, Long pid, Long qid, Double score) {
         this.abilityCode = abilityCode;
         this.grade = grade;
         this.subjectId = subjectId;
@@ -84,11 +84,11 @@ public class AbilityScore {
         this.grade = grade;
     }
 
-    public String getSubjectId() {
+    public Long getSubjectId() {
         return subjectId;
     }
 
-    public void setSubjectId(String subjectId) {
+    public void setSubjectId(Long subjectId) {
         this.subjectId = subjectId;
     }
 

+ 3 - 3
src/main/java/edu/math/diagnosis/entity/SubjectAbility.java

@@ -18,7 +18,7 @@ public class SubjectAbility {
 
     @Column(nullable = false)
     @ApiModelProperty("所属科目Id")
-    private String subjectId;
+    private Long subjectId;
 
     @Column(nullable = false, length = 128, unique = true)
     @ApiModelProperty("科目能力名称")
@@ -45,11 +45,11 @@ public class SubjectAbility {
         this.id = id;
     }
 
-    public String getSubjectId() {
+    public Long getSubjectId() {
         return subjectId;
     }
 
-    public void setSubjectId(String subjectId) {
+    public void setSubjectId(Long subjectId) {
         this.subjectId = subjectId;
     }
 

+ 4 - 4
src/main/java/edu/math/diagnosis/entity/SubjectKnowledge.java

@@ -15,7 +15,7 @@ public class SubjectKnowledge {
     @GeneratedValue(strategy = GenerationType.IDENTITY)
     private Long id;
 
-    private String subjectId;
+    private Long subjectId;
 
     private String grade;
 
@@ -30,7 +30,7 @@ public class SubjectKnowledge {
     public SubjectKnowledge() {
     }
 
-    public SubjectKnowledge(String subjectId, String grade, String chapter, String code, String content, String abilityCodes) {
+    public SubjectKnowledge(Long subjectId, String grade, String chapter, String code, String content, String abilityCodes) {
         this.subjectId = subjectId;
         this.grade = grade;
         this.chapter = chapter;
@@ -60,11 +60,11 @@ public class SubjectKnowledge {
         this.id = id;
     }
 
-    public String getSubjectId() {
+    public Long getSubjectId() {
         return subjectId;
     }
 
-    public void setSubjectId(String subjectId) {
+    public void setSubjectId(Long subjectId) {
         this.subjectId = subjectId;
     }
 

+ 3 - 3
src/main/java/edu/math/diagnosis/entity/SubjectLabel.java

@@ -18,7 +18,7 @@ public class SubjectLabel {
 
     @Column(nullable = false)
     @ApiModelProperty("所属科目Id")
-    private String subjectId;
+    private Long subjectId;
 
     @Column(nullable = false, length = 128, unique = true)
     @ApiModelProperty("标签名称")
@@ -46,11 +46,11 @@ public class SubjectLabel {
         this.id = id;
     }
 
-    public String getSubjectId() {
+    public Long getSubjectId() {
         return subjectId;
     }
 
-    public void setSubjectId(String subjectId) {
+    public void setSubjectId(Long subjectId) {
         this.subjectId = subjectId;
     }
 

+ 4 - 0
src/main/java/edu/math/diagnosis/service/KnowledgeService.java

@@ -20,4 +20,8 @@ public class KnowledgeService {
     public List<SubjectKnowledge> addAll(List<SubjectKnowledge> list) {
         return subjectKnowledgeRepo.saveAll(list);
     }
+
+    public List<SubjectKnowledge> list(Long subjectId,String grade){
+        return subjectKnowledgeRepo.findBySubjectIdAndGrade(subjectId,grade);
+    }
 }

+ 24 - 4
src/main/java/edu/math/diagnosis/service/PaperResultService.java

@@ -1,10 +1,8 @@
 package edu.math.diagnosis.service;
 
+import edu.math.diagnosis.dao.PaperCommitRepo;
 import edu.math.diagnosis.dao.PaperResultRepo;
-import edu.math.diagnosis.entity.Paper;
-import edu.math.diagnosis.entity.PaperCommit;
-import edu.math.diagnosis.entity.PaperResult;
-import edu.math.diagnosis.entity.Question;
+import edu.math.diagnosis.entity.*;
 import edu.math.diagnosis.model.Answer;
 import edu.math.diagnosis.model.Result;
 import edu.math.diagnosis.util.NumberUtil;
@@ -25,8 +23,13 @@ public class PaperResultService {
 
     @Resource
     private PaperResultRepo paperResultRepo;
+    //避免循环引用
+    @Resource
+    private PaperCommitRepo paperCommitRepo;
     @Resource
     private PaperService paperService;
+    @Resource
+    private KnowledgeService knowledgeService;
 
     private static final Logger logger = LoggerFactory.getLogger(PaperResultService.class);
 
@@ -53,11 +56,13 @@ public class PaperResultService {
             if (StringUtils.isBlank(ans)) {
                 continue;
             }
+            //找到对应题目的答案
             Answer a = answers.stream().filter(answer -> answer.getNumber() == q.getNumber())
                     .findFirst().orElse(null);
             if (a == null || StringUtils.isBlank(a.getOptions())) {
                 continue;
             }
+            //检测答案的对错
             if (ans.equalsIgnoreCase(a.getOptions())) {
                 collectQuestion.add(q.getNumber());
                 String jsonScore = q.getJsonScore();
@@ -103,4 +108,19 @@ public class PaperResultService {
            delete(pid,uid);
        }
     }
+
+    public void globalResult(PaperResult r) {
+        PaperCommit commit = paperCommitRepo.findByPidAndUid(r.getPid(),r.getUid());
+        Paper paper = paperService.getOnePaper(r.getPid());
+        r.setKnowledgeRate(88.88);
+        r.setAbilityScore("{}");
+    }
+
+    public Double knoledgeRate(PaperCommit commit,Paper paper ){
+        Long subjectId = paper.getSubjectId();
+        String grade = paper.getGrade();
+        List<SubjectKnowledge> knowledges = knowledgeService.list(subjectId,grade);
+        return 0d;
+    }
+
 }

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

@@ -146,7 +146,7 @@ public class PaperService {
         }
         //init json score
         Map<String, Double> data = new HashMap<>();
-        List<SubjectAbility> abilities = subjectAbilityService.list(String.valueOf(paper.getSubjectId()));
+        List<SubjectAbility> abilities = subjectAbilityService.list(paper.getSubjectId());
         //初始化数据
         abilities.forEach(a -> data.put(a.getCode(), 0d));
         data.put("A0", 0d);
@@ -310,7 +310,7 @@ public class PaperService {
 //            initQuestions(paper, questionPattern, ps);
 //        });
         Map<String, List<Question>> qs = new HashMap<>();
-        List<String> abilities = subjectAbilityService.list(String.valueOf(paper.getSubjectId()))
+        List<String> abilities = subjectAbilityService.list(paper.getSubjectId())
                 .stream().map(SubjectAbility::getCode).collect(Collectors.toList());
         sections.keySet().forEach(s -> {
             List<XWPFParagraph> ps = sections.get(s);

+ 1 - 1
src/main/java/edu/math/diagnosis/service/SubjectAbilityService.java

@@ -17,7 +17,7 @@ public class SubjectAbilityService {
         return subjectAbilityRepo.save(ability);
     }
 
-    public List<SubjectAbility> list(String subjectId) {
+    public List<SubjectAbility> list(Long subjectId) {
         return subjectAbilityRepo.findAllBySubjectId(subjectId);
     }
 }

+ 2 - 1
src/main/java/edu/math/diagnosis/word/KnowledgeUtil.java

@@ -17,9 +17,10 @@ public class KnowledgeUtil {
     public static final int START_COLUMN = 2;
     public static final int END_COLUMN = 100;
 
-    public static List<SubjectKnowledge> getFromExcel(String subjectId, String grade, byte[] data) throws Exception {
+    public static List<SubjectKnowledge> getFromExcel(Long subjectId, String grade, byte[] data) throws Exception {
         XSSFWorkbook book = new XSSFWorkbook(new ByteArrayInputStream(data));
         XSSFSheet sheet = book.getSheetAt(1);
+        //TODO 读取优化
         String[] codes = {"A1", "A2", "A3", "A4", "A5", "A6"};
         List<SubjectKnowledge> result = new ArrayList<>();
         for (int numRow = 2; numRow <= sheet.getLastRowNum(); numRow++) {

+ 3 - 2
src/main/java/edu/math/diagnosis/word/WordService.java

@@ -147,15 +147,16 @@ public class WordService {
         List<AbilityScore> list = new ArrayList<>();
         Map<String, Double> json = new HashMap<>();
         //先手动设置1分
+        //TODO 优化魔法值
         json.put("A0", 1d);
-        AbilityScore a0 = new AbilityScore("A0", "", "", question.getPid(), 0L, 0d);
+        AbilityScore a0 = new AbilityScore("A0", "", 2L, question.getPid(), 0L, 0d);
         list.add(a0);
         for (XWPFParagraph p : ps) {
             String text = p.getText();
             String[] ss = text.split("=");
             String abilityCode = ss[0];
             double score = Double.parseDouble(ss[1]);
-            AbilityScore s = new AbilityScore(abilityCode, "", "", question.getPid(), 0L, score);
+            AbilityScore s = new AbilityScore(abilityCode, "", 2L, question.getPid(), 0L, score);
             list.add(s);
             json.put(abilityCode, score);
 //            abilities.stream().filter(text::equalsIgnoreCase)