PanelInstanceDao.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package com.uas.kanban.dao;
  2. import com.uas.kanban.annotation.NotEmpty;
  3. import com.uas.kanban.base.BaseDao;
  4. import com.uas.kanban.model.PanelInstance;
  5. import com.uas.kanban.model.User;
  6. import com.uas.kanban.support.SystemSession;
  7. import com.uas.kanban.util.CollectionUtils;
  8. import org.mongodb.morphia.query.Query;
  9. import org.springframework.stereotype.Component;
  10. import java.util.HashMap;
  11. import java.util.List;
  12. import java.util.Map;
  13. /**
  14. * 面板实例
  15. *
  16. * @author sunyj
  17. * @since 2017/10/18 14:21
  18. */
  19. @Component
  20. public class PanelInstanceDao extends BaseDao<PanelInstance> {
  21. @Override
  22. protected Map<String, Object> globalFilter() {
  23. User user = SystemSession.checkUser();
  24. Map<String, Object> filters = new HashMap<>();
  25. // 所有用户只能操作自己的实例
  26. filters.put("userCode", user.getCode());
  27. return filters;
  28. }
  29. /**
  30. * 获取指定面板的实例
  31. *
  32. * @param panelCode 所指定的面板 code
  33. * @return 面板实例
  34. */
  35. public PanelInstance findByPanelCode(@NotEmpty("panelCode") String panelCode) {
  36. return findOneBy("panelCode", panelCode);
  37. }
  38. /**
  39. * 根据用户和面板,删除相应的实例
  40. *
  41. * @param userCode 用户 code
  42. * @param panelCodes 面板 code
  43. * @return 删除的数据条数
  44. */
  45. public int deleteByUserCodeAndPanelCode(@NotEmpty("userCode") String userCode, List<String> panelCodes) {
  46. if (CollectionUtils.isEmpty(panelCodes)) {
  47. return 0;
  48. }
  49. Query<PanelInstance> query = createQueryWithoutGlobalFilter();
  50. query.field("userCode").equal(userCode);
  51. query.field("panelCode").in(panelCodes);
  52. return delete(query);
  53. }
  54. }