package com.mooctest.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.mooctest.data.ResponseDTO; import com.mooctest.service.JobService; import com.mooctest.service.PaperService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.ui.Model; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; @Controller @RequestMapping(value = "/review") public class JobController { /** * 用于reviewJob 众包审核系统的review */ @Value("${report.host}") String reportHost; @Autowired PaperService paperService; @Autowired JobService jobService; @GetMapping(value = "job") public String getJob ( Model model, @RequestParam("paperId") String paperId){ // paperId 是这次Job任务所采用的paper的id JSONObject jsonObject = paperService.getSinglePaper(paperId); model.addAttribute("paperId",paperId); model.addAttribute("paperName",jsonObject.getString("name")); // name of paper, for show return "addReviewJob"; } //添加一个JOB @PostMapping(value = "job") @ResponseBody public JSONObject postJon ( @RequestParam("paperId")String paperId,@RequestParam("time")String time, @RequestParam("name") String name, @RequestParam("description") String descriptioin, @RequestParam("workNum") int workNum, @RequestParam("itemGroupList") String itemGroupList, @RequestParam("crossCertify") String crossCertify, @RequestParam("crossCertifyNum") int crossCertifyNum){ JSONObject data = jobService.addJob(name,descriptioin,time,paperId,new ArrayList(),itemGroupList,workNum,crossCertify,crossCertifyNum); return data; } //修改现有的JOB @PostMapping(value = "/changejob") @ResponseBody public JSONObject putJob ( @RequestParam("jobId") String jobId, @RequestParam("paperId") String paperId,@RequestParam("time")String time, @RequestParam("name") String name, @RequestParam("description") String descriptioin, @RequestParam("workers")List workers , @RequestParam("workNum") int workNum, @RequestParam("itemGroupList") String itemGroupList, @RequestParam("crossCertify") String crossCertify, @RequestParam("crossCertifyNum") int crossCertifyNum){ JSONObject data = jobService.changeJob(jobId,name,descriptioin,time,paperId,workers,itemGroupList,workNum,crossCertify,crossCertifyNum); return data; } @GetMapping(value = "/jobs") public String jobs (Model model){ JSONArray jsonArray = jobService.getJobs(); // 所有的数据 for (Object single : jsonArray){ JSONObject temp = (JSONObject) single; temp.put("create_time",new Timestamp(Long.parseLong(temp.get("create_time").toString()))); // 修改创建时间的格式 以便前段展示 } // Collections.sort(jsonArray, new Comparator() { // @Override // public int compare(Object o1, Object o2) { // JSONObject jso1 = (JSONObject) o1; // JSONObject jso2 = (JSONObject) o2; // return ((Timestamp)jso1.get("create_time")).compareTo((Timestamp)jso2.get("create_time")); // } // }); model.addAttribute("tasks",jsonArray); model.addAttribute("reportHost",reportHost); return "jobList"; } @GetMapping(value = "jobDetail") public String detail ( Model model , @RequestParam("id") String id){ JSONObject res = jobService.getSinglePaper(id); // 获取job的详细信息 model.addAttribute("data",res); return "jobDetail"; } @GetMapping(value = "/changeJob") public String change ( Model model , @RequestParam("id") String id){ //参数为对应JOB的id try { JSONObject detail = jobService.getSinglePaper(id); model.addAttribute("job",detail); JSONObject paper = paperService.getSinglePaper((String)detail.get("paper_id")); model.addAttribute("paper",paper); String distribute = jobService.getDistribution(id); model.addAttribute("distribute" , distribute); String workerStr = jobService.getWrokers(id).toString(); model.addAttribute("workers",workerStr.substring(1,workerStr.length()-1)); model.addAttribute("reportHost",reportHost); return "changeReviewJob"; }catch (Exception e){ //返回异常, return "error"; } } @GetMapping(value = "/export") public String export ( Model model , @RequestParam("id") String id ){ JSONArray array = jobService.export(id); model.addAttribute("datas",array); return "exportExcel"; } // @PostMapping(value = "jobDistribute") // public ResponseDTO jobDistribute (@RequestParam("id")String jobId){ // //huoqu fenpei xinxi // // } private List getUserList(int i ){ List res = new ArrayList<>(); while(i-->0){ res.add(i+""); } return res; } private boolean isEdu(JSONObject job ){ // is the job form edu try { return true; }catch (Exception x){ return false; } } }