Browse Source

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

xujiawei 5 years ago
parent
commit
49272b2506

+ 72 - 0
src/main/java/edu/nju/controller/ItemController.java

@@ -1,4 +1,76 @@
 package edu.nju.controller;
 
+import edu.nju.entities.Answer;
+import edu.nju.entities.Item;
+import edu.nju.entities.Job;
+import edu.nju.service.ItemService;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.List;
+
+@Controller
+@RequestMapping(value = "/item")
+@CrossOrigin(origins = "*", maxAge = 3600, allowCredentials = "true")
 public class ItemController {
+
+    @Autowired
+    ItemService iservice;
+
+    @RequestMapping(value = "/getItemsByJob")
+    @ResponseBody
+    public void getItemListByJobId(String job_id, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            List<Item> items = iservice.getJobItems(job_id);
+            out.print(new JSONArray(items));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+    }
+
+    @RequestMapping(value = "/getJob")
+    @ResponseBody
+    public void getJobById(String job_id, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            Job job = iservice.getJob(job_id);
+            out.print(new JSONObject(job));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    @RequestMapping(value = "/getAnswersByWorker")
+    @ResponseBody
+    public void getAnswerByWorkerId(String item_id,String worker_id, HttpServletResponse response){
+        try {
+            PrintWriter out = response.getWriter();
+            List<Answer> answers = iservice.getAnswerByWorker(item_id, worker_id);
+            out.print(new JSONArray(answers));
+            out.flush();
+            out.close();
+        }catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+    }
+
+    
+
 }

+ 28 - 0
src/main/java/edu/nju/dao/AnswerDao.java

@@ -0,0 +1,28 @@
+package edu.nju.dao;
+
+import edu.nju.entities.Answer;
+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 AnswerDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    public List<Answer> findAnswersByItenWorker(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);
+    }
+
+    public String save(Answer answer){
+        mongoOperations.save(answer);
+        return answer.getId();
+    }
+}

+ 36 - 0
src/main/java/edu/nju/dao/ItemDao.java

@@ -0,0 +1,36 @@
+package edu.nju.dao;
+
+import edu.nju.entities.Item;
+import edu.nju.entities.Job;
+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 ItemDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    public String saveItem(Item item){
+        mongoOperations.save(item);
+        return item.getId();
+    }
+
+
+    public List<Item>findItemsByJob(String job_id){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("task_id").is(job_id));
+        return mongoOperations.find(query, Item.class);
+    }
+
+
+
+
+}
+

+ 12 - 0
src/main/java/edu/nju/dao/ItemToUserDao.java

@@ -0,0 +1,12 @@
+package edu.nju.dao;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public class ItemToUserDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+}

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

@@ -0,0 +1,26 @@
+package edu.nju.dao;
+
+import edu.nju.entities.Job;
+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 JobDao {
+
+    @Autowired
+    private MongoOperations mongoOperations;
+
+    //id查询,find查询所有
+    public Job findJob(String id){
+        Query query = new Query();
+        query.addCriteria(Criteria.where("_id").is(id));
+        List<Job> list = mongoOperations.find(query,Job.class);
+        if(list.size() == 0 || list == null) {return null;}
+        return list.get(0);
+    }
+}

+ 12 - 10
src/main/java/edu/nju/entities/Answer.java

