Parcourir la source

Merge branch 'xjw' of http://git.mooctest.net/summer/crowdsource-backend into xjw

MengyangDuan il y a 5 ans
Parent
commit
7d52421582

+ 1 - 1
src/main/java/edu/nju/dao/AnswerDao.java

@@ -15,7 +15,7 @@ public class AnswerDao {
     @Autowired
     private MongoOperations mongoOperations;
 
-    public List<Answer> findAnswersByItemWorker(String item_id,String worker_id){
+    public List<Answer> findAnswersByItemWorker(String item_id, String worker_id){
         Query query = new Query();
         query.addCriteria(Criteria.where("item_id").is(item_id).and("worker_id").is(worker_id));
         return mongoOperations.find(query, Answer.class);

+ 0 - 0
src/main/java/edu/nju/dao/JobDao.java


+ 0 - 2
src/main/java/edu/nju/dao/UserToItemDao.java

@@ -1,6 +1,5 @@
 package edu.nju.dao;
 
-import edu.nju.entities.Answer;
 import edu.nju.entities.UserToItem;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.MongoOperations;
@@ -8,7 +7,6 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Repository;
 
-import java.util.ArrayList;
 import java.util.List;
 
 @Repository

+ 0 - 0
src/main/java/edu/nju/entities/Answer.java


+ 133 - 19
src/main/java/edu/nju/service/ExtraService.java

@@ -2,16 +2,14 @@ package edu.nju.service;
 
 import java.util.*;
 
+import com.google.gson.JsonArray;
+import edu.nju.dao.*;
 import edu.nju.entities.*;
 import org.json.JSONArray;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import edu.nju.dao.ReportDao;
-import edu.nju.dao.BugDao;
-import edu.nju.dao.ExamDao;
-import edu.nju.dao.TestCaseDao;
 import edu.nju.util.ExcelToJson;
 
 @Service
@@ -28,6 +26,12 @@ public class ExtraService {
 	
 	@Autowired
 	BugDao bugDao;
+
+	@Autowired
+	JobDao jobDao;
+
+	@Autowired
+	ItemDao itemDao;
 	
 	//测试用例相关
 	public String saveTestCase(String report_id, String name, String front, String behind, String description) {
@@ -135,41 +139,151 @@ public class ExtraService {
 		JSONObject jsonObject=new JSONObject(jobJson);
 		String description=jsonObject.getString("description");
 		String name=jsonObject.getString("name");
-		String create_time_millis=Long.toString(System.currentTimeMillis());
-
-		//todo save job, item-user分组
-
-		saveItem(jsonObject.getJSONArray("itemList"),"111");
-
-		return null;
-
+//		String create_time_millis=Long.toString(System.currentTimeMillis());
 
+		String job_id=jobDao.save(new Job(description,name,Long.toString(System.currentTimeMillis()),"","","","","",""));
 
+		JSONArray itemArray=jsonObject.getJSONArray("itemList");
+		//save item
+		//item index-id
+		HashMap<String,String> item_index_to_id=new HashMap<>();
+		for(int i=0;i<itemArray.length();i++) {
+			JSONObject itemObject = itemArray.getJSONObject(i);
+			String item_id=saveItem(itemObject,job_id);
+			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);
 
+		return job_id;
 
 	}
 
-	private void saveItem(JSONArray itemArray,String job_id){
-		for(int i=0;i<itemArray.length();i++){
-			JSONObject itemObject=itemArray.getJSONObject(i);
+	private String saveItem(JSONObject itemObject,String job_id){
+
+//			JSONObject itemObject=itemArray.getJSONObject(i);
 			String description=itemObject.getString("description");
-			Set<String> img_urls=new HashSet<>();
+			List<String> img_urls=new ArrayList<>();
 			JSONArray imgUrlArray=itemObject.getJSONArray("img_urls");
 			for (int j=0;j<imgUrlArray.length();j++){
-				img_urls.add(imgUrlArray.getString(i));
+				JSONObject imgUrlObject=imgUrlArray.getJSONObject(j);
+				img_urls.add(imgUrlObject.getString("url"));
 			}
 			boolean isRequired=Boolean.parseBoolean(itemObject.getString("isRequired"));
 			boolean isMultiple=Boolean.parseBoolean(itemObject.getString("isMultiple"));
-			//todo files, options
-
+			List<String> file_urls=new ArrayList<>();
+			JSONArray fileArray=itemObject.getJSONArray("file_urls");
+//			System.out.println(fileArray);
+			for (int j=0;j<fileArray.length();j++){
+				JSONObject fileObject=fileArray.getJSONObject(j);
+//				System.out.println(fileObject.getString("url"));
+				file_urls.add(fileObject.getString("url"));
 
+			}
 
+			List<String>  options=new ArrayList<>();
+			JSONArray optionArray=itemObject.getJSONArray("options");
+//			System.out.println(optionArray);
+			for (int j=0;j<optionArray.length();j++){
+				JSONObject optionObject=optionArray.getJSONObject(j);
+//				System.out.println(optionObject.getString("option"));
+				options.add(optionObject.getString("option"));
+			}
+			Item item=new Item(description,img_urls,isRequired,isMultiple,file_urls,options,job_id);
+			return itemDao.saveItem(item);
 
 
+	}
 
+	private void createWorkerToItem(HashMap<String,String> item_index_to_id,JSONArray workerArray){
+		HashMap<String,List<String>> worker_to_item=new HashMap<>();
 
+		for(int i=0;i<workerArray.length();i++){
+			JSONObject workerObject=workerArray.getJSONObject(i);
+			String worker_id=workerObject.getString("worker_id");
+			JSONArray itemIndexArray=workerObject.getJSONArray("item_index_list");
+			List<String> itemIdList=new ArrayList<>();
+			for (int j=0;j<itemIndexArray.length();j++){
+				JSONObject itemIndexObject=itemIndexArray.getJSONObject(j);
+				itemIdList.add(item_index_to_id.get(itemIndexObject.getString("index")));
+			}
+			worker_to_item.put(worker_id,itemIdList);
 		}
 
+		//todo worker-to-item
 	}
+
+
+//	public static void main(String[] args) {
+//		System.out.println("11");
+////		String jobJson = "{\"description\":\"job描述\",\"name\":\"jobname\",\"itemList\":[{\"description\":\"itemdesc\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}]}],\"isReuqired\":\"true\",\"isMutilple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]}";
+////		String jobJson="{\"description\":\"job描述\",\"name\":\"jobname\",\"itemList\":[{\"description\":\"itemdesc1\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"},{\"description\":\"itemdesc2\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"},{\"description\":\"itemdesc3\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}]}],\"isReuqired\":\"true\",\"isMutilple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]}";
+////		String jobJson="{\"description\":\"job描述\",\"name\":\"jobname\",\"itemList\":[{\"description\":\"itemdesc1\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}]},{\"description\":\"itemdesc2\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}]},{\"description\":\"itemdesc3\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}]}],\"isReuqired\":\"true\",\"isMutilple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]}";
+////		String jobJson="{\"description\":\"job描述\",\"name\":\"jobname\",\"itemList\":[{\"description\":\"itemdesc1\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isRequired\":\"true\",\"isMultiple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]},{\"description\":\"itemdesc2\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isReuqired\":\"true\",\"isMutilple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]},{\"description\":\"itemdesc3\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isReuqired\":\"true\",\"isMutilple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]}]}";
+//		String jobJson="{\"description\":\"job描述\",\"name\":\"jobname\",\"itemList\":[{\"description\":\"itemdesc1\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isRequired\":\"true\",\"isMultiple\":\"false\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]},{\"description\":\"itemdesc2\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isRequired\":\"true\",\"isMultiple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]},{\"description\":\"itemdesc3\",\"img_urls\":[{\"url\":\"imgurl1\"},{\"url\":\"imgurl2\"},{\"url\":\"imgurl3\"}],\"isRequired\":\"true\",\"isMultiple\":\"true\",\"file_urls\":[{\"url\":\"fileurl1\"},{\"url\":\"fileurl2\"},{\"url\":\"fileurl3\"}],\"options\":[{\"option\":\"option1\"},{\"option\":\"option2\"},{\"option\":\"option3\"}]}]}";
+//
+//		JSONObject jsonObject = new JSONObject(jobJson);
+//		String description = jsonObject.getString("description");
+//		String name = jsonObject.getString("name");
+//		System.out.println(description);
+//		System.out.println(name);
+//
+////		System.out.println();
+//
+//		JSONArray itemArray = jsonObject.getJSONArray("itemList");
+////		System.out.println(itemArray);
+//		for (int i = 0; i < itemArray.length(); i++) {
+//			JSONObject itemObject = itemArray.getJSONObject(i);
+//
+//			System.out.println(itemObject);
+////			System.out.println(itemObject);
+//
+//			String itemDescription=itemObject.getString("description");
+//			System.out.println(itemDescription);
+//
+////			System.out.println(itemObject.getString("isRequired"));
+//
+//
+//
+//			boolean isRequired=Boolean.parseBoolean(itemObject.getString("isRequired"));
+//			boolean isMultiple=Boolean.parseBoolean(itemObject.getString("isMultiple"));
+//
+//			System.out.println(isRequired);
+//			System.out.println(isMultiple);
+//			List<String> img_urls=new ArrayList<>();
+//			JSONArray imgUrlArray=itemObject.getJSONArray("img_urls");
+//			System.out.println(imgUrlArray);
+//			for (int j=0;j<imgUrlArray.length();j++){
+//				JSONObject imgUrlObject=imgUrlArray.getJSONObject(j);
+//				System.out.println(imgUrlObject.getString("url"));
+//
+//			}
+//
+//
+//			System.out.println(itemObject.keySet());
+//
+//			JSONArray fileArray=itemObject.getJSONArray("file_urls");
+//			System.out.println(fileArray);
+//			for (int j=0;j<fileArray.length();j++){
+//				JSONObject fileObject=fileArray.getJSONObject(j);
+//				System.out.println(fileObject.getString("url"));
+//
+//			}
+//
+//			JSONArray optionArray=itemObject.getJSONArray("options");
+//			System.out.println(optionArray);
+//			for (int j=0;j<optionArray.length();j++){
+//				JSONObject optionObject=optionArray.getJSONObject(j);
+//				System.out.println(optionObject.getString("option"));
+//
+//			}
+//
+//
+//
+//
+//		}
+//	}
 }

+ 1 - 1
src/main/java/edu/nju/service/ItemService.java

@@ -32,7 +32,7 @@ public class ItemService {
         return jobDao.findJob(job_id);
     }
 
-    public List<Answer>getAnswerByWorker(String item_id,String worker_id){
+    public List<Answer> getAnswerByWorker(String item_id, String worker_id){
         return answerDao.findAnswersByItemWorker(item_id, worker_id);
     }