|
@@ -2,19 +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.entities.Bug;
|
|
|
-import edu.nju.entities.Exam;
|
|
|
-import edu.nju.entities.Report;
|
|
|
-import edu.nju.entities.TestCase;
|
|
|
import edu.nju.util.ExcelToJson;
|
|
|
|
|
|
@Service
|
|
@@ -31,12 +26,26 @@ public class ExtraService {
|
|
|
|
|
|
@Autowired
|
|
|
BugDao bugDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ JobDao jobDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ItemDao itemDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ ItemService itemService;
|
|
|
|
|
|
//测试用例相关
|
|
|
public String saveTestCase(String report_id, String name, String front, String behind, String description) {
|
|
|
TestCase testCase = new TestCase(name, front, behind, description, report_id, Long.toString(System.currentTimeMillis()));
|
|
|
return testDao.save(testCase);
|
|
|
}
|
|
|
+
|
|
|
+// public String saveTestCase(String report_id, String name, String front, String behind, String description,String if_execute,String if_bug) {
|
|
|
+// TestCase testCase = new TestCase(name, front, behind, description, report_id, Long.toString(System.currentTimeMillis()),if_execute,if_bug);
|
|
|
+// return testDao.save(testCase);
|
|
|
+// }
|
|
|
|
|
|
public boolean updateTestCase(String id, String report_id, String name, String front, String behind, String description) {
|
|
|
try {
|
|
@@ -90,6 +99,15 @@ public class ExtraService {
|
|
|
return json;
|
|
|
}
|
|
|
|
|
|
+// public String saveExam1(String case_id, String path, String app_name, String paper_type, String test_type, String description,
|
|
|
+// String if_test_case,String if_bug) {
|
|
|
+// String json = ExcelToJson.ExcelTranse(path).toString();
|
|
|
+//// Exam exam = new Exam(case_id, json, app_name, paper_type, test_type, description);
|
|
|
+// Exam exam = new Exam(case_id, json, app_name, paper_type, test_type, description,if_test_case,if_bug);
|
|
|
+// examDao.save(exam);
|
|
|
+// return json;
|
|
|
+// }
|
|
|
+
|
|
|
public JSONArray getExamList() {
|
|
|
List<Exam> result = examDao.findAll();
|
|
|
JSONArray array = new JSONArray();
|
|
@@ -119,4 +137,161 @@ public class ExtraService {
|
|
|
public Exam getExam(String id) {
|
|
|
return examDao.findById(id);
|
|
|
}
|
|
|
+
|
|
|
+ public String saveJob(String jobJson){
|
|
|
+ JSONObject jsonObject=new JSONObject(jobJson);
|
|
|
+ String description=jsonObject.getString("description");
|
|
|
+ String name=jsonObject.getString("name");
|
|
|
+// 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<>();
|
|
|
+ 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,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,item_id_to_optionNum);
|
|
|
+
|
|
|
+ return 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");
|
|
|
+ List<String> img_urls=new ArrayList<>();
|
|
|
+ JSONArray imgUrlArray=itemObject.getJSONArray("img_urls");
|
|
|
+ for (int j=0;j<imgUrlArray.length();j++){
|
|
|
+ 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"));
|
|
|
+ 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);
|
|
|
+ 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,HashMap<String,Integer>item_id_to_optionNum){
|
|
|
+ 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);
|
|
|
+ itemService.saveUserToItem(worker_id,itemIdList,job_id);
|
|
|
+ for(int j=0;j<itemIdList.size();j++){
|
|
|
+ String item_id=itemIdList.get(j);
|
|
|
+ int optionNum=item_id_to_optionNum.get(item_id);
|
|
|
+ String answer_id=itemService.saveAnswer(item_id,worker_id,job_id,optionNum);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+// 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"));
|
|
|
+//
|
|
|
+// }
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|