Browse Source

Merge branch 'xjw' of http://git.mooctest.net/summer/crowdsource-backend into xjw

xujiawei 5 years ago
parent
commit
7b1d9ebc23

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

@@ -103,6 +103,21 @@ public class ReviewController {
         }
     }
 
+    @RequestMapping(value = "/getReportsByJob")
+    @ResponseBody
+    public void getReportsByJob(String jobId, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            List<ReviewReport> reviewReports = iservice.getReportsByJob(jobId);
+            out.print(new JSONArray(reviewReports));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
     @RequestMapping(value = "/getCorrectAnswerByReportItemJob")
     @ResponseBody
     public void getCorrectAnswerByReportItem(String reportId,String itemId,String jobId, HttpServletResponse response){

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

@@ -58,15 +58,7 @@ public class ReviewJobController {
     public void uploadJob(String name, String description, String paperId, String startTime, String endTime, @RequestParam("workerList")List<String>workerList, String workerDistribution, HttpServletResponse response){
         try {
             PrintWriter out = response.getWriter();
-            String jobId = reviewJobService.uploadJob("","",name, description, paperId, startTime, endTime, workerList, workerDistribution);
-            JSONObject jsonObject=new JSONObject();
-            if(jobId==null){
-                jsonObject.put("status","500");
-            }
-            else{
-                jsonObject.put("status","200");
-                jsonObject.put("jobId",jobId);
-            }
+            JSONObject jsonObject = reviewJobService.uploadJob("","",name, description, paperId, startTime, endTime, workerList, workerDistribution);
             out.print(jsonObject);
             out.flush();
             out.close();

+ 1 - 1
src/main/java/edu/nju/dao/ReviewGroupDao.java

@@ -36,7 +36,7 @@ public class ReviewGroupDao {
         mongoOperations.remove(query,ReviewJob.class);
     }
 
-    public ReviewGroup getReportsByReports(List<String>reportIds){
+    public ReviewGroup getGroupByReports(List<String>reportIds){
         Query query = new Query();
         query.addCriteria(Criteria.where("report_id").is(reportIds));
         List<ReviewGroup>list = mongoOperations.find(query, ReviewGroup.class);

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

@@ -28,7 +28,9 @@ public class ReviewJob implements java.io.Serializable{
 
     private String group;
 
-    //private boolean
+//    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) {
@@ -41,6 +43,8 @@ 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;
     }
     @PersistenceConstructor
     public ReviewJob(String exam_id, String paper_id,String create_time) {
@@ -125,4 +129,20 @@ public class ReviewJob implements java.io.Serializable{
     public void setGroup(String group) {
         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;
+//    }
 }

+ 51 - 16
src/main/java/edu/nju/service/ReviewJobService.java

@@ -40,21 +40,50 @@ public class ReviewJobService {
         return jobDao.findJobs();
     }
 
-    public String uploadJob(String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution){
+    public JSONObject uploadJob(String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution){
+        JSONObject jsonObject=new JSONObject();
+        String checkResult=checkJobDistribution(workerDistribution);
+        if(!checkResult.equals("success")){
+            jsonObject.put("status","fail");
+            jsonObject.put("message",checkResult);
+        }
         ReviewJob reviewJob=new ReviewJob(examId,caseId,name,description,Long.toString(System.currentTimeMillis()),paperId,startTime,endTime,"");
         String jobId=jobDao.save(reviewJob);
-        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);
+        if(workerDistribution.equals("")){
+            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());
+            groupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds));
+        }
+        else {
+            saveJobDistribution(workerDistribution, jobId);
+        }
+        jsonObject.put("status","success");
+        jsonObject.put("jobId",jobId);
+        return jsonObject;
+    }
+
+    private String checkJobDistribution(String workerDistribution){
+        try {
+            JSONArray jsonArray=new JSONArray(workerDistribution);
+            for(int i=0;i<jsonArray.length();i++){
+                JSONObject jsonObject=jsonArray.getJSONObject(i);
+                String name=jsonObject.getString("name");
+                String desciption=jsonObject.getString("description");
+                JSONArray jsonArray1=jsonObject.getJSONArray("worker");
+                JSONArray jsonArray2=jsonObject.getJSONArray("report");
+            }
+        }catch (Exception e){
+            return e.getMessage();
         }
-        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 jobId;
+        return "success";
     }
 
     private void saveJobDistribution(String workerDistribution,String jobId){
@@ -105,10 +134,16 @@ public class ReviewJobService {
             for(int i=0;i<reports.size();i++){
                 reportIds.add(reports.get(i).getId());
             }
-            String jobId=uploadJob(examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"");
-            groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
-            messageVO.setStatus("200");
-            messageVO.setMessage(jobId);
+            JSONObject jsonObject=uploadJob(examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"");
+           // groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
+            if(jsonObject.getString("status").equals("success")) {
+                messageVO.setStatus("200");
+                messageVO.setMessage(jsonObject.getString("jobId"));
+            }
+            else{
+                messageVO.setStatus("500");
+                messageVO.setMessage(jsonObject.getString("message"));
+            }
         } catch (IOException e) {
             messageVO.setStatus("500");
             messageVO.setMessage(e.getMessage());

+ 1 - 1
src/main/java/edu/nju/service/ReviewPaperService.java

@@ -405,7 +405,7 @@ public class ReviewPaperService {
         List<String>reportIds=new ArrayList<>();
         for(int i=0;i<reviewReports.size();i++)
             reportIds.add(reviewReports.get(i).getId());
-        ReviewGroup reviewGroup=reviewGroupDao.getReportsByReports(reportIds);
+        ReviewGroup reviewGroup=reviewGroupDao.getGroupByReports(reportIds);
         List<String>workerIds=reviewGroup.getWorkers_id();
         workerIds.add(workerId);
         reviewGroup.setWorkers_id(workerIds);

+ 12 - 0
src/main/java/edu/nju/service/ReviewService.java

@@ -25,6 +25,10 @@ public class ReviewService {
     ReviewWorkerDao reviewWorkerDao;
     @Autowired
     ReviewCorrectAnswerDao reviewCorrectAnswerDao;
+    @Autowired
+    ReviewJobDao reviewJobDao;
+
+
 
     public ReviewAnswer getAnswerByWorkerReportItem(String reportId,String workerId,String itemId){
         ReviewAnswer reviewAnswer= answerDao.findAnswerByWorkerReportItem(reportId,workerId, itemId);
@@ -143,5 +147,13 @@ public class ReviewService {
         }
     }
 
+    public List<ReviewReport>getReportsByJob(String jobId){
+        ReviewJob reviewJob=reviewJobDao.findJob(jobId);
+        String paperId=reviewJob.getPaper_id();
+        List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
+        return reviewReports;
+    }
+
+
 
 }