ReviewService.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. package edu.nju.service;
  2. import edu.nju.dao.*;
  3. import edu.nju.entities.*;
  4. import edu.nju.model.ReviewWorkerVO;
  5. import edu.nju.util.HTTP;
  6. import org.json.JSONObject;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11. @Service
  12. public class ReviewService {
  13. @Autowired
  14. ReviewItemDao itemDao;
  15. @Autowired
  16. ReviewJobDao jobDao;
  17. @Autowired
  18. ReviewAnswerDao answerDao;
  19. @Autowired
  20. ReviewGroupDao groupDao;
  21. @Autowired
  22. ReviewReportDao reportDao;
  23. @Autowired
  24. ReviewWorkerDao reviewWorkerDao;
  25. @Autowired
  26. ReviewCorrectAnswerDao reviewCorrectAnswerDao;
  27. public ReviewJob getJob(String job_id){
  28. return jobDao.findJob(job_id);
  29. }
  30. public List<ReviewJob> getJobs(){
  31. return jobDao.findJobs();
  32. }
  33. public ReviewAnswer getAnswerByWorkerReportItem(String reportId,String workerId,String itemId){
  34. return answerDao.findAnswerByWorkerReportItem(reportId,workerId, itemId);
  35. }
  36. public boolean saveAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List<String>answers,List<String>fileUrl){
  37. try {
  38. ReviewAnswer reviewAnswer=getAnswerByWorkerReportItem(reportId,workerId,itemId);
  39. if(reviewAnswer==null){
  40. reviewAnswer=new ReviewAnswer(itemId,reportId,answers,workerId,fileUrl,jobId,paperId);
  41. }
  42. else{
  43. reviewAnswer.setAnswers(answers);
  44. reviewAnswer.setFile_url(fileUrl);
  45. }
  46. answerDao.save(reviewAnswer);
  47. return true;
  48. } catch(Exception e) {
  49. e.printStackTrace();
  50. return false;
  51. }
  52. }
  53. public boolean saveCorrectAnswer(String itemId, String reportId,String workerId,String paperId, String jobId,List<String> answer,List<String>fileUrl,String grade){
  54. try {
  55. ReviewCorrectAnswer reviewCorrectAnswer=reviewCorrectAnswerDao.findCorrectAnswerByReportItem(reportId,itemId);
  56. if(reviewCorrectAnswer==null){
  57. reviewCorrectAnswer=new ReviewCorrectAnswer(itemId,reportId,answer,jobId,paperId,fileUrl,grade);
  58. }
  59. else{
  60. reviewCorrectAnswer.setCorrect_answer(answer);
  61. reviewCorrectAnswer.setFile_url(fileUrl);
  62. }
  63. reviewCorrectAnswerDao.save(reviewCorrectAnswer);
  64. return true;
  65. } catch(Exception e) {
  66. e.printStackTrace();
  67. return false;
  68. }
  69. }
  70. public List<ReviewReport>getReportsByWorkerJob(String worker_id,String job_id){
  71. List<String>reportIds = groupDao.getReportsByUserJob(worker_id, job_id);
  72. List<ReviewReport>reports=new ArrayList<>();
  73. if(reportIds==null||reportIds.size()==0){
  74. return null;
  75. }else{
  76. for(int i=0;i<reportIds.size();i++){
  77. reports.add(reportDao.findReviewReport(reportIds.get(i)));
  78. }
  79. }
  80. return reports;
  81. }
  82. public List<ReviewItem> getItemsByReport(String report_id){
  83. List<ReviewItem> items=itemDao.findItemsByReport(report_id);
  84. return items;
  85. }
  86. public List<String> getReportsByItem(String item_id){
  87. ReviewItem item=itemDao.findById(item_id);
  88. if(item==null){
  89. return null;
  90. }
  91. else{
  92. return item.getReport_id();
  93. }
  94. }
  95. public List<ReviewWorkerVO>getWorkersByJob(String jobId){
  96. List<ReviewWorker>reviewWorkers=reviewWorkerDao.getWorkersByJob(jobId);
  97. List<ReviewWorkerVO>reviewWorkerVOS=new ArrayList<>();
  98. try {
  99. for(int i=0;i<reviewWorkers.size();i++){
  100. ReviewWorker reviewWorker=reviewWorkers.get(i);
  101. String result = HTTP.sendGet("http://114.55.91.83:8191/api/user/" + reviewWorker.getOriginal_id(), "");
  102. String name="";
  103. String school="";
  104. if(result != null && !result.equals("")) {
  105. JSONObject json = new JSONObject(result);
  106. name=json.getString("name");
  107. school=json.getString("school");
  108. }
  109. reviewWorkerVOS.add(new ReviewWorkerVO(reviewWorker,name,school));
  110. }
  111. } catch (Exception e) {
  112. e.printStackTrace();
  113. }
  114. return reviewWorkerVOS;
  115. }
  116. public List<ReviewAnswer>getItemReportJobAnswers(String itemId, String reportId,String jobId){
  117. return answerDao.getItemReportJobAnswers(itemId,reportId,jobId);
  118. }
  119. public boolean setGrade(String itemId, String reportId, String workerId,String grade){
  120. try {
  121. ReviewAnswer reviewAnswer=answerDao.findAnswerByWorkerReportItem(reportId,workerId,itemId);
  122. if(reviewAnswer==null){
  123. return false;
  124. }
  125. else{
  126. reviewAnswer.setGrade(grade);
  127. }
  128. return true;
  129. } catch(Exception e) {
  130. e.printStackTrace();
  131. return false;
  132. }
  133. }
  134. }