|
@@ -6,7 +6,16 @@ import org.json.JSONArray;
|
|
import org.json.JSONObject;
|
|
import org.json.JSONObject;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
+import edu.nju.util.HTTP;
|
|
|
|
|
|
|
|
+import java.io.BufferedReader;
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStreamReader;
|
|
|
|
+import java.io.OutputStreamWriter;
|
|
|
|
+import java.net.HttpURLConnection;
|
|
|
|
+import java.net.MalformedURLException;
|
|
|
|
+import java.net.ProtocolException;
|
|
|
|
+import java.net.URL;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
@Service
|
|
@Service
|
|
@@ -36,6 +45,9 @@ public class NodeService {
|
|
@Autowired
|
|
@Autowired
|
|
ReviewAnswerDao reviewAnswerDao;
|
|
ReviewAnswerDao reviewAnswerDao;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ ReviewWorkerDao reviewWorkerDao;
|
|
|
|
+
|
|
|
|
|
|
public BasicNode generateBasicNode(String jobId,String teacherId){
|
|
public BasicNode generateBasicNode(String jobId,String teacherId){
|
|
ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
@@ -89,13 +101,26 @@ public class NodeService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
nodeJson.put("nodes",nodesArray);
|
|
nodeJson.put("nodes",nodesArray);
|
|
- BasicNode basicNode=new BasicNode(jobId,teacherId,nodesArray.toString());
|
|
|
|
|
|
+ //查询是否已有之前的basicNode
|
|
|
|
+ BasicNode basicNode=basicNodeDao.findByJobTeacher(jobId,teacherId);
|
|
|
|
+ //新建
|
|
|
|
+ if(basicNode==null){
|
|
|
|
+ basicNode=new BasicNode(jobId,teacherId,nodeJson.toString());
|
|
|
|
+ basicNodeDao.save(basicNode);
|
|
|
|
+ }
|
|
|
|
+ //更新
|
|
|
|
+ else{
|
|
|
|
+ basicNode.setNodeJson(nodeJson.toString());
|
|
|
|
+ basicNodeDao.save(basicNode);
|
|
|
|
+ }
|
|
System.out.println(nodeJson);
|
|
System.out.println(nodeJson);
|
|
return basicNode;
|
|
return basicNode;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public AnswerNode generateCatchNode(String jobId,String workerId){
|
|
public AnswerNode generateCatchNode(String jobId,String workerId){
|
|
|
|
+// System.out.println("job"+jobId);
|
|
|
|
+// System.out.println("worker"+workerId);
|
|
ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
ReviewPaper reviewPaper=reviewPaperDao.findPaper(reviewJob.getPaper_id());
|
|
ReviewPaper reviewPaper=reviewPaperDao.findPaper(reviewJob.getPaper_id());
|
|
List<ReviewReport> reviewReportList=reviewReportDao.getReportsByPaperId(reviewPaper.getId());
|
|
List<ReviewReport> reviewReportList=reviewReportDao.getReportsByPaperId(reviewPaper.getId());
|
|
@@ -106,138 +131,316 @@ public class NodeService {
|
|
List<ReviewItem> reviewItemList=reviewItemDao.findItemsByReport(reportId);
|
|
List<ReviewItem> reviewItemList=reviewItemDao.findItemsByReport(reportId);
|
|
for(ReviewItem reviewItem:reviewItemList){
|
|
for(ReviewItem reviewItem:reviewItemList){
|
|
String itemId=reviewItem.getId();
|
|
String itemId=reviewItem.getId();
|
|
- //此时reviewAnswer一定已经被创建
|
|
|
|
|
|
+ //只要进入过答题界面,所有reviewAnswer就会被创建
|
|
ReviewAnswer reviewAnswer=reviewAnswerDao.findAnswerByWorkerJobReportItem(jobId,reportId,workerId,itemId);
|
|
ReviewAnswer reviewAnswer=reviewAnswerDao.findAnswerByWorkerJobReportItem(jobId,reportId,workerId,itemId);
|
|
ReviewCorrectAnswer reviewCorrectAnswer=reviewCorrectAnswerDao.findCorrectAnswerByReportItem(reportId,itemId,jobId);
|
|
ReviewCorrectAnswer reviewCorrectAnswer=reviewCorrectAnswerDao.findCorrectAnswerByReportItem(reportId,itemId,jobId);
|
|
-
|
|
|
|
//多选题
|
|
//多选题
|
|
- if(reviewItem.getType().equals("Multiple")){
|
|
|
|
- List<String> answers=reviewAnswer.getAnswers();
|
|
|
|
- List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
|
|
- int num=0;
|
|
|
|
- //共有几个正确选项
|
|
|
|
- for(int i=0;i<correctAnswers.size();i++){
|
|
|
|
- if(correctAnswers.get(i).equals("1")){
|
|
|
|
- num++;
|
|
|
|
- }
|
|
|
|
|
|
+ switch (reviewItem.getType()) {
|
|
|
|
+ case "Multiple":
|
|
|
|
+ generateCatchNodeMultiple(catchNodeArray, reviewAnswer, reviewCorrectAnswer, jobId, reportId, itemId);
|
|
|
|
+ break;
|
|
|
|
+ //单选题
|
|
|
|
+ case "Single":
|
|
|
|
+ generateCatchNodeSingle(catchNodeArray, reviewAnswer, reviewCorrectAnswer, jobId, reportId, itemId);
|
|
|
|
+ break;
|
|
|
|
+ //描述题和文件题,默认只要有作答就得分
|
|
|
|
+ case "Description":
|
|
|
|
+ generateCatchNodeDescription(catchNodeArray, reviewAnswer, reviewCorrectAnswer, jobId, reportId, itemId);
|
|
|
|
+ break;
|
|
|
|
+ case "File":
|
|
|
|
+ generateCatchNodeFile(catchNodeArray, reviewAnswer, reviewCorrectAnswer, jobId, reportId, itemId);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ System.out.println(catchNodeArray);
|
|
|
|
+
|
|
|
|
+ AnswerNode answerNode=new AnswerNode(jobId,workerId,catchNodeArray.toString(),"0");
|
|
|
|
+// answerNodeDao.save(answerNode);
|
|
|
|
+ return answerNode;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void generateCatchNodeMultiple(JSONArray catchNodeArray,ReviewAnswer reviewAnswer,ReviewCorrectAnswer reviewCorrectAnswer,String jobId,String reportId,String itemId){
|
|
|
|
+ if(reviewAnswer!=null) {
|
|
|
|
+ List<String> answers = reviewAnswer.getAnswers();
|
|
|
|
+ List<String> correctAnswers = reviewCorrectAnswer.getCorrect_answer();
|
|
|
|
+ int num = 0;
|
|
|
|
+ //共有几个正确选项
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ if (correctAnswers.get(i).equals("1")) {
|
|
|
|
+ num++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (num != 0) {
|
|
|
|
+ List<JSONObject> multipleNodeList = new ArrayList<>();
|
|
|
|
+ boolean chooseWrong = false;
|
|
|
|
+ //是否作答该题
|
|
|
|
+ if (answers.size() != correctAnswers.size()) {
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
|
|
+ multipleNodeList.add(node);
|
|
}
|
|
}
|
|
- if(num!=0){
|
|
|
|
- List<JSONObject> multipleNodeList=new ArrayList<>();
|
|
|
|
- boolean chooseWrong=false;
|
|
|
|
- //是否作答
|
|
|
|
- if(answers.size()!=correctAnswers.size()){
|
|
|
|
- for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
- JSONObject node = new JSONObject();
|
|
|
|
|
|
+ chooseWrong = true;
|
|
|
|
+ } else {
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ String correctAnswer = correctAnswers.get(i);
|
|
|
|
+ String answer = answers.get(i);
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ if (correctAnswer.equals("1")) {
|
|
|
|
+ if (answer.equals("1")) {
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("ifCatch", true);
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
|
|
+ } else {
|
|
node.put("category", "CrowdReview");
|
|
node.put("category", "CrowdReview");
|
|
node.put("ifCatch", false);
|
|
node.put("ifCatch", false);
|
|
node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
- multipleNodeList.add(node);
|
|
|
|
- }
|
|
|
|
- chooseWrong=true;
|
|
|
|
- }else {
|
|
|
|
- for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
- String correctAnswer = correctAnswers.get(i);
|
|
|
|
- String answer = answers.get(i);
|
|
|
|
- JSONObject node = new JSONObject();
|
|
|
|
- if (correctAnswer.equals("1")) {
|
|
|
|
- if (answer.equals("1")) {
|
|
|
|
- node.put("category", "CrowdReview");
|
|
|
|
- node.put("ifCatch", true);
|
|
|
|
- node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
|
|
- } else {
|
|
|
|
- node.put("category", "CrowdReview");
|
|
|
|
- node.put("ifCatch", false);
|
|
|
|
- node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
|
|
- }
|
|
|
|
- multipleNodeList.add(node);
|
|
|
|
- } else if (correctAnswer.equals("")) {
|
|
|
|
- if (answer.equals("1")) {
|
|
|
|
- chooseWrong = true;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //有一个选错,则多选题不得分
|
|
|
|
- if(chooseWrong){
|
|
|
|
- for(JSONObject node:multipleNodeList){
|
|
|
|
- node.put("ifCatch",false);
|
|
|
|
- catchNodeArray.put(node);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //否则按选中的个数得分
|
|
|
|
- else{
|
|
|
|
- for(JSONObject node:multipleNodeList){
|
|
|
|
- catchNodeArray.put(node);
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //单选题
|
|
|
|
- else if(reviewItem.getType().equals("Single")) {
|
|
|
|
- List<String> answers=reviewAnswer.getAnswers();
|
|
|
|
- List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
|
|
- boolean chooseWrong=false;
|
|
|
|
- if(answers.size()!=correctAnswers.size()){
|
|
|
|
- chooseWrong=true;
|
|
|
|
- }else {
|
|
|
|
- for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
- String correctAnswer = correctAnswers.get(i);
|
|
|
|
- String answer = answers.get(i);
|
|
|
|
- if (!answer.equals(correctAnswer)) {
|
|
|
|
|
|
+ multipleNodeList.add(node);
|
|
|
|
+ } else if (correctAnswer.equals("")) {
|
|
|
|
+ if (answer.equals("1")) {
|
|
chooseWrong = true;
|
|
chooseWrong = true;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- JSONObject node=new JSONObject();
|
|
|
|
- node.put("category", "CrowdReview");
|
|
|
|
- node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
- node.put("ifCatch",!chooseWrong);
|
|
|
|
- catchNodeArray.put(node);
|
|
|
|
}
|
|
}
|
|
- //描述题和文件题,默认只要有作答就得分
|
|
|
|
- else if(reviewItem.getType().equals("Description")){
|
|
|
|
- List<String> answers=reviewAnswer.getAnswers();
|
|
|
|
- boolean hasContent=false;
|
|
|
|
- for(String answer:answers){
|
|
|
|
- if(!answer.equals("")){
|
|
|
|
- hasContent=true;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ //有一个选错,则多选题不得分
|
|
|
|
+ if (chooseWrong) {
|
|
|
|
+ for (JSONObject node : multipleNodeList) {
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ catchNodeArray.put(node);
|
|
}
|
|
}
|
|
- JSONObject node=new JSONObject();
|
|
|
|
- node.put("category", "CrowdReview");
|
|
|
|
- node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
- node.put("ifCatch",hasContent);
|
|
|
|
- catchNodeArray.put(node);
|
|
|
|
- }else if(reviewItem.getType().equals("File")){
|
|
|
|
- List<String> fileList=reviewAnswer.getFile_url();
|
|
|
|
- boolean hasContent=false;
|
|
|
|
- for(String file:fileList){
|
|
|
|
- if(!file.equals("")){
|
|
|
|
- hasContent=true;
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
|
|
+ }
|
|
|
|
+ //否则按选中的个数得分
|
|
|
|
+ else {
|
|
|
|
+ for (JSONObject node : multipleNodeList) {
|
|
|
|
+ catchNodeArray.put(node);
|
|
}
|
|
}
|
|
- JSONObject node=new JSONObject();
|
|
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //该工人未进入答题界面
|
|
|
|
+ else{
|
|
|
|
+ List<String> correctAnswers = reviewCorrectAnswer.getCorrect_answer();
|
|
|
|
+ int num = 0;
|
|
|
|
+ //共有几个正确选项
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ if (correctAnswers.get(i).equals("1")) {
|
|
|
|
+ num++;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (num != 0) {
|
|
|
|
+ List<JSONObject> multipleNodeList = new ArrayList<>();
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
node.put("category", "CrowdReview");
|
|
node.put("category", "CrowdReview");
|
|
- node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
- node.put("ifCatch",hasContent);
|
|
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId + "/" + i);
|
|
|
|
+ multipleNodeList.add(node);
|
|
|
|
+ }
|
|
|
|
+ for (JSONObject node : multipleNodeList) {
|
|
catchNodeArray.put(node);
|
|
catchNodeArray.put(node);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- System.out.println(catchNodeArray);
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- AnswerNode answerNode=new AnswerNode(jobId,workerId,catchNodeArray.toString(),"0");
|
|
|
|
- return answerNode;
|
|
|
|
|
|
|
|
|
|
+ private void generateCatchNodeSingle(JSONArray catchNodeArray,ReviewAnswer reviewAnswer,ReviewCorrectAnswer reviewCorrectAnswer,String jobId,String reportId,String itemId){
|
|
|
|
+ if(reviewAnswer!=null) {
|
|
|
|
+ List<String> answers = reviewAnswer.getAnswers();
|
|
|
|
+ List<String> correctAnswers = reviewCorrectAnswer.getCorrect_answer();
|
|
|
|
+ boolean chooseWrong = false;
|
|
|
|
+ if (answers.size() != correctAnswers.size()) {
|
|
|
|
+ chooseWrong = true;
|
|
|
|
+ } else {
|
|
|
|
+ for (int i = 0; i < correctAnswers.size(); i++) {
|
|
|
|
+ String correctAnswer = correctAnswers.get(i);
|
|
|
|
+ String answer = answers.get(i);
|
|
|
|
+ if (!answer.equals(correctAnswer)) {
|
|
|
|
+ chooseWrong = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", !chooseWrong);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void generateCatchNodeDescription(JSONArray catchNodeArray,ReviewAnswer reviewAnswer,ReviewCorrectAnswer reviewCorrectAnswer,String jobId,String reportId,String itemId){
|
|
|
|
+ if(reviewAnswer!=null) {
|
|
|
|
+ List<String> answers = reviewAnswer.getAnswers();
|
|
|
|
+ boolean hasContent = false;
|
|
|
|
+ for (String answer : answers) {
|
|
|
|
+ if (!answer.equals("")) {
|
|
|
|
+ hasContent = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", hasContent);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void generateCatchNodeFile(JSONArray catchNodeArray,ReviewAnswer reviewAnswer,ReviewCorrectAnswer reviewCorrectAnswer,String jobId,String reportId,String itemId){
|
|
|
|
+ if(reviewAnswer!=null) {
|
|
|
|
+ List<String> fileList = reviewAnswer.getFile_url();
|
|
|
|
+ boolean hasContent = false;
|
|
|
|
+ for (String file : fileList) {
|
|
|
|
+ if (!file.equals("")) {
|
|
|
|
+ hasContent = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", hasContent);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void generateCatchNodeFalse(JSONArray catchNodeArray,String jobId,String reportId,String itemId){
|
|
|
|
+ JSONObject node = new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch", false);
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public BasicNode getBasicNode(String jobId,String teacherId){
|
|
|
|
+ return basicNodeDao.findByJobTeacher(jobId,teacherId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public AnswerNode getAnswerNode(String jobId,String workerId){
|
|
|
|
+ return answerNodeDao.findByJobWorker(jobId,workerId);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ public JSONObject uploadCatchNodeToMoocTest(String jobId){
|
|
|
|
+ ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
|
|
+ List<ReviewWorker> reviewWorkerList=reviewWorkerDao.getWorkersByJob(jobId);
|
|
|
|
+ JSONObject result=new JSONObject();
|
|
|
|
+ for(ReviewWorker reviewWorker:reviewWorkerList){
|
|
|
|
+ AnswerNode answerNode=generateCatchNode(jobId,reviewWorker.getId());
|
|
|
|
+ //获取上传学生成绩至主站的uploadId
|
|
|
|
+ String uploadId=getCatchNodeUploadId(reviewJob.getExam_id(),answerNode,reviewWorker.getOriginal_id());
|
|
|
|
+ if(uploadId!=null){
|
|
|
|
+ //上传catchNode至主站
|
|
|
|
+ String uploadResult=uploadCatchNode(reviewJob.getCase_id(),uploadId,answerNode);
|
|
|
|
+ if(uploadResult==null){
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("cause","上传catchNode失败");
|
|
|
|
+ }else{
|
|
|
|
+ JSONObject uploadResultJson=new JSONObject(result);
|
|
|
|
+ if(uploadResultJson.get("code").equals("20000")){
|
|
|
|
+ result.put("status","200");
|
|
|
|
+ }else{
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("cause","上传catchNode失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("cause","获取uploadId失败");
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ private String getCatchNodeUploadId(String taskId,AnswerNode answerNode,String workerOriginalId){
|
|
|
|
+ String url = "http://www.mooctest.net/api/dev/plugin/submitAnswersSig" + "?" +
|
|
|
|
+ "taskID=" + taskId + "&" +
|
|
|
|
+ "workerID=" + workerOriginalId + "&" +
|
|
|
|
+ "caseName=CrowdReview";
|
|
|
|
+ String result = HTTP.sendGet(url, "");
|
|
|
|
+ if(result != null && !result.equals("")) {
|
|
|
|
+ JSONObject json = new JSONObject(result);
|
|
|
|
+ if(json.has("data")){
|
|
|
|
+ JSONObject data=json.getJSONObject("data");
|
|
|
|
+ return data.getString("uploadId");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //向慕测主站上传catchNode
|
|
|
|
+ private String uploadCatchNode(String caseId,String uploadId,AnswerNode answerNode){
|
|
|
|
+ String result = "";
|
|
|
|
+ String uploadTime=String.valueOf(System.currentTimeMillis());
|
|
|
|
+ String source="CrowdReview";
|
|
|
|
+ String url="http://test.mooctest.net/api/common/generalUploadCaughtNode/"+caseId+"/"+uploadTime+"/"+uploadId+"/"+source;
|
|
|
|
+ try{
|
|
|
|
+ URL realUrl = new URL(url);
|
|
|
|
+ // 打开和URL之间的连接
|
|
|
|
+ HttpURLConnection connection;
|
|
|
|
+ connection = (HttpURLConnection)realUrl.openConnection();
|
|
|
|
+ connection.setDoInput(true);
|
|
|
|
+ connection.setDoOutput(true);
|
|
|
|
+ // 设置请求属性,必须要设置contentType
|
|
|
|
+ connection.setRequestProperty("accept", "*/*");
|
|
|
|
+ connection.setRequestProperty("Content-Type","application/json");
|
|
|
|
+ connection.setRequestMethod("PUT");
|
|
|
|
+ connection.setRequestProperty("user-agent",
|
|
|
|
+ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
|
|
|
|
+ // 建立实际的连接
|
|
|
|
+ connection.connect();
|
|
|
|
+ //写入body数据,catchNode
|
|
|
|
+ OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
|
|
|
|
+ out.append(answerNode.getCatchNodeJson());
|
|
|
|
+ out.flush();
|
|
|
|
+ out.close();
|
|
|
|
+
|
|
|
|
+ BufferedReader in = new BufferedReader(new InputStreamReader(
|
|
|
|
+ connection.getInputStream()));
|
|
|
|
+ String line;
|
|
|
|
+ while ((line = in.readLine()) != null) {
|
|
|
|
+ result += line;
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|