package edu.nju.dao; import java.util.List; 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 edu.nju.entities.Report; @Repository public class ReportDao { @Autowired private MongoOperations mongoOperations; public String save(Report report) { mongoOperations.save(report); return report.getId(); } public boolean update(String id, Report report) { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); List list = mongoOperations.find(query, Report.class); if(list == null || list.size() == 0) { return false;} else { report.setId(id); mongoOperations.save(report); return true; } } public Report findById(String id) { Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); List list = mongoOperations.find(query, Report.class); if(list == null || list.size() == 0) { return null; } else { return list.get(0); } } public Report findByWoker(String case_take_id, String worker_id) { Query query = new Query(); query.addCriteria(Criteria.where("case_take_id").is(case_take_id).and("worker_id").is(worker_id)); List list = mongoOperations.find(query, Report.class); if(list == null || list.size() == 0) { return null; } else { return list.get(0); } } public List findByCaseTakeId(String case_take_id) { Query query = new Query(); query.addCriteria(Criteria.where("case_take_id").is(case_take_id)); return mongoOperations.find(query, Report.class); } public List findByExamId(String task_id) { Query query = new Query(); query.addCriteria(Criteria.where("task_id").is(task_id)); return mongoOperations.find(query, Report.class); } public List findReportsByWorker(String worker_id) { Query query = new Query(); query.addCriteria(Criteria.where("worker_id").is(worker_id)); return mongoOperations.find(query, Report.class); } public List findByCaseId(String caseId){ Query query = new Query(); query.addCriteria(Criteria.where("case_id").is(caseId)); return mongoOperations.find(query, Report.class); } }