package edu.nju.service; import edu.nju.dao.*; import edu.nju.entities.*; import edu.nju.model.ReviewWorkerVO; import edu.nju.util.HTTP; import org.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @Service public class ReviewService { @Autowired ReviewItemDao itemDao; @Autowired ReviewJobDao jobDao; @Autowired ReviewAnswerDao answerDao; @Autowired ReviewGroupDao groupDao; @Autowired ReviewReportDao reportDao; @Autowired ReviewWorkerDao reviewWorkerDao; @Autowired ReviewCorrectAnswerDao reviewCorrectAnswerDao; public ReviewJob getJob(String job_id){ return jobDao.findJob(job_id); } public List getJobs(){ return jobDao.findJobs(); } public ReviewAnswer getAnswerByWorkerReportItem(String reportId,String workerId,String itemId){ return answerDao.findAnswerByWorkerReportItem(reportId,workerId, itemId); } public boolean saveAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,Listanswers,ListfileUrl){ try { 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(); return false; } } public boolean saveCorrectAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List answer,ListfileUrl,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 ListgetReportsByWorkerJob(String worker_id,String job_id){ ListreportIds = groupDao.getReportsByUserJob(worker_id, job_id); Listreports=new ArrayList<>(); if(reportIds==null||reportIds.size()==0){ return null; }else{ for(int i=0;i getItemsByReport(String report_id){ List items=itemDao.findItemsByReport(report_id); return items; } public List getReportsByItem(String item_id){ ReviewItem item=itemDao.findById(item_id); if(item==null){ return null; } else{ return item.getReport_id(); } } public ListgetWorkersByJob(String jobId){ ListreviewWorkers=reviewWorkerDao.getWorkersByJob(jobId); ListreviewWorkerVOS=new ArrayList<>(); try { for(int i=0;igetItemReportJobAnswers(String itemId, String reportId,String jobId){ return answerDao.getItemReportJobAnswers(itemId,reportId,jobId); } public boolean setGrade(String itemId, String reportId, String workerId,String grade){ try { ReviewAnswer reviewAnswer=answerDao.findAnswerByWorkerReportItem(reportId,workerId,itemId); if(reviewAnswer==null){ return false; } else{ reviewAnswer.setGrade(grade); } return true; } catch(Exception e) { e.printStackTrace(); return false; } } }