Pārlūkot izejas kodu

获得考试时间相关信息

MengyangDuan 5 gadi atpakaļ
vecāks
revīzija
61c9edf028

+ 44 - 4
src/main/java/edu/nju/controller/ExtraController.java

@@ -8,16 +8,13 @@ import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import edu.nju.entities.*;
 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.*;
 
-import edu.nju.entities.Bug;
-import edu.nju.entities.Exam;
-import edu.nju.entities.Report;
-import edu.nju.entities.TestCase;
 import edu.nju.service.ExtraService;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -447,4 +444,47 @@ public class ExtraController {
 		}
 	}
 
+
+	@RequestMapping(value = "/updateTask", method = RequestMethod.POST)
+	@ResponseBody
+	public void updateTask(String id,double writeMins, HttpServletResponse response) {
+		try {
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			if(extraService.updateTask(id, writeMins)) {
+				result.put("status", 200);
+			}
+			else { result.put("status", 500); }
+			out.print(result);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+	@RequestMapping(value = "/getTask")
+	@ResponseBody
+	public void getTask(String id, HttpServletResponse response) {
+		try {
+			PrintWriter out = response.getWriter();
+			JSONObject result = new JSONObject();
+			Task task=extraService.saveTask(id);
+			if(task!=null) {
+				result.put("status", 200);
+				result.put("result",task);
+			}
+			else { result.put("status", 500); }
+			out.print(result);
+			out.flush();
+			out.close();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+	}
+
+
+
 }

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

@@ -103,11 +103,26 @@ public class ReviewController {
         }
     }
 
+    @RequestMapping(value = "/getCorrectAnswerByReportItemJob")
+    @ResponseBody
+    public void getCorrectAnswerByReportItem(String reportId,String itemId,String jobId, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            ReviewCorrectAnswer reviewCorrectAnswer=iservice.getCorrectAnswerByReportItem(reportId, itemId, jobId);
+            out.print(new JSONObject(reviewCorrectAnswer));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
     @RequestMapping(value = "/saveCorrectAnswer", method = RequestMethod.POST)
     @ResponseBody
-    public void updateCorrectAnswer(String itemId,String reportId, String workerId,String paperId,String jobId,@RequestParam("answer")List<String> answer,@RequestParam("attachment_location") List<String> file_url, String grade, HttpServletResponse response) {
+    public void updateCorrectAnswer(String answerId,@RequestParam("answer")List<String> answer,@RequestParam("attachment_location") List<String> file_url, String grade, HttpServletResponse response) {
         JSONObject result = new JSONObject();
-        if (iservice.saveCorrectAnswer(itemId, reportId, workerId, paperId, jobId, answer, file_url, grade)) {
+        if (iservice.updateCorrectAnswer(answerId, answer, file_url, grade)) {
             result.put("status", "200");
         } else {
             result.put("status", "500");

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

@@ -2,7 +2,6 @@ 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;

+ 10 - 2
src/main/java/edu/nju/dao/ReviewCorrectAnswerDao.java

@@ -21,13 +21,21 @@ public class ReviewCorrectAnswerDao {
         return reviewCorrectAnswer.getId();
     }
 
-    public ReviewCorrectAnswer findCorrectAnswerByReportItem(String reportId,String itemId){
+    public ReviewCorrectAnswer findCorrectAnswerByReportItem(String reportId,String itemId,String jobId){
         Query query = new Query();
-        query.addCriteria(Criteria.where("report_id").is(reportId).and("item_id").is(itemId));
+        query.addCriteria(Criteria.where("report_id").is(reportId).and("item_id").is(itemId).and("job_id").is(jobId));
         List<ReviewCorrectAnswer> answers= mongoOperations.find(query, ReviewCorrectAnswer.class);
         if(answers==null||answers.size()==0){
             return null;
         }
         return answers.get(0);
     }
+
+    public ReviewCorrectAnswer getCorrectAnswerById(String id){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(id));
+        List<ReviewCorrectAnswer> list = mongoOperations.find(query, ReviewCorrectAnswer.class);
+        if(list.size() == 0 || list == null) {return null;}
+        return list.get(0);
+    }
 }

+ 31 - 0
src/main/java/edu/nju/dao/TaskDao.java

@@ -0,0 +1,31 @@
+package edu.nju.dao;
+
+import edu.nju.entities.Task;
+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 TaskDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    public Task save(Task task) {
+        mongoOperations.save(task);
+        return task;
+    }
+
+    public Task findById(String id) {
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(id));
+        List<Task> tasks = mongoOperations.find(query, Task.class);
+        if(tasks == null || tasks.size() == 0) { return null; }
+        else { return tasks.get(0); }
+    }
+
+}

+ 7 - 0
src/main/java/edu/nju/entities/ReviewCorrectAnswer.java

@@ -38,6 +38,13 @@ public class ReviewCorrectAnswer implements java.io.Serializable{
         this.grade = grade;
     }
 
+    public ReviewCorrectAnswer(String item_id, String report_id, String job_id, String paper_id) {
+        this.item_id = item_id;
+        this.report_id = report_id;
+        this.job_id = job_id;
+        this.paper_id = paper_id;
+}
+
     public String getId() {
         return id;
     }

+ 66 - 0
src/main/java/edu/nju/entities/Task.java

@@ -0,0 +1,66 @@
+package edu.nju.entities;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+@Document
+public class Task implements java.io.Serializable {
+
+    private static final long serialVersionUID = -1516005112486541943L;
+
+    private String id;
+
+    private String start_time;
+
+    private String 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) {
+        this.id = id;
+        this.start_time = start_time;
+        this.end_time = end_time;
+        this.total_mins = total_mins;
+        this.write_time = write_time;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getStart_time() {
+        return start_time;
+    }
+
+    public void setStart_time(String start_time) {
+        this.start_time = start_time;
+    }
+
+    public String getEnd_time() {
+        return end_time;
+    }
+
+    public void setEnd_time(String end_time) {
+        this.end_time = end_time;
+    }
+
+    public double getTotal_mins() {
+        return total_mins;
+    }
+
+    public void setTotal_mins(double total_mins) {
+        this.total_mins = total_mins;
+    }
+
+    public double getWrite_time() {
+        return write_time;
+    }
+
+    public void setWrite_time(double write_time) {
+        this.write_time = write_time;
+    }
+}

+ 28 - 0
src/main/java/edu/nju/service/ExtraService.java

@@ -4,6 +4,7 @@ import java.util.*;
 
 import edu.nju.dao.*;
 import edu.nju.entities.*;
+import edu.nju.util.HTTP;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +26,9 @@ public class ExtraService {
 	
 	@Autowired
 	BugDao bugDao;
+
+	@Autowired
+	TaskDao taskDao;
 	
 	//测试用例相关
 	public String saveTestCase(String report_id, String name, String front, String behind, String description) {
@@ -128,5 +132,29 @@ public class ExtraService {
 		return examDao.findById(id);
 	}
 
+	public Task saveTask(String id){
+		String result = HTTP.sendGet("http://114.55.91.83:8191/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;
+			Task task=new Task(id,beginTime,endTime,totalMins,totalMins) ;
+			return taskDao.save(task);
+		}
+		return null;
+	}
+
+	public boolean updateTask(String id,double writeMins){
+		try {
+			Task task =taskDao.findById(id);
+			task.setWrite_time(writeMins);
+			taskDao.save(task);
+			return true;
+		}catch (Exception e){
+			return false;
+		}
+	}
+
 
 }

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

@@ -65,8 +65,7 @@ public class ReviewPaperService {
         try {
             String paperName=crowdReviewReportDTO.getName();
             String paperType=crowdReviewReportDTO.getType();
-            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            String paperId = reviewPaperDao.save(new ReviewPaper(paperName,df.format(System.currentTimeMillis()),paperType));
+            String paperId = reviewPaperDao.save(new ReviewPaper(paperName,Long.toString(System.currentTimeMillis()),paperType));
             String paperJson=initPaperJson(reportArray,paperName,Long.toString(System.currentTimeMillis()),paperType);
             reviewPaperJsonDao.save(new ReviewPaperJson(paperId,paperJson));
             for (int i = 0; i < reportArray.length(); i++) {

+ 20 - 11
src/main/java/edu/nju/service/ReviewService.java

@@ -51,16 +51,23 @@ public class ReviewService {
         }
     }
 
-    public boolean saveCorrectAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List<String> answer,List<String>fileUrl,String grade){
+    public ReviewCorrectAnswer getCorrectAnswerByReportItem(String reportId,String itemId,String jobId){
+        ReviewCorrectAnswer reviewCorrectAnswer= reviewCorrectAnswerDao.findCorrectAnswerByReportItem(reportId,itemId,jobId);
+        if(reviewCorrectAnswer==null){
+            ReviewReport reviewReport=reportDao.findReviewReport(reportId);
+            String paperId=reviewReport.getPaper_id();
+            reviewCorrectAnswer=new ReviewCorrectAnswer(itemId,reportId,jobId,paperId);
+            reviewCorrectAnswerDao.save(reviewCorrectAnswer);
+        }
+        return reviewCorrectAnswer;
+    }
+
+    public boolean updateCorrectAnswer(String answerId,List<String> answer,List<String>fileUrl,String grade){
         try {
-            ReviewCorrectAnswer reviewCorrectAnswer=reviewCorrectAnswerDao.findCorrectAnswerByReportItem(reportId,itemId);
-            if(reviewCorrectAnswer==null){
-                reviewCorrectAnswer=new ReviewCorrectAnswer(itemId,reportId,answer,jobId,paperId,fileUrl,grade);
-            }
-            else{
-                reviewCorrectAnswer.setCorrect_answer(answer);
-                reviewCorrectAnswer.setFile_url(fileUrl);
-            }
+            ReviewCorrectAnswer reviewCorrectAnswer=reviewCorrectAnswerDao.getCorrectAnswerById(answerId);
+            reviewCorrectAnswer.setCorrect_answer(answer);
+            reviewCorrectAnswer.setFile_url(fileUrl);
+            reviewCorrectAnswer.setGrade(grade);
             reviewCorrectAnswerDao.save(reviewCorrectAnswer);
             return true;
         } catch(Exception e) {
@@ -108,8 +115,10 @@ public class ReviewService {
                 String school="";
                 if(result != null && !result.equals("")) {
                     JSONObject json = new JSONObject(result);
-                    name=json.getString("name");
-                    school=json.getString("school");
+                    if(json.has("name"))
+                        name=json.getString("name");
+                    if(json.has("school"))
+                        school=json.getString("school");
                     reviewWorkerVOS.add(new ReviewWorkerVO(reviewWorker,name,school));
                 }
                 else{