Bladeren bron

添加查看某个item,report,job下所有答案的接口

MengyangDuan 5 jaren geleden
bovenliggende
commit
f7d3ed52be

+ 26 - 26
src/main/java/edu/nju/controller/ReviewController.java

@@ -52,22 +52,6 @@ public class ReviewController {
         }
     }
 
-//    @RequestMapping(value = "/getItemsByJob")
-//    @ResponseBody
-//    public void getItemListByJobId(String job_id, HttpServletResponse response){
-//        try {
-//            PrintWriter out = response.getWriter();
-//            List<ReviewItem> items = iservice.getJobItems(job_id);
-//            out.print(new JSONArray(items));
-//            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){
@@ -85,10 +69,10 @@ public class ReviewController {
 
     @RequestMapping(value = "/getItemsByReport")
     @ResponseBody
-    public void getItemsByReport(String report_id, HttpServletResponse response){
+    public void getItemsByReport(String reportId, HttpServletResponse response){
         try {
             PrintWriter out = response.getWriter();
-            List<ReviewItem> items = iservice.getItemsByReport(report_id);
+            List<ReviewItem> items = iservice.getItemsByReport(reportId);
             out.print(new JSONArray(items));
             out.flush();
             out.close();
@@ -134,11 +118,26 @@ public class ReviewController {
         }
     }
 
-    @RequestMapping(value = "/updateAnswer", method = RequestMethod.POST)
+    @RequestMapping(value = "/getWorkersByJob")
+    @ResponseBody
+    public void getWorkers(String jobId, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            List<ReviewWorkerVO> reviewWorkerVOs = iservice.getWorkersByJob(jobId);
+            out.print(new JSONArray(reviewWorkerVOs));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/saveCorrectAnswer", method = RequestMethod.POST)
     @ResponseBody
-    public void updateAnswer(String id, @RequestParam("answers")List<String>answers,@RequestParam("attachment_location") List<String> file_url, HttpServletResponse response){
+    public void updateCorrectAnswer(String itemId,String reportId, String workerId,String paperId,String jobId,String answer,@RequestParam("attachment_location") List<String> file_url, String grade, HttpServletResponse response) {
         JSONObject result = new JSONObject();
-        if(iservice.updateAnswer(id, answers, file_url)){
+        if (iservice.saveCorrectAnswer(itemId, reportId, workerId, paperId, jobId, answer, file_url, grade)) {
             result.put("status", "200");
         } else {
             result.put("status", "500");
@@ -148,19 +147,19 @@ public class ReviewController {
             out.print(result);
             out.flush();
             out.close();
-        }catch (IOException e) {
+        } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
 
-    @RequestMapping(value = "/getWorkersByJob")
+    @RequestMapping(value = "/getItemAnswers")
     @ResponseBody
-    public void getWorkers(String jobId, HttpServletResponse response){
+    public void getItemReportJobAnswers(String itemId, String reportId,String jobId, HttpServletResponse response){
         try {
             PrintWriter out = response.getWriter();
-            List<ReviewWorkerVO> reviewWorkerVOs = iservice.getWorkersByJob(jobId);
-            out.print(new JSONArray(reviewWorkerVOs));
+            List<ReviewAnswer> reviewAnswers = iservice.getItemReportJobAnswers(itemId,reportId,jobId);
+            out.print(new JSONArray(reviewAnswers));
             out.flush();
             out.close();
         }catch (IOException e) {
@@ -168,4 +167,5 @@ public class ReviewController {
             e.printStackTrace();
         }
     }
+
 }

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

@@ -38,4 +38,11 @@ public class ReviewAnswerDao {
         if(list.size() == 0 || list == null) {return null;}
         return list.get(0);
     }
+
+    public List<ReviewAnswer>getItemReportJobAnswers(String itemId,String reportId,String jobId){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("item_id").is(itemId).and("report_id").is(reportId).and("job_id").is(jobId));
+        List<ReviewAnswer> answers= mongoOperations.find(query, ReviewAnswer.class);
+        return answers;
+    }
 }

+ 14 - 0
src/main/java/edu/nju/dao/ReviewCorrectAnswerDao.java

@@ -4,8 +4,12 @@ package edu.nju.dao;
 import edu.nju.entities.ReviewCorrectAnswer;
 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 ReviewCorrectAnswerDao {
 
@@ -16,4 +20,14 @@ public class ReviewCorrectAnswerDao {
         mongoOperations.save(reviewCorrectAnswer);
         return reviewCorrectAnswer.getId();
     }
+
+    public ReviewCorrectAnswer findCorrectAnswerByReportItem(String reportId,String itemId){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("report_id").is(reportId).and("item_id").is(itemId));
+        List<ReviewCorrectAnswer> answers= mongoOperations.find(query, ReviewCorrectAnswer.class);
+        if(answers==null||answers.size()==0){
+            return null;
+        }
+        return answers.get(0);
+    }
 }

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

@@ -25,6 +25,8 @@ public class ReviewService {
     ReviewReportDao reportDao;
     @Autowired
     ReviewWorkerDao reviewWorkerDao;
+    @Autowired
+    ReviewCorrectAnswerDao reviewCorrectAnswerDao;
 
     public ReviewJob getJob(String job_id){
         return jobDao.findJob(job_id);
@@ -38,13 +40,17 @@ public class ReviewService {
         return answerDao.findAnswerByWorkerReportItem(reportId,workerId, itemId);
     }
 
-    public boolean updateAnswer(String id, List<String>answers,List<String> file_url){
+    public boolean saveAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List<String>answers,List<String>fileUrl){
         try {
-            if(id == null || id.equals("undefined")) { return false; }
-            ReviewAnswer answer=answerDao.getAnswerById(id);
-            answer.setAnswers(answers);
-            answer.setFile_url(file_url);
-            answerDao.save(answer);
+            ReviewAnswer reviewAnswer=getAnswerByWorkerReportItem(reportId,workerId,itemId);
+            if(reviewAnswer==null){
+                reviewAnswer=new ReviewAnswer(itemId,reportId,answers,workerId,fileUrl,jobId,paperId);
+            }
+            else{
+                reviewAnswer.setAnswers(answers);
+                reviewAnswer.setFile_url(fileUrl);
+            }
+            answerDao.save(reviewAnswer);
             return true;
         } catch(Exception e) {
             e.printStackTrace();
@@ -52,10 +58,22 @@ public class ReviewService {
         }
     }
 
-    public boolean saveAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List<String>answers,List<String>fileUrl){
-        ReviewAnswer reviewAnswer=new ReviewAnswer(itemId,reportId,answers,workerId,fileUrl,jobId,paperId);
-        answerDao.save(reviewAnswer);
-        return true;
+    public boolean saveCorrectAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,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);
+            }
+            reviewCorrectAnswerDao.save(reviewCorrectAnswer);
+            return true;
+        } catch(Exception e) {
+            e.printStackTrace();
+            return false;
+        }
     }
 
     public List<ReviewReport>getReportsByWorkerJob(String worker_id,String job_id){
@@ -108,5 +126,9 @@ public class ReviewService {
         return reviewWorkerVOS;
     }
 
+    public List<ReviewAnswer>getItemReportJobAnswers(String itemId, String reportId,String jobId){
+       return answerDao.getItemReportJobAnswers(itemId,reportId,jobId);
+    }
+
 
 }