Explorar o código

修复审核后不更新问题

insomniaLee %!s(int64=4) %!d(string=hai) anos
pai
achega
96d33cf4b6

+ 4 - 5
src/main/java/com/mooctest/controller/ReportController.java

@@ -340,19 +340,18 @@ public class ReportController {
                                     @RequestParam(value = "status", required = false, defaultValue = "-1") int status,
                                     Model model) {
         List<String> masterIds = masterReportService.getAllMasterIdByExamIdAndCaseId(examId, caseId);//get all masterreport id String
-        List<MasterReport> mrs = masterReportService.getByBugIds(masterIds); // masterReport的报告内容
-        Map<String, MasterReport> mrMap = mrs.stream().collect(toMap(MasterReport::getBugId, Function.identity()));//单个的master报告的对应map
+        List<BugData> bugDatas = bugDataService.getBugDataByIds(masterIds);
+        Map<String,BugData> bugDataMap = bugDatas.stream().collect(toMap(BugData::getBugId,Function.identity()));
         if (status >= 0) {
-            masterIds = masterIds.stream().filter(masterId -> mrMap.get(masterId).getStatus() == status).collect(Collectors.toList());
+            masterIds = masterIds.stream().filter(masterId -> bugDataMap.get(masterId).getStatus() == status).collect(Collectors.toList());
         }
-
 //        Map<String, List<String>> master2BugIdsMap = supplementService.getMaster2BugIdsMap(masterIds);
         Map<String, List<String>> master2BugIdsMap = masterReportService.getMaster2BugIdsMap(masterIds); // master报告对应的report的列表
         Map<String, BugDTO> bugsMap = bugReportService.getAllBugsMap(examId, caseId); //得到所有bug的对应map
 //        Map<String, List<BugDTO>> masterBugMap = bugReportService.getMasterBugMap(master2BugIdsMap, bugsMap);
         TaskDTO task = taskService.getByExamIdAndCaseId(examId, caseId); // 任务情况
         masterIds.forEach(masterId -> {
-            bugsMap.get(masterId).setStatus(mrMap.get(masterId).getStatus());
+            bugsMap.get(masterId).setStatus(bugDataMap.get(masterId).getStatus());
         });
         model.addAttribute("master2BugIdsMap", master2BugIdsMap);
         model.addAttribute("bugMap", bugsMap);

+ 1 - 0
src/main/java/com/mooctest/model/BugData.java

@@ -26,6 +26,7 @@ public class BugData {
 
     private String bugId;
 
+    // 1是已审核  0是未审核
     private int status = 0; // 审核状态
 
     private Long reviewerId;  //  审核人id

+ 4 - 0
src/main/java/com/mooctest/service/BugDataService.java

@@ -111,4 +111,8 @@ public class    BugDataService {
     public List<BugData> getBugDataByIds(List<String> bugIds){
         return bugDataDao.findByBugIdIn(bugIds);
     }
+
+    public boolean saveMultiple(List<BugData> bugDatas){
+        return null!=bugDataDao.saveAll(bugDatas);
+    }
 }

+ 35 - 14
src/main/java/com/mooctest/service/BugReviewService.java

@@ -4,6 +4,7 @@ import com.mooctest.dao.BugDataDao;
 import com.mooctest.dao.MasterReportDao;
 import com.mooctest.model.BugData;
 import com.mooctest.model.MasterReport;
+import com.mooctest.util.ReviewStatus;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -80,17 +81,15 @@ public class BugReviewService {
     public boolean masterReview2(String masterId ){
         List<MasterReport> mrs = masterReportDao.findByMasterId(masterId);
         List<String> bugIds = mrs.stream().map(MasterReport::getBugId).collect(Collectors.toList());
-        updateBugReviewed(bugIds);
-        return true;
+        return updateBugReviewedMulti(bugIds);
     }
 
     public boolean treeReview2(String treeId){
         // 仅仅是将这一份报告的状态设置为已经review, 如果这个报告还有tree报告或者master报告还没review 就提示无法review。
         //如果是树状的root 和master报告就要看是不是下面的报告已经都审核了
-        List<String> childs = historyService.getSingleRootReports(treeId);
-        childs.add(treeId);
-        updateBugReviewed(childs);
-        return true;
+        List<String> bugs = historyService.getSingleRootReports(treeId);
+        bugs.add(treeId);
+        return updateBugReviewedMulti(bugs);
     }
 
     /**
@@ -99,8 +98,9 @@ public class BugReviewService {
      * @return 是否审核成功
      */
     public boolean singleReportReview2 (String reportId){ //
-        updateSingleBugReview(reportId);
-        return true;
+//        updateSingleBugReview(reportId);
+//        return true;
+        return updateBugReviewedSingle(reportId);
     }
 
 
@@ -124,8 +124,8 @@ public class BugReviewService {
         child = child.stream().distinct().collect(Collectors.toList());
         child.remove(reportId);
         if(isAllRemove(child)){
-            updateSingleBugReview(reportId);
-            return true;
+//            updateSingleBugReview(reportId);
+            return updateBugReviewedSingle(reportId);
         }else{
             return false;
         }
@@ -150,12 +150,33 @@ public class BugReviewService {
         updateBugReviewed(bugIds);
     }
 
-    private void updateSingleBugReview ( String id ){
-        BugData single = bugDataDao.findByBugId(id);
-        single.setStatus(1);
-        bugDataDao.save(single);
+//    private void updateSingleBugReview ( String id ){
+//        BugData single = bugDataDao.findByBugId(id);
+//        single.setStatus(1);
+//        bugDataDao.save(single);
+//    }
+
+    private boolean updateBugReviewedSingle(String bugId){
+        BugData single = bugDataDao.findByBugId(bugId);
+        single.setStatus(ReviewStatus.REVIEWED.getReviewStatus());
+        single.setReviewerId(1l);
+        return null != bugDataDao.save(single);
+//        single.set
+    }
+
+    /**
+     * 使用 BugData 记录报告的更新状态,不再使用原来的MasterReport
+     */
+    private boolean updateBugReviewedMulti(List<String> bugIds){
+        List<BugData> bugList = bugDataService.getBugDataByIds(bugIds);
+        for(BugData bug : bugList){
+            bug.setStatus(ReviewStatus.REVIEWED.getReviewStatus());
+            bug.setReviewerId(1l);
+        }
+        return bugDataService.saveMultiple(bugList);
     }
 
+
     // 废弃方法
     private void updateBugReviewed(List<String> bugIds) {
         List<MasterReport> mrs = masterReportDao.findByBugIdIn(bugIds);

+ 18 - 0
src/main/java/com/mooctest/util/ReviewStatus.java

@@ -0,0 +1,18 @@
+package com.mooctest.util;
+
+public enum ReviewStatus {
+
+    UNREVIEW(0), // 未审核
+    REVIEWED(1); // 已审核
+
+
+    private Integer reviewStatus;
+
+    private ReviewStatus(int reviewStatus) {
+        this.reviewStatus = reviewStatus;
+    }
+
+    public Integer getReviewStatus() {
+        return reviewStatus;
+    }
+}