فهرست منبع

添加group实体类及相关操作

MengyangDuan 5 سال پیش
والد
کامیت
29cc640f2f

+ 22 - 22
src/main/java/edu/nju/controller/ItemController.java

@@ -100,28 +100,28 @@ public class ItemController {
         }
     }
 
-    @RequestMapping(value = "/saveAnswer", method = RequestMethod.POST)
-    @ResponseBody
-    public void saveAnswer(String item_id, String worker_id,String job_id, @RequestParam("answers")List<String>answers, @RequestParam("attachment_location") List<String> attachment_location, HttpServletResponse response){
-        JSONObject result = new JSONObject();
-        String id = iservice.saveAnswer(item_id, worker_id, job_id, answers, attachment_location);
-        if(id.equals("")) {
-            result.put("status", "200");
-            result.put("id", id);
-        }
-        else {
-            result.put("status", "500");
-        }
-        try {
-            PrintWriter out = response.getWriter();
-            out.print(result);
-            out.flush();
-            out.close();
-        }catch (IOException e) {
-            // TODO Auto-generated catch block
-            e.printStackTrace();
-        }
-    }
+//    @RequestMapping(value = "/saveAnswer", method = RequestMethod.POST)
+//    @ResponseBody
+//    public void saveAnswer(String item_id, String worker_id,String job_id, @RequestParam("answers")List<String>answers, @RequestParam("attachment_location") List<String> attachment_location, HttpServletResponse response){
+//        JSONObject result = new JSONObject();
+//        String id = iservice.saveAnswer(item_id, worker_id, job_id, answers, attachment_location);
+//        if(id.equals("")) {
+//            result.put("status", "200");
+//            result.put("id", id);
+//        }
+//        else {
+//            result.put("status", "500");
+//        }
+//        try {
+//            PrintWriter out = response.getWriter();
+//            out.print(result);
+//            out.flush();
+//            out.close();
+//        }catch (IOException e) {
+//            // TODO Auto-generated catch block
+//            e.printStackTrace();
+//        }
+//    }
 
     @RequestMapping(value = "/updateAnswer", method = RequestMethod.POST)
     @ResponseBody

+ 32 - 0
src/main/java/edu/nju/dao/GroupDao.java

@@ -0,0 +1,32 @@
+package edu.nju.dao;
+
+import edu.nju.entities.Group;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public class GroupDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    //存在则更新,不存在则插入
+    public String save(Group group){
+        mongoOperations.save(group);
+        return group.getId();
+    }
+
+    public List<String>getItemsByUserJob(String worker_id,String job_id){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("workers_id").is(worker_id).and("job_id").is(job_id));
+        List<Group>list = mongoOperations.find(query, Group.class);
+        if(list.size() == 0 || list == null) {return null;}
+        return list.get(0).getItem_id();
+    }
+
+}

+ 82 - 0
src/main/java/edu/nju/entities/Group.java

