Pārlūkot izejas kodu

添加job的上传修改删除功能并分在单独的controller中

MengyangDuan 5 gadi atpakaļ
vecāks
revīzija
17aff3bc7f

+ 2 - 32
src/main/java/edu/nju/controller/ReviewController.java

@@ -22,36 +22,6 @@ public class ReviewController {
     @Autowired
     ReviewService iservice;
 
-    @RequestMapping(value = "/getJob")
-    @ResponseBody
-    public void getJobById(String job_id, HttpServletResponse response){
-        try {
-            PrintWriter out = response.getWriter();
-            ReviewJob job = iservice.getJob(job_id);
-            out.print(new JSONObject(job));
-            out.flush();
-            out.close();
-        }catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
-    @RequestMapping(value = "/getJobs")
-    @ResponseBody
-    public void getJobs(HttpServletResponse response){
-        try {
-            PrintWriter out = response.getWriter();
-            List<ReviewJob> jobs = iservice.getJobs();
-            out.print(new JSONArray(jobs));
-            out.flush();
-            out.close();
-        }catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
-
     @RequestMapping(value = "/getReportsByWorkerJob")
     @ResponseBody
     public void getReportListByWorkerJob(String job_id, String worker_id, HttpServletResponse response){
@@ -168,9 +138,9 @@ public class ReviewController {
         }
     }
 
-    @RequestMapping(value = "/saveAnswer", method = RequestMethod.POST)
+    @RequestMapping(value = "/setGrade", method = RequestMethod.POST)
     @ResponseBody
-    public void saveAnswer(String itemId, String reportId, String workerId,String grade, HttpServletResponse response){
+    public void setGrade(String itemId, String reportId, String workerId,String grade, HttpServletResponse response){
         JSONObject result = new JSONObject();
         if(iservice.setGrade(itemId,reportId,workerId,grade)){
             result.put("status", "200");

+ 120 - 0
src/main/java/edu/nju/controller/ReviewJobController.java

@@ -0,0 +1,120 @@
+package edu.nju.controller;
+
+import edu.nju.entities.ReviewJob;
+import edu.nju.service.ReviewJobService;
+import edu.nju.service.ReviewService;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.List;
+
+@Controller
+@RequestMapping(value = "/job")
+@CrossOrigin(origins = "*", maxAge = 3600, allowCredentials = "true")
+public class ReviewJobController {
+
+    @Autowired
+    ReviewJobService reviewJobService;
+
+    @RequestMapping(value = "/getJob")
+    @ResponseBody
+    public void getJobById(String job_id, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            ReviewJob job = reviewJobService.getJob(job_id);
+            out.print(new JSONObject(job));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/getJobs")
+    @ResponseBody
+    public void getJobs(HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            List<ReviewJob> jobs = reviewJobService.getJobs();
+            out.print(new JSONArray(jobs));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/uploadJob", method = RequestMethod.POST)
+    @ResponseBody
+    public void uploadJob(String name, String description, String paperId,String startTime, String endTime,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);
+            }
+            out.print(jsonObject);
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/updateJob", method = RequestMethod.POST)
+    @ResponseBody
+    public void updateJob(String jobId, String name, String description, String paperId,String startTime, String endTime,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");
+        }
+        try {
+            PrintWriter out = response.getWriter();
+            out.print(result);
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/delJob")
+    @ResponseBody
+    public void deleteJob(String jobId, HttpServletResponse response){
+        JSONObject result = new JSONObject();
+        if(reviewJobService.deleteJob(jobId)){
+            result.put("status", "200");
+        } else {
+            result.put("status", "500");
+        }
+        try {
+            PrintWriter out = response.getWriter();
+            out.print(result);
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+}

+ 3 - 16
src/main/java/edu/nju/controller/ReviewPaperController.java

@@ -146,22 +146,9 @@ public class ReviewPaperController {
 
     @RequestMapping(value = "/addWorker")
     @ResponseBody
-    public void addWorker(String examId,String paperId, @RequestParam("workerList")List<String>workerList,HttpServletResponse response){
-        try {
-            JSONObject result = new JSONObject();
-            if(reviewPaperService.addWorker(examId,paperId,workerList)){
-                result.put("status", "200");
-            } else {
-                result.put("status", "500");
-            }
-            PrintWriter out = response.getWriter();
-            out.print(result);
-            out.flush();
-            out.close();
-        }catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
+    public String addWorker(String examId,String paperId, @RequestParam("workerList")List<String>workerList,HttpServletResponse response){
+        String jobId=reviewPaperService.addWorker(examId,paperId,workerList);
+        return jobId;
     }
 
     @RequestMapping(value = "/getPaperByWorker")

+ 7 - 0
src/main/java/edu/nju/dao/ReviewGroupDao.java

@@ -1,6 +1,7 @@
 package edu.nju.dao;
 
 import edu.nju.entities.ReviewGroup;
+import edu.nju.entities.ReviewJob;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoOperations;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -29,4 +30,10 @@ public class ReviewGroupDao {
         return list.get(0).getReport_id();
     }
 
+    public void removeByJob(String jobId){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("job_id").is(jobId));
+        mongoOperations.remove(query,ReviewJob.class);
+    }
+
 }

+ 6 - 0
src/main/java/edu/nju/dao/ReviewJobDao.java

@@ -33,4 +33,10 @@ public class ReviewJobDao {
         mongoOperations.save(job);
         return job.getId();
     }
+
+    public void remove(String id){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(id));
+        mongoOperations.remove(query,ReviewJob.class);
+    }
 }

+ 6 - 0
src/main/java/edu/nju/dao/ReviewWorkerDao.java

@@ -34,4 +34,10 @@ public class ReviewWorkerDao {
         List<ReviewWorker> list = mongoOperations.find(query,ReviewWorker.class);
         return list;
     }
+
+    public void removeByJob(String jobId){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("job_id").is(jobId));
+        mongoOperations.remove(query,ReviewWorker.class);
+    }
 }

+ 4 - 4
src/main/java/edu/nju/entities/ReviewJob.java

@@ -27,8 +27,8 @@ public class ReviewJob implements java.io.Serializable{
     private String group;
 
     @PersistenceConstructor
-    public ReviewJob(String exam_id,String description, String name, String create_time, String paper_id, String start_time, String end_time, String group) {
-        this.exam_id=exam_id;
+    public ReviewJob(String name, String description, String create_time, String paper_id, String start_time, String end_time, String group) {
+        this.exam_id="";
         this.description = description;
         this.name = name;
         this.paper_id = paper_id;
@@ -38,12 +38,12 @@ public class ReviewJob implements java.io.Serializable{
         this.group = group;
     }
     @PersistenceConstructor
-    public ReviewJob(String exam_id, String paper_id) {
+    public ReviewJob(String exam_id, String paper_id,String create_time) {
         this.exam_id=exam_id;
         this.description = "";
         this.name = "";
         this.paper_id = paper_id;
-        this.create_time = "";
+        this.create_time = create_time;
         this.start_time = "";
         this.end_time = "";
         this.group = "";

+ 89 - 0
src/main/java/edu/nju/service/ReviewJobService.java

@@ -0,0 +1,89 @@
+package edu.nju.service;
+
+import edu.nju.dao.*;
+import edu.nju.entities.ReviewGroup;
+import edu.nju.entities.ReviewJob;
+import edu.nju.entities.ReviewReport;
+import edu.nju.entities.ReviewWorker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+@Service
+public class ReviewJobService {
+
+    @Autowired
+    ReviewJobDao jobDao;
+    @Autowired
+    ReviewGroupDao groupDao;
+    @Autowired
+    ReviewReportDao reportDao;
+    @Autowired
+    ReviewWorkerDao reviewWorkerDao;
+
+    public ReviewJob getJob(String job_id){
+        return jobDao.findJob(job_id);
+    }
+
+    public List<ReviewJob> getJobs(){
+        return jobDao.findJobs();
+    }
+
+    public String uploadJob(String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution){
+        ReviewJob reviewJob=new ReviewJob(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);
+        }
+        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));
+        return jobId;
+    }
+
+    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());
+            groupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds));
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+
+    }
+
+    public boolean deleteJob(String jobId){
+        try {
+            jobDao.remove(jobId);
+            groupDao.removeByJob(jobId);
+            reviewWorkerDao.removeByJob(jobId);
+            return true;
+        } catch (Exception e) {
+            e.printStackTrace();
+            return false;
+        }
+    }
+}

+ 21 - 26
src/main/java/edu/nju/service/ReviewPaperService.java

@@ -15,8 +15,6 @@ import java.util.*;
 
 @Service
 public class ReviewPaperService {
-    @Autowired
-    ReviewJobDao jobDao;
 
     @Autowired
     ReviewItemDao itemDao;
@@ -45,16 +43,17 @@ public class ReviewPaperService {
     @Autowired
     ReviewGroupDao reviewGroupDao;
 
-    public ReviewPaperJson getReviewPaperJson(String paper_id) {
-        return reviewPaperJsonDao.findJsonByPaper(paper_id);
+
+    public ReviewPaperJson getReviewPaperJson(String paperId) {
+        return reviewPaperJsonDao.findJsonByPaper(paperId);
     }
 
-    public ReviewPaper getPaper(String paper_id){
-        return reviewPaperDao.findPaper(paper_id);
+    public ReviewPaper getPaper(String paperId){
+        return reviewPaperDao.findPaper(paperId);
     }
 
-    public List<ReviewReport> getReportsByPaperId(String paper_id){
-        return reviewReportDao.getReportsByPaperId(paper_id);
+    public List<ReviewReport> getReportsByPaperId(String paperId){
+        return reviewReportDao.getReportsByPaperId(paperId);
     }
 
     public List<ReviewPaper> getPapers(){
@@ -362,25 +361,21 @@ public class ReviewPaperService {
         }
     }
 
-    public boolean addWorker(String examId,String paperId, List<String>workerList){
-        try {
-            String jobId=reviewJobDao.save(new ReviewJob(examId,paperId));
-            List<String>workerIds=new ArrayList<>();
-            for(int i=0;i<workerList.size();i++){
-                String workerId=workerList.get(i);
-                workerIds.add(workerId);
-                reviewWorkerDao.save(new ReviewWorker(workerId,paperId,examId,jobId));
-            }
-            List<ReviewReport>reviewReports=getReportsByPaperId(paperId);
-            List<String>reportIds=new ArrayList<>();
-            for(int i=0;i<reviewReports.size();i++)
-                reportIds.add(reviewReports.get(i).getId());
-            reviewGroupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds));
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
+    public String addWorker(String examId,String paperId, List<String>workerList){
+        String jobId=reviewJobDao.save(new ReviewJob(examId,paperId,Long.toString(System.currentTimeMillis())));
+        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,examId,jobId));
+            workerIds.add(workerId);
         }
+        List<ReviewReport>reviewReports=getReportsByPaperId(paperId);
+        List<String>reportIds=new ArrayList<>();
+        for(int i=0;i<reviewReports.size();i++)
+            reportIds.add(reviewReports.get(i).getId());
+        reviewGroupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds));
+        return jobId;
+
     }
 
     public ReviewWorker getWorker(String workerIndex,String examId){

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

@@ -16,8 +16,6 @@ public class ReviewService {
     @Autowired
     ReviewItemDao itemDao;
     @Autowired
-    ReviewJobDao jobDao;
-    @Autowired
     ReviewAnswerDao answerDao;
     @Autowired
     ReviewGroupDao groupDao;
@@ -28,14 +26,6 @@ public class ReviewService {
     @Autowired
     ReviewCorrectAnswerDao reviewCorrectAnswerDao;
 
-    public ReviewJob getJob(String job_id){
-        return jobDao.findJob(job_id);
-    }
-
-    public List<ReviewJob> getJobs(){
-        return jobDao.findJobs();
-    }
-
     public ReviewAnswer getAnswerByWorkerReportItem(String reportId,String workerId,String itemId){
         return answerDao.findAnswerByWorkerReportItem(reportId,workerId, itemId);
     }