JobController.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. package com.mooctest.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.mooctest.data.ResponseDTO;
  6. import com.mooctest.service.JobService;
  7. import com.mooctest.service.PaperService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.*;
  12. import org.springframework.ui.Model;
  13. import java.sql.Timestamp;
  14. import java.util.ArrayList;
  15. import java.util.Collections;
  16. import java.util.Comparator;
  17. import java.util.List;
  18. @Controller
  19. @RequestMapping(value = "/review")
  20. public class JobController {
  21. /**
  22. * 用于reviewJob 众包审核系统的review
  23. */
  24. @Value("${report.host}")
  25. String reportHost;
  26. @Autowired
  27. PaperService paperService;
  28. @Autowired
  29. JobService jobService;
  30. @GetMapping(value = "job")
  31. public String getJob ( Model model, @RequestParam("paperId") String paperId){
  32. // paperId 是这次Job任务所采用的paper的id
  33. JSONObject jsonObject = paperService.getSinglePaper(paperId);
  34. model.addAttribute("paperId",paperId);
  35. model.addAttribute("paperName",jsonObject.getString("name")); // name of paper, for show
  36. return "addReviewJob";
  37. }
  38. //添加一个JOB
  39. @PostMapping(value = "job")
  40. @ResponseBody
  41. public JSONObject postJon ( @RequestParam("paperId")String paperId,@RequestParam("time")String time,
  42. @RequestParam("name") String name, @RequestParam("description") String descriptioin,
  43. @RequestParam("workNum") int workNum,
  44. @RequestParam("itemGroupList") String itemGroupList, @RequestParam("crossCertify") String crossCertify,
  45. @RequestParam("crossCertifyNum") int crossCertifyNum){
  46. JSONObject data = jobService.addJob(name,descriptioin,time,paperId,new ArrayList<String>(),itemGroupList,workNum,crossCertify,crossCertifyNum);
  47. return data;
  48. }
  49. //修改现有的JOB
  50. @PostMapping(value = "/changejob")
  51. @ResponseBody
  52. public JSONObject putJob ( @RequestParam("jobId") String jobId,
  53. @RequestParam("paperId") String paperId,@RequestParam("time")String time,
  54. @RequestParam("name") String name, @RequestParam("description") String descriptioin,
  55. @RequestParam("workers")List<String> workers , @RequestParam("workNum") int workNum,
  56. @RequestParam("itemGroupList") String itemGroupList, @RequestParam("crossCertify") String crossCertify,
  57. @RequestParam("crossCertifyNum") int crossCertifyNum){
  58. JSONObject data = jobService.changeJob(jobId,name,descriptioin,time,paperId,workers,itemGroupList,workNum,crossCertify,crossCertifyNum);
  59. return data;
  60. }
  61. @GetMapping(value = "/jobs")
  62. public String jobs (Model model){
  63. JSONArray jsonArray = jobService.getJobs(); // 所有的数据
  64. for (Object single : jsonArray){
  65. JSONObject temp = (JSONObject) single;
  66. temp.put("create_time",new Timestamp(Long.parseLong(temp.get("create_time").toString()))); // 修改创建时间的格式 以便前段展示
  67. }
  68. // Collections.sort(jsonArray, new Comparator<Object>() {
  69. // @Override
  70. // public int compare(Object o1, Object o2) {
  71. // JSONObject jso1 = (JSONObject) o1;
  72. // JSONObject jso2 = (JSONObject) o2;
  73. // return ((Timestamp)jso1.get("create_time")).compareTo((Timestamp)jso2.get("create_time"));
  74. // }
  75. // });
  76. model.addAttribute("tasks",jsonArray);
  77. model.addAttribute("reportHost",reportHost);
  78. return "jobList";
  79. }
  80. @GetMapping(value = "jobDetail")
  81. public String detail ( Model model , @RequestParam("id") String id){
  82. JSONObject res = jobService.getSinglePaper(id); // 获取job的详细信息
  83. model.addAttribute("data",res);
  84. return "jobDetail";
  85. }
  86. @GetMapping(value = "/changeJob")
  87. public String change ( Model model , @RequestParam("id") String id){
  88. //参数为对应JOB的id
  89. try {
  90. JSONObject detail = jobService.getSinglePaper(id);
  91. model.addAttribute("job",detail);
  92. JSONObject paper = paperService.getSinglePaper((String)detail.get("paper_id"));
  93. model.addAttribute("paper",paper);
  94. String distribute = jobService.getDistribution(id);
  95. model.addAttribute("distribute" , distribute);
  96. String workerStr = jobService.getWrokers(id).toString();
  97. model.addAttribute("workers",workerStr.substring(1,workerStr.length()-1));
  98. model.addAttribute("reportHost",reportHost);
  99. return "changeReviewJob";
  100. }catch (Exception e){
  101. //返回异常,
  102. return "error";
  103. }
  104. }
  105. @GetMapping(value = "/export")
  106. public String export ( Model model , @RequestParam("id") String id ){
  107. JSONArray array = jobService.export(id);
  108. model.addAttribute("datas",array);
  109. return "exportExcel";
  110. }
  111. // @PostMapping(value = "jobDistribute")
  112. // public ResponseDTO jobDistribute (@RequestParam("id")String jobId){
  113. // //huoqu fenpei xinxi
  114. //
  115. // }
  116. private List<String> getUserList(int i ){
  117. List<String > res = new ArrayList<>();
  118. while(i-->0){
  119. res.add(i+"");
  120. }
  121. return res;
  122. }
  123. private boolean isEdu(JSONObject job ){
  124. // is the job form edu
  125. try {
  126. return true;
  127. }catch (Exception x){
  128. return false;
  129. }
  130. }
  131. }