@@ -0,0 +1,82 @@
+package edu.nju.entities;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+@Document
+public class Group implements java.io.Serializable{
+
+    private static final long serialVersionUID = -1113511530478451822L;
+
+    @Id
+    private String id;
+
+    private String name;
+
+    private String description;
+
+    private List<String>workers_id;
+
+    private String job_id;
+
+    private List<String> item_id;
+
+    public Group(String name, String description, List<String> workers_id, String job_id, List<String> item_id) {
+        this.name = name;
+        this.description = description;
+        this.workers_id = workers_id;
+        this.job_id = job_id;
+        this.item_id = item_id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public List<String> getWorkers_id() {
+        return workers_id;
+    }
+
+    public void setWorkers_id(List<String> workers_id) {
+        this.workers_id = workers_id;
+    }
+
+    public String getJob_id() {
+        return job_id;
+    }
+
+    public void setJob_id(String job_id) {
+        this.job_id = job_id;
+    }
+
+    public List<String> getItem_id() {
+        return item_id;
+    }
+
+    public void setItem_id(List<String> item_id) {
+        this.item_id = item_id;
+    }
+
+}

+ 12 - 1
src/main/java/edu/nju/entities/Item.java

@@ -20,6 +20,8 @@ public class Item implements java.io.Serializable {
 
     private String job_id;
 
+    private String name;
+
     private String description;
 
     private List<String> img_urls;
@@ -33,7 +35,8 @@ public class Item implements java.io.Serializable {
     private List<String> options;
 
     @PersistenceConstructor
-    public Item(String description, List<String> img_urls, boolean isRequired, boolean isMultiple, List<String> attachment_locations, List<String> options, String job_id) {
+    public Item(String name,String description, List<String> img_urls, boolean isRequired, boolean isMultiple, List<String> attachment_locations, List<String> options, String job_id) {
+        this.name=name;
         this.description = description;
         this.img_urls = img_urls;
         this.isRequired = isRequired;
@@ -51,6 +54,14 @@ public class Item implements java.io.Serializable {
         this.id = id;
     }
 
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
     public String getDescription() {
         return description;
     }

+ 1 - 45
src/main/java/edu/nju/entities/Job.java

@@ -16,14 +16,6 @@ public class Job implements java.io.Serializable{
 
     private String name;
 
-    private String create_time_millis;
-
-    private String device_model;
-
-    private String device_brand;
-
-    private String device_os;
-
     private String script_location;
 
     private String report_location;
@@ -31,13 +23,9 @@ public class Job implements java.io.Serializable{
     private String log_location;
 
     @PersistenceConstructor
-    public Job(String description, String name, String create_time_millis, String device_model, String device_brand, String device_os, String script_location, String report_location, String log_location) {
+    public Job(String description, String name, String script_location, String report_location, String log_location) {
         this.description = description;
         this.name = name;
-        this.create_time_millis = create_time_millis;
-        this.device_model = device_model;
-        this.device_brand = device_brand;
-        this.device_os = device_os;
         this.script_location = script_location;
         this.report_location = report_location;
         this.log_location = log_location;
@@ -67,38 +55,6 @@ public class Job implements java.io.Serializable{
         this.name = name;
     }
 
-    public String getCreate_time_millis() {
-        return create_time_millis;
-    }
-
-    public void setCreate_time_millis(String create_time_millis) {
-        this.create_time_millis = create_time_millis;
-    }
-
-    public String getDevice_model() {
-        return device_model;
-    }
-
-    public void setDevice_model(String device_model) {
-        this.device_model = device_model;
-    }
-
-    public String getDevice_brand() {
-        return device_brand;
-    }
-
-    public void setDevice_brand(String device_brand) {
-        this.device_brand = device_brand;
-    }
-
-    public String getDevice_os() {
-        return device_os;
-    }
-
-    public void setDevice_os(String device_os) {
-        this.device_os = device_os;
-    }
-
     public String getScript_location() {
         return script_location;
     }

+ 47 - 2
src/main/java/edu/nju/entities/UserToItem.java

@@ -19,10 +19,22 @@ public class UserToItem implements java.io.Serializable{
 
     private String job_id;
 
-    public UserToItem(String worker_id, List<String> item_id, String job_id) {
-        this.item_id = item_id;
+    private String create_time_millis;
+
+    private String device_model;
+
+    private String device_brand;
+
+    private String device_os;
+
+    public UserToItem(String worker_id, List<String> item_id, String job_id, String create_time_millis, String device_model, String device_brand, String device_os) {
         this.worker_id = worker_id;
+        this.item_id = item_id;
         this.job_id = job_id;
+        this.create_time_millis = create_time_millis;
+        this.device_model = device_model;
+        this.device_brand = device_brand;
+        this.device_os = device_os;
     }
 
     public String getId() {
@@ -56,4 +68,37 @@ public class UserToItem implements java.io.Serializable{
     public void setJob_id(String job_id) {
         this.job_id = job_id;
     }
+
+    public String getCreate_time_millis() {
+        return create_time_millis;
+    }
+
+    public void setCreate_time_millis(String create_time_millis) {
+        this.create_time_millis = create_time_millis;
+    }
+
+    public String getDevice_model() {
+        return device_model;
+    }
+
+    public void setDevice_model(String device_model) {
+        this.device_model = device_model;
+    }
+
+    public String getDevice_brand() {
+        return device_brand;
+    }
+
+    public void setDevice_brand(String device_brand) {
+        this.device_brand = device_brand;
+    }
+
+    public String getDevice_os() {
+        return device_os;
+    }
+
+    public void setDevice_os(String device_os) {
+        this.device_os = device_os;
+    }
+
 }

+ 26 - 17
src/main/java/edu/nju/service/ExtraService.java

@@ -144,7 +144,7 @@ public class ExtraService {
 		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()),"","","","","",""));
+		String job_id=jobDao.save(new Job(description,name,"","",""));
 
 		JSONArray itemArray=jsonObject.getJSONArray("itemList");
 		//save item
@@ -159,8 +159,8 @@ public class ExtraService {
 		}
 
 		//worker_id-item_id_list
-		JSONArray workerArray=jsonObject.getJSONArray("workerList");
-		createWorkerToItem(item_index_to_id,workerArray,job_id,item_id_to_optionNum);
+		JSONArray groupArray=jsonObject.getJSONArray("groupList");
+		createWorkerToItem(item_index_to_id,groupArray,job_id,item_id_to_optionNum);
 
 		return job_id;
 
@@ -169,6 +169,7 @@ public class ExtraService {
 	private String saveItem(JSONObject itemObject,String job_id,HashMap<String,Integer>item_id_to_optionNum){
 
 //			JSONObject itemObject=itemArray.getJSONObject(i);
+			String name=itemObject.getString("name");
 			String description=itemObject.getString("description");
 			List<String> img_urls=new ArrayList<>();
 			JSONArray imgUrlArray=itemObject.getJSONArray("img_urls");
@@ -195,31 +196,39 @@ public class ExtraService {
 //				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);
+			Item item=new Item(name,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");
+	private void createWorkerToItem(HashMap<String,String> item_index_to_id,JSONArray groupArray,String job_id,HashMap<String,Integer>item_id_to_optionNum){
+		for(int i=0;i<groupArray.length();i++){
+			JSONObject groupObject=groupArray.getJSONObject(i);
+			String description=groupObject.getString("description");
+			String name=groupObject.getString("name");
+			JSONArray workerArray=groupObject.getJSONArray("worker_list");
+			List<String> workerList=new ArrayList<>();
+			for (int j=0;j<workerArray.length();j++){
+				JSONObject workerObject=workerArray.getJSONObject(j);
+				workerList.add(workerObject.getString("worker_id"));
+			}
+			JSONArray itemIndexArray=groupObject.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);
+			itemService.saveGroup(name,description,workerList,job_id,itemIdList);
+			for(int j=0;j<workerList.size();j++){
+				String worker_id=workerList.get(j);
+//				itemService.saveUserToItem(worker_id,itemIdList,job_id,"","","","");
+				for(int k=0;k<itemIdList.size();k++){
+					String item_id=itemIdList.get(k);
+					int optionNum=item_id_to_optionNum.get(item_id);
+					String answer_id=itemService.saveAnswer(item_id,worker_id,job_id,optionNum);
+				}
 			}
 		}
 	}

+ 16 - 15
src/main/java/edu/nju/service/ItemService.java

@@ -1,13 +1,7 @@
 package edu.nju.service;
 
-import edu.nju.dao.AnswerDao;
-import edu.nju.dao.ItemDao;
-import edu.nju.dao.JobDao;
-import edu.nju.dao.UserToItemDao;
-import edu.nju.entities.Answer;
-import edu.nju.entities.Item;
-import edu.nju.entities.Job;
-import edu.nju.entities.UserToItem;
+import edu.nju.dao.*;
+import edu.nju.entities.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -24,6 +18,8 @@ public class ItemService {
     AnswerDao answerDao;
     @Autowired
     UserToItemDao userToItemDao;
+    @Autowired
+    GroupDao groupDao;
 
     public List<Item>getJobItems(String job_id){
         return itemDao.findItemsByJob(job_id);
@@ -40,10 +36,10 @@ public class ItemService {
         return answerDao.findAnswersByJobWorker(job_id, worker_id);
     }
 
-    public String saveAnswer(String item_id, String worker_id,String job_id, List<String>answers,List<String> attachment_location){
-        Answer answer=new Answer(item_id,answers,worker_id,attachment_location,job_id);
-        return answerDao.save(answer);
-    }
+//    public String saveAnswer(String item_id, String worker_id,String job_id, List<String>answers,List<String> attachment_location){
+//        Answer answer=new Answer(item_id,answers,worker_id,attachment_location,job_id);
+//        return answerDao.save(answer);
+//    }
 
     //对answer进行初始化
     public String saveAnswer(String item_id, String worker_id,String job_id, int optionNum){
@@ -67,7 +63,7 @@ public class ItemService {
     }
 
     public List<Item>getItemsByWorkerJob(String worker_id,String job_id){
-        List<String>itemIds = userToItemDao.getItemsByUserJob(worker_id, job_id);
+        List<String>itemIds = groupDao.getItemsByUserJob(worker_id, job_id);
         List<Item>items=new ArrayList<>();
         if(itemIds==null||itemIds.size()==0){
             return null;
@@ -79,9 +75,14 @@ public class ItemService {
         return items;
     }
 
-    public String saveUserToItem(String worker_id, List<String> item_id, String job_id){
-        UserToItem userToItem=new UserToItem(worker_id, item_id, job_id);
+    public String saveUserToItem(String worker_id, List<String> item_id, String job_id, String create_time_millis, String device_model, String device_brand, String device_os){
+        UserToItem userToItem=new UserToItem(worker_id, item_id, job_id,create_time_millis,device_model,device_brand,device_os);
         return userToItemDao.save(userToItem);
     }
 
+    public String saveGroup(String name, String description, List<String> workers_id, String job_id, List<String> item_id){
+        Group group=new Group(name, description, workers_id, job_id, item_id);
+        return groupDao.save(group);
+    }
+
 }