@@ -3,6 +3,8 @@ 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 Answer implements java.io.Serializable{
 
@@ -14,15 +16,15 @@ public class Answer implements java.io.Serializable{
 
     private String item_id;
 
-    private int[] answers;
+    private List<String> answers;
 
-    private String user_id;
+    private String worker_id;
 
-    public Answer(String id, String item_id, int[] answers, String user_id) {
+    public Answer(String id, String item_id, List<String> answers, String worker_id) {
         this.id = id;
         this.item_id = item_id;
         this.answers = answers;
-        this.user_id = user_id;
+        this.worker_id = worker_id;
     }
 
 
@@ -42,20 +44,20 @@ public class Answer implements java.io.Serializable{
         this.item_id = item_id;
     }
 
-    public int[] getAnswers() {
+    public List<String> getAnswers() {
         return answers;
     }
 
-    public void setAnswers(int[] answers) {
+    public void setAnswers(List<String> answers) {
         this.answers = answers;
     }
 
-    public String getUser_id() {
-        return user_id;
+    public String getWorker_id() {
+        return worker_id;
     }
 
-    public void setUser_id(String user_id) {
-        this.user_id = user_id;
+    public void setWorker_id(String worker_id) {
+        this.worker_id = worker_id;
     }
 
 

+ 17 - 16
src/main/java/edu/nju/entities/Item.java

@@ -4,6 +4,7 @@ import org.springframework.data.annotation.Id;
 import org.springframework.data.annotation.PersistenceConstructor;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import java.util.List;
 import java.util.Set;
 
 @Document
@@ -21,25 +22,25 @@ public class Item implements java.io.Serializable {
 
     private String description;
 
-    private Set<String> img_urls;
+    private List<String> img_urls;
 
     private boolean isRequired;
 
     private boolean isMultiple;
 
-    private String attachment_location;
+    private List<String> attachment_locations;
 
-    private String[] answers;
+    private List<String> options;
 
     @PersistenceConstructor
-    public Item(String id, String description, Set<String> img_urls, boolean isRequired, boolean isMultiple, String attachment_location,String[] answers,String job_id) {
+    public Item(String id, String description, List<String> img_urls, boolean isRequired, boolean isMultiple, List<String> attachment_locations, List<String> options, String job_id) {
         this.id = id;
         this.description = description;
         this.img_urls = img_urls;
         this.isRequired = isRequired;
         this.isMultiple = isMultiple;
-        this.attachment_location = attachment_location;
-        this.answers = answers;
+        this.attachment_locations = attachment_locations;
+        this.options = options;
         this.job_id = job_id;
     }
 
@@ -59,11 +60,11 @@ public class Item implements java.io.Serializable {
         this.description = description;
     }
 
-    public Set<String> getImg_urls() {
+    public List<String> getImg_urls() {
         return img_urls;
     }
 
-    public void setImg_urls(Set<String> img_urls) {
+    public void setImg_urls(List<String> img_urls) {
         this.img_urls = img_urls;
     }
 
@@ -83,20 +84,20 @@ public class Item implements java.io.Serializable {
         isMultiple = multiple;
     }
 
-    public String getAttachment_location() {
-        return attachment_location;
+    public List<String> getAttachment_locations() {
+        return attachment_locations;
     }
 
-    public void setAttachment_location(String attachment_location) {
-        this.attachment_location = attachment_location;
+    public void setAttachment_locations(List<String> attachment_locations) {
+        this.attachment_locations = attachment_locations;
     }
 
-    public String[] getAnswers() {
-        return answers;
+    public List<String> getOptions() {
+        return options;
     }
 
-    public void setAnswers(String[] answers) {
-        this.answers = answers;
+    public void setOptions(List<String> options) {
+        this.options = options;
     }
 
     public String getJob_id() {

+ 49 - 0
src/main/java/edu/nju/entities/ItemToUser.java

@@ -0,0 +1,49 @@
+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 ItemToUser implements java.io.Serializable{
+
+    private static final long serialVersionUID = -4472809119623302014L;
+
+    @Id
+    private String id;
+
+    private String item_id;
+
+    private List<String>user_id;
+
+    public ItemToUser(String id, String item_id, List<String> user_id) {
+        this.id = id;
+        this.item_id = item_id;
+        this.user_id = user_id;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getItem_id() {
+        return item_id;
+    }
+
+    public void setItem_id(String item_id) {
+        this.item_id = item_id;
+    }
+
+    public List<String> getUser_id() {
+        return user_id;
+    }
+
+    public void setUser_id(List<String> user_id) {
+        this.user_id = user_id;
+    }
+}

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

@@ -0,0 +1,39 @@
+package edu.nju.service;
+
+import edu.nju.dao.AnswerDao;
+import edu.nju.dao.ItemDao;
+import edu.nju.dao.JobDao;
+import edu.nju.entities.Answer;
+import edu.nju.entities.Item;
+import edu.nju.entities.Job;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ItemService {
+    @Autowired
+    ItemDao itemDao;
+    @Autowired
+    JobDao jobDao;
+    @Autowired
+    AnswerDao answerDao;
+
+    public List<Item>getJobItems(String job_id){
+        return itemDao.findItemsByJob(job_id);
+    }
+
+    public Job getJob(String job_id){
+        return jobDao.findJob(job_id);
+    }
+
+    public List<Answer>getAnswerByWorker(String item_id,String worker_id){
+        return answerDao.findAnswersByItenWorker(item_id, worker_id);
+    }
+
+    public String saveAnswer(Answer answer){
+        return answerDao.save(answer);
+    }
+
+}