ThumsUpDao.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package edu.nju.dao;
  2. import java.util.HashSet;
  3. import java.util.List;
  4. import java.util.Set;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.data.mongodb.core.MongoOperations;
  7. import org.springframework.data.mongodb.core.query.Criteria;
  8. import org.springframework.data.mongodb.core.query.Query;
  9. import org.springframework.data.mongodb.core.query.Update;
  10. import org.springframework.stereotype.Repository;
  11. import edu.nju.entities.ThumsUp;
  12. @Repository
  13. public class ThumsUpDao {
  14. @Autowired
  15. private MongoOperations mongoOperations;
  16. public ThumsUp findByReport(String report_id) {
  17. Query query = new Query();
  18. query.addCriteria(Criteria.where("_id").is(report_id));
  19. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  20. if(list == null || list.size() == 0) {return null;}
  21. return list.get(0);
  22. }
  23. public void saveGood(String id, String report_id) {
  24. Query query = new Query();
  25. query.addCriteria(Criteria.where("_id").is(report_id));
  26. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  27. if(list == null || list.size() == 0) {
  28. Set<String> good = new HashSet<String>();
  29. good.add(id);
  30. ThumsUp thumsup = new ThumsUp(report_id, good, new HashSet<String>());
  31. mongoOperations.save(thumsup);
  32. } else {
  33. Update update = new Update();
  34. Set<String> good = list.get(0).getThums();
  35. good.add(id);
  36. update.set("thums", good);
  37. mongoOperations.updateFirst(query, update, ThumsUp.class);
  38. }
  39. }
  40. public void cancelGood(String id, String report_id) {
  41. Query query = new Query();
  42. query.addCriteria(Criteria.where("_id").is(report_id));
  43. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  44. if(list != null && list.size() != 0) {
  45. Update update = new Update();
  46. Set<String> good = list.get(0).getThums();
  47. if(good.contains(id)) { good.remove(id); }
  48. update.set("thums", good);
  49. mongoOperations.updateFirst(query, update, ThumsUp.class);
  50. }
  51. }
  52. public void saveDiss(String id, String report_id) {
  53. Query query = new Query();
  54. query.addCriteria(Criteria.where("_id").is(report_id));
  55. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  56. if(list == null || list.size() == 0) {
  57. Set<String> bad = new HashSet<String>();
  58. bad.add(id);
  59. ThumsUp thumsup = new ThumsUp(report_id, new HashSet<String>(), bad);
  60. mongoOperations.save(thumsup);
  61. } else {
  62. Update update = new Update();
  63. Set<String> bad = list.get(0).getDiss();
  64. bad.add(id);
  65. update.set("diss", bad);
  66. mongoOperations.updateFirst(query, update, ThumsUp.class);
  67. }
  68. }
  69. public void cancelDiss(String id, String report_id) {
  70. Query query = new Query();
  71. query.addCriteria(Criteria.where("_id").is(report_id));
  72. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  73. if(list != null && list.size() != 0) {
  74. Update update = new Update();
  75. Set<String> bad = list.get(0).getDiss();
  76. if(bad.contains(id)) { bad.remove(id); }
  77. update.set("diss", bad);
  78. mongoOperations.updateFirst(query, update, ThumsUp.class);
  79. }
  80. }
  81. public List<ThumsUp> findByReports(List<String>report_ids) {
  82. Query query = new Query();
  83. query.addCriteria(Criteria.where("_id").in(report_ids));
  84. List<ThumsUp> list = mongoOperations.find(query, ThumsUp.class);
  85. return list;
  86. }
  87. }