|
@@ -69,7 +69,7 @@ public class NodeService {
|
|
if(answer.equals("1")){
|
|
if(answer.equals("1")){
|
|
JSONObject node=new JSONObject();
|
|
JSONObject node=new JSONObject();
|
|
node.put("name", jobId + "/" + reportId + "/" + itemId+"/"+i);
|
|
node.put("name", jobId + "/" + reportId + "/" + itemId+"/"+i);
|
|
- node.put("location", jobId + "/" + reportId + "/" + jobId+i);
|
|
|
|
|
|
+ node.put("location", jobId + "/" + reportId + "/" + itemId+"/"+i);
|
|
node.put("description", reviewItem.getType());
|
|
node.put("description", reviewItem.getType());
|
|
node.put("category", "CrowdReview");
|
|
node.put("category", "CrowdReview");
|
|
node.put("weight", String.valueOf(Double.parseDouble(correctAnswer.getGrade())/num));
|
|
node.put("weight", String.valueOf(Double.parseDouble(correctAnswer.getGrade())/num));
|
|
@@ -80,7 +80,7 @@ public class NodeService {
|
|
}else {
|
|
}else {
|
|
JSONObject node=new JSONObject();
|
|
JSONObject node=new JSONObject();
|
|
node.put("name", jobId + "/" + reportId + "/" + itemId);
|
|
node.put("name", jobId + "/" + reportId + "/" + itemId);
|
|
- node.put("location", jobId + "/" + reportId + "/" + jobId);
|
|
|
|
|
|
+ node.put("location", jobId + "/" + reportId + "/" + itemId);
|
|
node.put("description", reviewItem.getType());
|
|
node.put("description", reviewItem.getType());
|
|
node.put("category", "CrowdReview");
|
|
node.put("category", "CrowdReview");
|
|
node.put("weight", correctAnswer.getGrade());
|
|
node.put("weight", correctAnswer.getGrade());
|
|
@@ -95,7 +95,7 @@ public class NodeService {
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
- public BasicNode generateCatchNode(String jobId,String workerId){
|
|
|
|
|
|
+ public AnswerNode generateCatchNode(String jobId,String 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());
|
|
@@ -115,41 +115,62 @@ public class NodeService {
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
int num=0;
|
|
int num=0;
|
|
- for(int i=0;i<answers.size();i++){
|
|
|
|
- if(answers.get(i).equals("1")){
|
|
|
|
|
|
+ //共有几个正确选项
|
|
|
|
+ for(int i=0;i<correctAnswers.size();i++){
|
|
|
|
+ if(correctAnswers.get(i).equals("1")){
|
|
num++;
|
|
num++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(num!=0){
|
|
if(num!=0){
|
|
List<JSONObject> multipleNodeList=new ArrayList<>();
|
|
List<JSONObject> multipleNodeList=new ArrayList<>();
|
|
boolean chooseWrong=false;
|
|
boolean chooseWrong=false;
|
|
- 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);
|
|
|
|
- }
|
|
|
|
- }else if(correctAnswer.equals("")){
|
|
|
|
- if(answer.equals("1")) {
|
|
|
|
- chooseWrong=true;
|
|
|
|
- break;
|
|
|
|
|
|
+ //是否作答
|
|
|
|
+ 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);
|
|
|
|
+ }
|
|
|
|
+ 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){
|
|
if(chooseWrong){
|
|
for(JSONObject node:multipleNodeList){
|
|
for(JSONObject node:multipleNodeList){
|
|
node.put("ifCatch",false);
|
|
node.put("ifCatch",false);
|
|
catchNodeArray.put(node);
|
|
catchNodeArray.put(node);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //否则按选中的个数得分
|
|
|
|
+ else{
|
|
|
|
+ for(JSONObject node:multipleNodeList){
|
|
|
|
+ catchNodeArray.put(node);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//单选题
|
|
//单选题
|
|
@@ -157,12 +178,16 @@ public class NodeService {
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
List<String> correctAnswers=reviewCorrectAnswer.getCorrect_answer();
|
|
boolean chooseWrong=false;
|
|
boolean chooseWrong=false;
|
|
- 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;
|
|
|
|
|
|
+ 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();
|
|
JSONObject node=new JSONObject();
|
|
@@ -172,7 +197,7 @@ public class NodeService {
|
|
catchNodeArray.put(node);
|
|
catchNodeArray.put(node);
|
|
}
|
|
}
|
|
//描述题和文件题,默认只要有作答就得分
|
|
//描述题和文件题,默认只要有作答就得分
|
|
- else{
|
|
|
|
|
|
+ else if(reviewItem.getType().equals("Description")){
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
List<String> answers=reviewAnswer.getAnswers();
|
|
boolean hasContent=false;
|
|
boolean hasContent=false;
|
|
for(String answer:answers){
|
|
for(String answer:answers){
|
|
@@ -186,15 +211,32 @@ public class NodeService {
|
|
node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
node.put("ifCatch",hasContent);
|
|
node.put("ifCatch",hasContent);
|
|
catchNodeArray.put(node);
|
|
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;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ JSONObject node=new JSONObject();
|
|
|
|
+ node.put("category", "CrowdReview");
|
|
|
|
+ node.put("nodeName", jobId + "/" + reportId + "/" + itemId);
|
|
|
|
+ node.put("ifCatch",hasContent);
|
|
|
|
+ catchNodeArray.put(node);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
System.out.println(catchNodeArray);
|
|
System.out.println(catchNodeArray);
|
|
|
|
|
|
|
|
+ AnswerNode answerNode=new AnswerNode(jobId,workerId,catchNodeArray.toString(),"0");
|
|
|
|
+ return answerNode;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
- return null;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|