insomniaLee 5 роки тому
батько
коміт
a02e45ea27

+ 2 - 0
src/main/java/com/mooctest/controller/JobController.java

@@ -104,9 +104,11 @@ public class JobController {
         JSONObject res  = jobService.getSinglePaper(id); // 获取job的详细信息
         changeJobTime(res);
         JSONObject paper = paperService.getSinglePaper((String)res.get("paper_id"));
+        JSONArray userScores = jobService.getJobScore(id);
         model.addAttribute("paper",paper);
         model.addAttribute("data",res);
         model.addAttribute("reportHost",reportHost);
+//        model.addAttribute("")
         return "jobDetail";
     }
 

+ 2 - 1
src/main/java/com/mooctest/controller/TaskController.java

@@ -66,7 +66,8 @@ public class TaskController {
     public String distributePeople (@RequestParam("examId") String examId,
                                     @RequestParam("caseId")String caseId){
         if(caseId == null || caseId.length()==0) return "fail";
-        return taskService.distribute(caseId+examId)?"success":"fail";
+
+        return taskService.distribute(examId,caseId)?"success":"fail";
     }
 
 

+ 40 - 1
src/main/java/com/mooctest/service/JobService.java

@@ -18,6 +18,7 @@ import org.springframework.web.client.RestTemplate;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -103,7 +104,7 @@ public class JobService {
         RestTemplate template = new RestTemplate();
         String url = auditDistributeUrl+"updateAbility";
         MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
-        paramMap.add("jobId","dynamic100");
+        paramMap.add("jobId",jobId);
         template.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
         HttpHeaders headers = new HttpHeaders();
         HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(paramMap,headers);
@@ -140,6 +141,44 @@ public class JobService {
         return  tasksJson;
     }
 
+    public JSONArray getJobScore(String jobId){
+        RestTemplate template = new RestTemplate();
+        String url = auditDistributeUrl+"userScore";
+        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
+        paramMap.add("jobId",jobId);
+        template.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(paramMap,headers);
+        ResponseEntity<String> response2 = template.postForEntity(url, httpEntity, String.class);
+        JSONObject tasksJson = JSON.parseObject(response2.getBody());
+        JSONArray array = new JSONArray();
+        Iterator<String> sIterator = tasksJson.keySet().iterator();
+        while(sIterator.hasNext()){
+            // 获得key
+            String key = sIterator.next();
+            // 根据key获得value, value也可以是JSONObject,JSONArray,使用对应的参数接收即可
+            String value = tasksJson.getString(key);
+            JSONObject object = new JSONObject();
+            object.fluentPut("id",key);
+            object.fluentPut("score",value);
+            object.fluentPut("name",findUserNameById(key));
+            array.add(object);
+        }
+        return  array;
+    }
+
+    private String  findUserNameById(String id){
+        RestTemplate rt = new RestTemplate();
+        StringHttpMessageConverter stringHttpMessageConverter=new StringHttpMessageConverter(Charset.forName("UTF-8"));
+        List<HttpMessageConverter<?>> list=new ArrayList<HttpMessageConverter<?>>();
+        list.add(stringHttpMessageConverter);
+        rt.setMessageConverters(list);
+        String str = "http://114.55.91.83:8191/api/user/"+id;
+        JSONObject tasksJson = JSON.parseObject(rt.getForObject(str , String.class));
+        if(tasksJson == null || tasksJson.get("name")==null) return "No Name";
+        return tasksJson.get("name").toString();
+    }
+
 
     public JSONArray getJobs(){
         RestTemplate rt = new RestTemplate();

+ 16 - 5
src/main/java/com/mooctest/service/TaskService.java

@@ -187,15 +187,26 @@ public class TaskService {
 //
 //    }
 
-    public boolean distribute(String taskId){
+    public boolean distribute(String examId,String caseId){
         RestTemplate template = new RestTemplate();
         String url = distributeUrl+"team/dopreteam";
-        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
-        paramMap.add("id",taskId);
+        JSONObject vo = new JSONObject();
+        vo.fluentPut("clusterNum",4); // 默认大小
+        vo.fluentPut("peopleSizeInTeam",4); // 默认大小
+        JSONObject exam = new JSONObject();
+        TaskDTO task = getByExamIdAndCaseId(Long.parseLong(examId),Long.parseLong(caseId));
+        exam.fluentPut("beginTime",TimeUtil.timestampTo24format(Long.parseLong(task.getStartTime())));
+        exam.fluentPut("endTime",TimeUtil.timestampTo24format(Long.parseLong(task.getEndTime())));
+        exam.fluentPut("caseTakeId",examId + "-" + caseId);
+        exam.fluentPut("caseTypeId",0); // 默认是app类型的
+        exam.fluentPut("state",0);
+        exam.fluentPut("groupId",0); // 需要从前端获取
+        exam.fluentPut("id",0);
+        vo.fluentPut("exam",exam);
         template.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
         HttpHeaders headers = new HttpHeaders();
-        HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<MultiValueMap<String, Object>>(paramMap,headers);
-        ResponseEntity<String> response2 = template.postForEntity(url, httpEntity, String.class);
+        HttpEntity<String> entity = new HttpEntity<String>(vo.toJSONString(),headers);
+        ResponseEntity<String> response2 = template.postForEntity(url, entity, String.class);
         JSONArray tasksJson = JSON.parseArray(response2.getBody());
         return  tasksJson != null;
     }

+ 7 - 1
src/main/java/com/mooctest/util/TimeUtil.java

@@ -1,5 +1,6 @@
 package com.mooctest.util;
 
+import javax.xml.crypto.Data;
 import java.sql.Time;
 import java.text.DateFormat;
 import java.text.ParseException;
@@ -10,9 +11,14 @@ import java.util.Date;
 public class TimeUtil {
 
     static DateFormat dateFormat = new SimpleDateFormat("MM/dd/YYYY hh:mm a");
-
     static DateFormat dateFormatTimeStamp = new SimpleDateFormat("MM/dd/yyyy HH:mm a");
     static DateFormat dateFormatSimple = new SimpleDateFormat("YYYY-MM-dd");
+    static DateFormat dateFormat24 = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
+
+    public static String timestampTo24format (Long timestamp ){
+        Date d = new Date(timestamp);
+        return dateFormat24.format(d);
+    }
 
     public static String timestamp2str (String timestamp ) {
         try {

+ 5 - 0
src/main/resources/templates/add_paper.html

@@ -191,6 +191,11 @@
                                     <option>Web自动化扫描</option>
                                     <option>众包测试</option>
                                     <option>客观题</option>
+                                    <option>漏洞扫描Java</option>
+                                    <option>漏洞扫描C++</option>
+                                    <option>App功能</option>
+                                    <option>Web功能</option>
+
                                 </select>
                             </div>
                         </div>

+ 5 - 0
src/main/resources/templates/changePaper.html

@@ -204,6 +204,11 @@
                                     <option>Java自动化扫描</option>
                                     <option>Web自动化扫描</option>
                                     <option>众包测试</option>
+                                    <option>客观题</option>
+                                    <option>漏洞扫描Java</option>
+                                    <option>漏洞扫描C++</option>
+                                    <option>App功能</option>
+                                    <option>Web功能</option>
                                 </select>
                             </div>
                         </div>