Przeglądaj źródła

对answer初始化时,options全部赋-1

MengyangDuan 5 lat temu
rodzic
commit
248f55f6f9

+ 11 - 1
src/main/java/edu/nju/entities/Answer.java

@@ -3,6 +3,7 @@ package edu.nju.entities;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.util.ArrayList;
 import java.util.List;
 
 @Document
@@ -31,7 +32,16 @@ public class Answer implements java.io.Serializable{
         this.attachment_location = attachment_location;
         this.job_id=job_id;
     }
-
+    public Answer(String item_id,String worker_id,String job_id,int optionNum){
+        this.item_id = item_id;
+        this.worker_id = worker_id;
+        this.attachment_location = new ArrayList<>();
+        this.job_id=job_id;
+        this.answers=new ArrayList<>();
+        for(int i=0;i<optionNum;i++){
+            answers.add("-1");
+        }
+    }
 
     public String getId() {
         return id;

+ 10 - 7
src/main/java/edu/nju/service/ExtraService.java

@@ -150,22 +150,23 @@ public class ExtraService {
 		//save item
 		//item index-id
 		HashMap<String,String> item_index_to_id=new HashMap<>();
+		HashMap<String,Integer>item_id_to_optionNum=new HashMap<>();
 		for(int i=0;i<itemArray.length();i++) {
 			JSONObject itemObject = itemArray.getJSONObject(i);
-			String item_id=saveItem(itemObject,job_id);
+			String item_id=saveItem(itemObject,job_id,item_id_to_optionNum);
 			String item_index=itemObject.getString("index");
 			item_index_to_id.put(item_index,item_id);
 		}
 
 		//worker_id-item_id_list
 		JSONArray workerArray=jsonObject.getJSONArray("workerList");
-		createWorkerToItem(item_index_to_id,workerArray,job_id);
+		createWorkerToItem(item_index_to_id,workerArray,job_id,item_id_to_optionNum);
 
 		return job_id;
 
 	}
 
-	private String saveItem(JSONObject itemObject,String job_id){
+	private String saveItem(JSONObject itemObject,String job_id,HashMap<String,Integer>item_id_to_optionNum){
 
 //			JSONObject itemObject=itemArray.getJSONObject(i);
 			String description=itemObject.getString("description");
@@ -195,12 +196,13 @@ public class ExtraService {
 				options.add(optionObject.getString("option"));
 			}
 			Item item=new Item(description,img_urls,isRequired,isMultiple,file_urls,options,job_id);
-			return itemDao.saveItem(item);
-
+			String item_id = itemDao.saveItem(item);
+			item_id_to_optionNum.put(item_id,optionArray.length());
+			return item_id;
 
 	}
 
-	private void createWorkerToItem(HashMap<String,String> item_index_to_id,JSONArray workerArray,String job_id){
+	private void createWorkerToItem(HashMap<String,String> item_index_to_id,JSONArray workerArray,String job_id,HashMap<String,Integer>item_id_to_optionNum){
 		HashMap<String,List<String>> worker_to_item=new HashMap<>();
 
 		for(int i=0;i<workerArray.length();i++){
@@ -216,7 +218,8 @@ public class ExtraService {
 			itemService.saveUserToItem(worker_id,itemIdList,job_id);
 			for(int j=0;j<itemIdList.size();j++){
 				String item_id=itemIdList.get(j);
-				String answer_id=itemService.saveAnswer(item_id,worker_id,job_id,new ArrayList<>(),new ArrayList<>());
+				int optionNum=item_id_to_optionNum.get(item_id);
+				String answer_id=itemService.saveAnswer(item_id,worker_id,job_id,optionNum);
 			}
 		}
 	}

+ 6 - 0
src/main/java/edu/nju/service/ItemService.java

@@ -45,6 +45,12 @@ public class ItemService {
         return answerDao.save(answer);
     }
 
+    //对answer进行初始化
+    public String saveAnswer(String item_id, String worker_id,String job_id, int optionNum){
+        Answer answer=new Answer(item_id,worker_id,job_id,optionNum);
+        return answerDao.save(answer);
+    }
+
     public boolean updateAnswer(String id, String item_id, String worker_id, String job_id, List<String>answers,List<String> attachment_location){
         try {
             if(id == null || id.equals("undefined")) { return false; }