package edu.nju.dao; import edu.nju.entities.ReviewWorker; import edu.nju.model.ReviewWorkerVO; import org.json.JSONObject; 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; import edu.nju.util.HTTP; @Repository public class ReviewWorkerDao { @Autowired private MongoOperations mongoOperations; public String save(ReviewWorker worker) { mongoOperations.save(worker); return worker.getId(); } public ReviewWorker getWorkerByOriginalId(String originalId,String jobId){ Query query = new Query(); query.addCriteria(Criteria.where("original_id").is(originalId).and("job_id").is(jobId)); List list = mongoOperations.find(query,ReviewWorker.class); if(list == null||list.size() == 0) {return null;} return list.get(0); } public ListgetWorkersByJob(String jobId){ Query query = new Query(); query.addCriteria(Criteria.where("job_id").is(jobId)); List list = mongoOperations.find(query,ReviewWorker.class); return list; } public void removeByJob(String jobId){ Query query = new Query(); query.addCriteria(Criteria.where("job_id").is(jobId)); mongoOperations.remove(query,ReviewWorker.class); } public ReviewWorker find(String id){ Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); List list = mongoOperations.find(query,ReviewWorker.class); if(list == null||list.size() == 0) {return null;} return list.get(0); } public ReviewWorkerVO getEduInfo(ReviewWorker reviewWorker) { String result = HTTP.sendGet("http://114.55.91.83:8191/api/user/" + reviewWorker.getOriginal_id(), ""); String name = ""; String school = ""; if (result != null && !result.equals("")) { JSONObject json = new JSONObject(result); if (json.has("name") && !json.isNull("name")) { name = json.getString("name"); } if (json.has("school") && !json.isNull("school")) { school = json.getString("school"); } return new ReviewWorkerVO(reviewWorker, name, school); } return null; } }