Procházet zdrojové kódy

修改和主站对接获得task相关信息的service

MengyangDuan před 5 roky
rodič
revize
43a2a63a9f

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

@@ -58,7 +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);
+            String jobId = reviewJobService.uploadJob("","",name, description, paperId, startTime, endTime, workerList, workerDistribution);
             JSONObject jsonObject=new JSONObject();
             if(jobId==null){
                 jsonObject.put("status","500");

+ 38 - 0
src/main/java/edu/nju/dao/BugScoreByWorkerDao.java

@@ -0,0 +1,38 @@
+package edu.nju.dao;
+
+import edu.nju.entities.BugScoreByWorker;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public class BugScoreByWorkerDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    public void save(BugScoreByWorker score) {
+        mongoOperations.save(score);
+    }
+
+
+    public BugScoreByWorker findById(String id) {
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(id));
+        List<BugScoreByWorker> list = mongoOperations.find(query, BugScoreByWorker.class);
+        if (list != null && list.size() != 0) {
+            return list.get(0);
+        }
+        return null;
+    }
+
+    public void remove(List<String> ids) {
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").in(ids));
+        mongoOperations.remove(query, BugScoreByWorker.class);
+    }
+}

+ 2 - 1
src/main/java/edu/nju/entities/Bug.java

@@ -6,7 +6,8 @@ import org.springframework.data.mongodb.core.index.Indexed;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 @Document
-public class Bug implements java.io.Serializable{
+public class
+Bug implements java.io.Serializable{
 	/**
 	 * 
 	 */

+ 47 - 0
src/main/java/edu/nju/entities/BugScoreByWorker.java

@@ -0,0 +1,47 @@
+package edu.nju.entities;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+@Document
+public class BugScoreByWorker implements java.io.Serializable{
+
+    private static final long serialVersionUID = 4933164069386462406L;
+
+    @Id
+    private String id;
+
+    private int score;
+
+    private String workerId;
+
+    public BugScoreByWorker(String id, int score, String workerId) {
+        this.id = id;
+        this.score = score;
+        this.workerId = workerId;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public int getScore() {
+        return score;
+    }
+
+    public void setScore(int score) {
+        this.score = score;
+    }
+
+    public String getWorkerId() {
+        return workerId;
+    }
+
+    public void setWorkerId(String workerId) {
+        this.workerId = workerId;
+    }
+}

+ 5 - 2
src/main/java/edu/nju/entities/ReviewJob.java

@@ -12,6 +12,8 @@ public class ReviewJob implements java.io.Serializable{
 
     private String exam_id;
 
+    private String case_id;
+
     private String description;
 
     private String name;
@@ -27,8 +29,9 @@ public class ReviewJob implements java.io.Serializable{
     private String group;
 
     @PersistenceConstructor
-    public ReviewJob(String name, String description, String create_time, String paper_id, String start_time, String end_time, String group) {
-        this.exam_id="";
+    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) {
+        this.exam_id=exam_id;
+        this.case_id=case_id;
         this.description = description;
         this.name = name;
         this.paper_id = paper_id;

+ 9 - 7
src/main/java/edu/nju/entities/Task.java

@@ -1,4 +1,5 @@
 package edu.nju.entities;
+import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
 @Document
@@ -6,17 +7,18 @@ public class Task implements java.io.Serializable {
 
     private static final long serialVersionUID = -1516005112486541943L;
 
+    @Id
     private String id;
 
-    private String start_time;
+    private long start_time;
 
-    private String end_time;
+    private long end_time;
 
     private double total_mins;
 
     private double write_time;
 
-    public Task(String id, String start_time, String end_time, double total_mins, double write_time) {
+    public Task(String id, long start_time, long end_time, double total_mins, double write_time) {
         this.id = id;
         this.start_time = start_time;
         this.end_time = end_time;
@@ -32,19 +34,19 @@ public class Task implements java.io.Serializable {
         this.id = id;
     }
 
-    public String getStart_time() {
+    public long getStart_time() {
         return start_time;
     }
 
-    public void setStart_time(String start_time) {
+    public void setStart_time(long start_time) {
         this.start_time = start_time;
     }
 
-    public String getEnd_time() {
+    public long getEnd_time() {
         return end_time;
     }
 
-    public void setEnd_time(String end_time) {
+    public void setEnd_time(long end_time) {
         this.end_time = end_time;
     }
 

+ 21 - 1
src/main/java/edu/nju/model/JobJsonDTO.java

@@ -1,6 +1,8 @@
 package edu.nju.model;
 
 public class JobJsonDTO {
+    String examId;
+    String caseId;
     String job_name;
     String job_description;
     String start_time;
@@ -8,7 +10,9 @@ public class JobJsonDTO {
     String worker_list;
     String paperUrl;
 
-    public JobJsonDTO(String job_name, String job_description, String start_time, String end_time, String worker_list, String paperUrl) {
+    public JobJsonDTO(String examId,String caseId,String job_name, String job_description, String start_time, String end_time, String worker_list, String paperUrl) {
+        this.examId=examId;
+        this.caseId=caseId;
         this.job_name = job_name;
         this.job_description = job_description;
         this.start_time = start_time;
@@ -21,6 +25,22 @@ public class JobJsonDTO {
 
     }
 
+    public String getExamId() {
+        return examId;
+    }
+
+    public void setExamId(String examId) {
+        this.examId = examId;
+    }
+
+    public String getCaseId() {
+        return caseId;
+    }
+
+    public void setCaseId(String caseId) {
+        this.caseId = caseId;
+    }
+
     public String getJob_name() {
         return job_name;
     }

+ 3 - 3
src/main/java/edu/nju/service/ExtraService.java

@@ -139,9 +139,9 @@ public class ExtraService {
 		String result = HTTP.sendGet("http://www.mooctest.net/api/exam/" + id + "/info", "");
 		if (result != null && !result.equals("")) {
 			JSONObject json = new JSONObject(result);
-			String beginTime = json.getString("beginTime");
-			String endTime = json.getString("endTime");
-			double totalMins = (Long.parseLong(endTime) - Long.parseLong(beginTime)) / 1000 / 60.0;
+			long beginTime = json.getLong("beginTime");
+			long endTime = json.getLong("endTime");
+			double totalMins = (endTime - beginTime) / 1000 / 60.0;
 			Task newTask = new Task(id, beginTime, endTime, totalMins, totalMins);
 			taskDao.save(newTask);
 			return newTask;

+ 5 - 3
src/main/java/edu/nju/service/ReviewJobService.java

@@ -40,8 +40,8 @@ public class ReviewJobService {
         return jobDao.findJobs();
     }
 
-    public String uploadJob(String name, String description, String paperId, String startTime, String endTime, @RequestParam(name = "workerList") List<String>workerList, String workerDistribution){
-        ReviewJob reviewJob=new ReviewJob(name,description,Long.toString(System.currentTimeMillis()),paperId,startTime,endTime,"");
+    public String uploadJob(String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, @RequestParam(name = "workerList") List<String>workerList, String workerDistribution){
+        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++){
@@ -62,6 +62,8 @@ public class ReviewJobService {
         String jobDescription=jobJsonDTO.getJob_description();
         String startTime=jobJsonDTO.getStart_time();
         String endTime=jobJsonDTO.getEnd_time();
+        String examId=jobJsonDTO.getExamId();
+        String caseId=jobJsonDTO.getCaseId();
         JSONArray workerList_Array=new JSONArray(jobJsonDTO.getWorker_list());
         String paperUrl=jobJsonDTO.getPaperUrl();
         List<String>workerList=new ArrayList<>();
@@ -78,7 +80,7 @@ public class ReviewJobService {
                 return messageVO;
             }
             String paperId=paperResult.getString("paperId");
-            String jobId=uploadJob(jobName,jobDescription,paperId,startTime,endTime,workerList,"");
+            String jobId=uploadJob(examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"");
             messageVO.setStatus("200");
             messageVO.setMessage(jobId);
         } catch (IOException e) {