瀏覽代碼

上传uploadJobByJson接口,以及对获得人员学校姓名接口的修改

MengyangDuan 5 年之前
父節點
當前提交
ce274a5f97

+ 0 - 1
src/main/java/edu/nju/controller/ReportController.java

@@ -60,7 +60,6 @@ public class ReportController {
 		}
 	}
 
-	@AuthRequired
 	@RequestMapping(value = "/reportReview")
 	@ResponseBody
 	public void getReportReview(String report_id, String case_take_id, HttpServletResponse response) {

+ 5 - 11
src/main/java/edu/nju/controller/ReviewJobController.java

@@ -1,6 +1,8 @@
 package edu.nju.controller;
 
 import edu.nju.entities.ReviewJob;
+import edu.nju.model.JobJsonDTO;
+import edu.nju.model.MessageVO;
 import edu.nju.service.ReviewJobService;
 import org.json.JSONArray;
 import org.json.JSONObject;
@@ -76,17 +78,9 @@ public class ReviewJobController {
 
     @RequestMapping(value = "/uploadJobByJson", method = RequestMethod.POST)
     @ResponseBody
-    public void uploadJobByJson(String jobJson, HttpServletResponse response){
-        try {
-            PrintWriter out = response.getWriter();
-            JSONObject result = reviewJobService.uploadJobByJson(jobJson);
-            out.print(result);
-            out.flush();
-            out.close();
-        }catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
+    public MessageVO uploadJobByJson(@RequestBody JobJsonDTO jobJsonDTO){
+        MessageVO result = reviewJobService.uploadJobByJson(jobJsonDTO);
+        return result;
     }
 
     @RequestMapping(value = "/updateJob", method = RequestMethod.POST)

+ 71 - 0
src/main/java/edu/nju/model/JobJsonDTO.java

@@ -0,0 +1,71 @@
+package edu.nju.model;
+
+public class JobJsonDTO {
+    String job_name;
+    String job_description;
+    String start_time;
+    String end_time;
+    String worker_list;
+    String paperUrl;
+
+    public JobJsonDTO(String job_name, String job_description, String start_time, String end_time, String worker_list, String paperUrl) {
+        this.job_name = job_name;
+        this.job_description = job_description;
+        this.start_time = start_time;
+        this.end_time = end_time;
+        this.worker_list = worker_list;
+        this.paperUrl = paperUrl;
+    }
+
+    public JobJsonDTO(){
+
+    }
+
+    public String getJob_name() {
+        return job_name;
+    }
+
+    public void setJob_name(String job_name) {
+        this.job_name = job_name;
+    }
+
+    public String getJob_description() {
+        return job_description;
+    }
+
+    public void setJob_description(String job_description) {
+        this.job_description = job_description;
+    }
+
+    public String getStart_time() {
+        return start_time;
+    }
+
+    public void setStart_time(String start_time) {
+        this.start_time = start_time;
+    }
+
+    public String getEnd_time() {
+        return end_time;
+    }
+
+    public void setEnd_time(String end_time) {
+        this.end_time = end_time;
+    }
+
+    public String getWorker_list() {
+        return worker_list;
+    }
+
+    public void setWorker_list(String worker_list) {
+        this.worker_list = worker_list;
+    }
+
+    public String getPaperUrl() {
+        return paperUrl;
+    }
+
+    public void setPaperUrl(String paperUrl) {
+        this.paperUrl = paperUrl;
+    }
+}

+ 30 - 0
src/main/java/edu/nju/model/MessageVO.java

@@ -0,0 +1,30 @@
+package edu.nju.model;
+
+public class MessageVO {
+    String status;
+    String message;
+
+    public MessageVO(String status, String message) {
+        this.status = status;
+        this.message = message;
+    }
+
+    public MessageVO() {
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 15 - 11
src/main/java/edu/nju/service/ExtraService.java

@@ -133,17 +133,21 @@ public class ExtraService {
 	}
 
 	public Task saveTask(String id){
-//		String result = HTTP.sendGet("http://114.55.91.83:8191/api/exam/" + id+"/info", "");
-//		if(result != null && !result.equals("")) {
-//			JSONObject json = new JSONObject(result);
-//			String beginTime=json.getString("beginTime");
-//			String endTime=json.getString("endTime");
-//			double totalMins=(Long.parseLong(endTime)-Long.parseLong(beginTime))/1000/60.0;
-//			Task task=new Task(id,beginTime,endTime,totalMins,totalMins) ;
-//			return taskDao.save(task);
-//		}
-//		return null;
-		return taskDao.findById(id);
+		Task task=taskDao.findById(id);
+		if(task!=null)
+			return task;
+		String result = HTTP.sendGet("http://114.55.91.83:8191/api/exam/" + id + "/info", "");
+		if (result != null && !result.equals("")) {
+			JSONObject json = new JSONObject(result);
+			String beginTime = json.getString("beginTime");
+			String endTime = json.getString("endTime");
+			double totalMins = (Long.parseLong(endTime) - Long.parseLong(beginTime)) / 1000 / 60.0;
+			Task newTask = new Task(id, beginTime, endTime, totalMins, totalMins);
+			taskDao.save(newTask);
+			return newTask;
+		}
+		return null;
+//		return taskDao.findById(id);
 	}
 
 	public boolean updateTask(String id,double writeMins){

+ 31 - 43
src/main/java/edu/nju/service/ReviewJobService.java

@@ -2,15 +2,22 @@ package edu.nju.service;
 
 import edu.nju.dao.*;
 import edu.nju.entities.*;
+import edu.nju.model.JobJsonDTO;
+import edu.nju.model.MessageVO;
 import edu.nju.model.ReviewPaperVO;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+
+import static edu.nju.util.HTTP.readStringFromUrl;
+
 @Service
 public class ReviewJobService {
 
@@ -50,54 +57,35 @@ public class ReviewJobService {
         return jobId;
     }
 
-    public JSONObject uploadJobByJson(String jobJson){
-        JSONObject object = new JSONObject();
-        JSONObject jsonObject = new JSONObject(jobJson);
-        String jobName = jsonObject.getString("job_name");
-        String jobDescription = jsonObject.getString("job_description");
-        String startTime = jsonObject.getString("start_time");
-        String endTime = jsonObject.getString("end_time");
-        JSONArray workerArray = jsonObject.getJSONArray("worker_list");
+    public MessageVO uploadJobByJson(@RequestBody JobJsonDTO jobJsonDTO){
+        String jobName=jobJsonDTO.getJob_name();
+        String jobDescription=jobJsonDTO.getJob_description();
+        String startTime=jobJsonDTO.getStart_time();
+        String endTime=jobJsonDTO.getEnd_time();
+        JSONArray workerList_Array=new JSONArray(jobJsonDTO.getWorker_list());
+        String paperUrl=jobJsonDTO.getPaperUrl();
         List<String>workerList=new ArrayList<>();
-        for(int i=0;i<workerArray.length();i++){
-            workerList.add(String.valueOf(workerArray.get(i)));
-        }
-        JSONObject paperObject = jsonObject.getJSONObject("paper");
-        String result=checkJob(jobJson);
-        if(!result.equals("success")){
-            object.put("status","fail");
-            object.put("message",result);
-            return object;
+        for(int i=0;i<workerList_Array.length();i++){
+            workerList.add(String.valueOf(workerList_Array.get(i)));
         }
-        JSONObject paperResult = reviewPaperService.savePaper(String.valueOf(paperObject));
-        if(!paperResult.has("paperId")){
-            object.put("status","fail");
-            object.put("message","创建paper失败");
-            return object;
-        }
-        String paperId=paperResult.getString("paperId");
-        String jobId=uploadJob(jobName,jobDescription,paperId,startTime,endTime,workerList,"");
-        return object;
-    }
-
-    public String checkJob(String jobJson){
-        String result="success";
+        MessageVO messageVO=new MessageVO();
         try {
-            JSONObject jsonObject = new JSONObject(jobJson);
-            String jobName = jsonObject.getString("job_name");
-            String jobDescription = jsonObject.getString("job_description");
-            String startTime = jsonObject.getString("start_time");
-            String endTime = jsonObject.getString("end_time");
-            JSONArray workerList = jsonObject.getJSONArray("worker_list");
-            JSONObject paperObject = jsonObject.getJSONObject("paper");
-            String paperCheck=reviewPaperService.checkPaper(String.valueOf(paperObject));
-            if(!paperCheck.equals("success")){
-                result=paperCheck;
+            String paperJson=readStringFromUrl(paperUrl);
+            JSONObject paperResult=reviewPaperService.uploadPaper(paperJson);
+            if(!paperResult.getString("status").equals("success")){
+                messageVO.setStatus("500");
+                messageVO.setMessage("创建paper失败");
+                return messageVO;
             }
-        }catch (Exception e){
-            result=e.getMessage();
+            String paperId=paperResult.getString("paperId");
+            String jobId=uploadJob(jobName,jobDescription,paperId,startTime,endTime,workerList,"");
+            messageVO.setStatus("200");
+            messageVO.setMessage(jobId);
+        } catch (IOException e) {
+            messageVO.setStatus("500");
+            messageVO.setMessage(e.getMessage());
         }
-        return result;
+        return messageVO;
     }
 
     public boolean updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution){

+ 6 - 6
src/main/java/edu/nju/service/ReviewService.java

@@ -116,14 +116,14 @@ public class ReviewService {
                 if(result != null && !result.equals("")) {
                     JSONObject json = new JSONObject(result);
                     if(json.has("name")) {
-                        name = json.getString("name");
-                        if(name==null)
-                            name="";
+                        String temp = json.getString("name");
+                        if(temp!=null)
+                            name=temp;
                     }
                     if(json.has("school")) {
-                        school = json.getString("school");
-                        if(school==null)
-                            school="";
+                        String temp = json.getString("school");
+                        if(temp!=null)
+                            school=temp;
                     }
                     reviewWorkerVOS.add(new ReviewWorkerVO(reviewWorker,name,school));
                 }

+ 24 - 0
src/main/java/edu/nju/util/HTTP.java

@@ -1,9 +1,12 @@
 package edu.nju.util;
 
+import org.json.JSONException;
+
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
 import java.net.URLConnection;
+import java.nio.charset.Charset;
 import java.util.List;
 import java.util.Map;
 
@@ -113,6 +116,27 @@ public class HTTP {
         System.out.println("info:" + url + " download success");
     }
 
+    public static String readStringFromUrl(String url) throws IOException, JSONException {
+        InputStream is = new URL(url).openStream();
+        try {
+            BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
+            String jsonText = readAll(rd);
+            return jsonText;
+        } finally {
+            is.close();
+        }
+    }
+
+
+    private static String readAll(Reader rd) throws IOException {
+        StringBuilder sb = new StringBuilder();
+        int cp;
+        while ((cp = rd.read()) != -1) {
+            sb.append((char) cp);
+        }
+        return sb.toString();
+    }
+
     public static boolean sendPut(String host, String url, String param) {
         try {
             String urlNameString = url + "?" + param;

+ 1 - 58
src/main/java/jobjson

@@ -4,62 +4,5 @@
     "start_time":"time1",
     "end_time":"time2",
     "worker_list":{"workerId1","workerId2","workerId3"},
-    "paper":{
-        "description": "job描述ddd",
-        "name": "jobname",
-        "create_time":"2019/10/02",
-        "type":"漏洞扫描分析",
-        "application_url":"url1",
-        "requirement_url":"url2",
-        "item_group_list": [{
-            "report_list": [0,1],
-            "item_list": [{
-                "index": 0,
-                "description":"des1dd",
-                "is_required":true,
-                "type":"File",
-                "options":[]
-            },{
-                "index": 1,
-                "description":"des2dd",
-                "is_required":true,
-                "type":"Single",
-                "options":["op1","op2"]
-            },{
-                "index": 2,
-                "description":"des3dd",
-                "is_required":true,
-                "type":"Multiple",
-                "options":["op1","op2"]
-            },{
-                "index": 3,
-                "description":"des4dd",
-                "is_required":true,
-                "type":"Description",
-                "options":[]
-            }],
-        }],
-        "report_list":[{
-            "index":0,
-            "name":"name111",
-            "original_id":"id1",
-            "description":"des1",
-            "img_url":["url1","url2"],
-            "file_url":["url1","url2"]
-        },{
-            "index":1,
-            "name":"name2222",
-            "original_id":"id2",
-            "description":"des2",
-            "img_url":["url1","url2"],
-            "file_url":["url1","url2"]
-        },{
-            "index":2,
-            "name":"name3333",
-            "original_id":"id3",
-            "description":"des3",
-            "img_url":["url1","url2"],
-            "file_url":["url1","url2"]
-        }]
-    }
+    "paper":
 }

+ 1 - 1
src/main/java/paperjson

@@ -54,5 +54,5 @@
         "description":"des3",
         "img_url":["url1","url2"],
         "file_url":["url1","url2"],
-    }],
+    }]
 }