Browse Source

Merge remote-tracking branch 'origin/xjw' into xjw

xujiawei 5 years ago
parent
commit
2f3e6ccd63

+ 19 - 0
src/main/java/edu/nju/controller/AnalyzeController.java

@@ -47,6 +47,25 @@ public class AnalyzeController {
 			e.printStackTrace();
 		}
 	}
+
+	//根据用例获取所有有效bug
+	@RequestMapping(value = "/validByBugId")
+	@ResponseBody
+	public void getValidByBugId(String id, HttpServletResponse response) {
+		try {
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			List<String> list = aservice.getValidByBugId(id);
+			result.put("Count", list.size());
+			result.put("Detail", new JSONArray(list));
+			out.print(result);
+			out.flush();
+			out.close();
+		} catch (Exception e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
 	
 	//获取所有有点赞记录的bug
 	@RequestMapping(value = "/thums")

+ 1 - 0
src/main/java/edu/nju/controller/ReviewController.java

@@ -192,4 +192,5 @@ public class ReviewController {
         }
     }
 
+
 }

+ 4 - 9
src/main/java/edu/nju/controller/ReviewJobController.java

@@ -55,10 +55,10 @@ public class ReviewJobController {
 
     @RequestMapping(value = "/uploadJob", method = RequestMethod.POST)
     @ResponseBody
-    public void uploadJob(String name, String description, String paperId, String startTime, String endTime, @RequestParam("workerList")List<String>workerList, String workerDistribution, HttpServletResponse response){
+    public void uploadJob(String name, String description, String paperId, String startTime, String endTime, @RequestParam("workerList")List<String>workerList, String workerDistribution,boolean isCrossValidation,int validationNum, HttpServletResponse response){
         try {
             PrintWriter out = response.getWriter();
-            JSONObject jsonObject = reviewJobService.uploadJob("","",name, description, paperId, startTime, endTime, workerList, workerDistribution);
+            JSONObject jsonObject = reviewJobService.uploadJob("","","",name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum);
             out.print(jsonObject);
             out.flush();
             out.close();
@@ -92,13 +92,8 @@ public class ReviewJobController {
 
     @RequestMapping(value = "/updateJob", method = RequestMethod.POST)
     @ResponseBody
-    public void updateJob(String jobId, String name, String description, String paperId,String startTime, String endTime,@RequestParam("workerList")List<String>workerList,String workerDistribution, HttpServletResponse response){
-        JSONObject result = new JSONObject();
-        if(reviewJobService.updateJob(jobId, name, description, paperId, startTime, endTime, workerList, workerDistribution)){
-            result.put("status", "200");
-        } else {
-            result.put("status", "500");
-        }
+    public void updateJob(String jobId, String name, String description, String paperId,String startTime, String endTime,@RequestParam("workerList")List<String>workerList,String workerDistribution,boolean isCrossValidation,int validationNum, HttpServletResponse response){
+        JSONObject result = reviewJobService.updateJob(jobId, name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum);
         try {
             PrintWriter out = response.getWriter();
             out.print(result);

+ 30 - 21
src/main/java/edu/nju/entities/ReviewJob.java

@@ -28,12 +28,12 @@ public class ReviewJob implements java.io.Serializable{
 
     private String group;
 
-//    private boolean isCrossValidation;
-//
-//    private int validationNum;
+    private boolean isCrossValidation;
+
+    private int validationNum;
 
     @PersistenceConstructor
-    public ReviewJob(String exam_id,String case_id, String name, String description, String create_time, String paper_id, String start_time, String end_time, String group) {
+    public ReviewJob(String exam_id,String case_id, String name, String description, String create_time, String paper_id, String start_time, String end_time, String group,Boolean isCrossValidation,Integer validationNum) {
         this.exam_id=exam_id;
         this.case_id=case_id;
         this.description = description;
@@ -43,8 +43,16 @@ public class ReviewJob implements java.io.Serializable{
         this.start_time = start_time;
         this.end_time = end_time;
         this.group = group;
-//        this.isCrossValidation=isCrossValidation;
-//        this.validationNum=validationNum;
+        if(isCrossValidation==null){
+            this.isCrossValidation=false;
+        }
+        else
+            this.isCrossValidation=isCrossValidation;
+        if(isCrossValidation==null){
+            this.validationNum=0;
+        }
+        else
+            this.validationNum=validationNum;
     }
     @PersistenceConstructor
     public ReviewJob(String exam_id, String paper_id,String create_time) {
@@ -56,6 +64,7 @@ public class ReviewJob implements java.io.Serializable{
         this.start_time = "";
         this.end_time = "";
         this.group = "";
+
     }
 
     public String getId() {
@@ -130,19 +139,19 @@ public class ReviewJob implements java.io.Serializable{
         this.group = group;
     }
 
-//    public boolean isCrossValidation() {
-//        return isCrossValidation;
-//    }
-//
-//    public void setCrossValidation(boolean crossValidation) {
-//        isCrossValidation = crossValidation;
-//    }
-//
-//    public int getValidationNum() {
-//        return validationNum;
-//    }
-//
-//    public void setValidationNum(int validationNum) {
-//        this.validationNum = validationNum;
-//    }
+    public boolean isCrossValidation() {
+        return isCrossValidation;
+    }
+
+    public void setCrossValidation(boolean crossValidation) {
+        isCrossValidation = crossValidation;
+    }
+
+    public int getValidationNum() {
+        return validationNum;
+    }
+
+    public void setValidationNum(int validationNum) {
+        this.validationNum = validationNum;
+    }
 }

+ 11 - 0
src/main/java/edu/nju/service/AnalyzeService.java

@@ -49,6 +49,17 @@ public class AnalyzeService {
 		}
 		return result;
 	}
+
+	public List<String> getValidByBugId(String id) {
+		List<String> result = new ArrayList<String>();
+		BugMirror bugMirror=mdao.findById(id);
+		String case_take_id=bugMirror.getCase_take_id();
+		List<BugMirror> mirrors = mdao.findValid(case_take_id);
+		for(BugMirror ctb : mirrors) {
+			result.add(ctb.getId());
+		}
+		return result;
+	}
 	
 	//获取所有有测试用例的bug
 	public List<String> getValidTwo(String case_take_id) {

+ 1 - 0
src/main/java/edu/nju/service/ReviewAnalyzeService.java

@@ -17,6 +17,7 @@ import java.util.Map;
 
 @Service
 public class ReviewAnalyzeService {
+
     @Autowired
     ReviewAnswerDao reviewAnswerDao;
     @Autowired

+ 21 - 31
src/main/java/edu/nju/service/ReviewJobService.java

@@ -40,15 +40,18 @@ public class ReviewJobService {
         return jobDao.findJobs();
     }
 
-    public JSONObject uploadJob(String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution){
+    public JSONObject uploadJob(String jobId,String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution,boolean isCrossValidation,int validationNum){
         JSONObject jsonObject=new JSONObject();
         String checkResult=checkJobDistribution(workerDistribution);
-        if(!checkResult.equals("success")){
+        if((!workerDistribution.equals(""))&&(!checkResult.equals("success"))){
             jsonObject.put("status","fail");
             jsonObject.put("message",checkResult);
+            return jsonObject;
+        }
+        if(jobId.equals("")) {
+            ReviewJob newReviewJob = new ReviewJob(examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId, startTime, endTime, "", isCrossValidation, validationNum);
+            jobId = jobDao.save(newReviewJob);
         }
-        ReviewJob reviewJob=new ReviewJob(examId,caseId,name,description,Long.toString(System.currentTimeMillis()),paperId,startTime,endTime,"");
-        String jobId=jobDao.save(reviewJob);
         if(workerDistribution.equals("")){
             List<String>workerIds=new ArrayList<>();
             for(int i=0;i<workerList.size();i++){
@@ -134,7 +137,7 @@ public class ReviewJobService {
             for(int i=0;i<reports.size();i++){
                 reportIds.add(reports.get(i).getId());
             }
-            JSONObject jsonObject=uploadJob(examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"");
+            JSONObject jsonObject=uploadJob("",examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"",false,0);
            // groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
             if(jsonObject.getString("status").equals("success")) {
                 messageVO.setStatus("200");
@@ -151,32 +154,19 @@ public class ReviewJobService {
         return messageVO;
     }
 
-    public boolean updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution){
-        try {
-            ReviewJob reviewJob=jobDao.findJob(jobId);
-            reviewJob.setName(name);
-            reviewJob.setDescription(description);
-            reviewJob.setStart_time(startTime);
-            reviewJob.setEnd_time(endTime);
-            jobDao.save(reviewJob);
-            deleteJob(jobId);
-            List<String>workerIds=new ArrayList<>();
-            for(int i=0;i<workerList.size();i++){
-                String workerIndex=workerList.get(i);
-                String workerId=reviewWorkerDao.save(new ReviewWorker(workerIndex,paperId,"",jobId));
-                workerIds.add(workerId);
-            }
-            List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
-            List<String>reportIds=new ArrayList<>();
-            for(int i=0;i<reviewReports.size();i++)
-                reportIds.add(reviewReports.get(i).getId());
-            saveJobDistribution(workerDistribution,jobId);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-
+    public JSONObject updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution,boolean isCrossValidation,int validationNum){
+        ReviewJob reviewJob=jobDao.findJob(jobId);
+        reviewJob.setName(name);
+        reviewJob.setDescription(description);
+        reviewJob.setStart_time(startTime);
+        reviewJob.setEnd_time(endTime);
+        reviewJob.setCrossValidation(isCrossValidation);
+        reviewJob.setValidationNum(validationNum);
+        jobDao.save(reviewJob);
+        groupDao.removeByJob(jobId);
+        reviewWorkerDao.removeByJob(jobId);
+        JSONObject jsonObject1=uploadJob(jobId,"","",name,description,paperId,startTime,endTime,workerList,workerDistribution,isCrossValidation,validationNum);
+        return jsonObject1;
     }
 
     public boolean deleteJob(String jobId){