AdmQueryCriteria.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. package com.persagy.proxy.adm.request;
  2. import com.fasterxml.jackson.databind.node.JsonNodeFactory;
  3. import com.fasterxml.jackson.databind.node.ObjectNode;
  4. import lombok.Data;
  5. import java.util.List;
  6. /**
  7. * ADM通用查询条件
  8. * @author Charlie Yu
  9. * @date 2021-08-16
  10. */
  11. @Data
  12. public class AdmQueryCriteria {
  13. /** 可取得的最大记录数 */
  14. private Integer maxRow = 1000;
  15. /** 第几页(从1开始) */
  16. private Integer pageNumber;
  17. /** 每页记录数(0 < 记录数 < 1000) */
  18. private Integer pageSize;
  19. /** 查询条件 */
  20. private String filters;
  21. /** 排序条件 */
  22. private String orders;
  23. /** 去除重复记录 */
  24. private Boolean distinct;
  25. /** 级联对象属性名 - 为级联对象时有值 */
  26. private String name;
  27. /** 字段影射,空为查询所有字段 */
  28. private List<String> projection;
  29. /** 级联对象列表 */
  30. private List<AdmQueryCriteria> cascade;
  31. /** 分组统计 */
  32. private AdmQueryGroup group;
  33. /** 是否只统计总数 */
  34. private boolean onlyCount = false;
  35. /** 关系查询条件 */
  36. private ObjectNode relationFrom;
  37. /** 关系查询条件 */
  38. private ObjectNode relationTo;
  39. /**
  40. * 设置关系条件
  41. * @param isFrom
  42. * @param graphCode
  43. * @param relCode
  44. * @param objId
  45. */
  46. public void resetRelationCond(boolean isFrom, String graphCode, String relCode, String objId) {
  47. resetRelationCond(isFrom, graphCode, relCode, objId, true);
  48. }
  49. /**
  50. * 设置关系条件
  51. * @param isFrom
  52. * @param graphCode
  53. * @param relCode
  54. * @param objId
  55. * @param bindFlag
  56. */
  57. public void resetRelationCond(boolean isFrom, String graphCode, String relCode, String objId, boolean bindFlag) {
  58. resetRelationCond(isFrom, graphCode, relCode, null, objId, bindFlag);
  59. }
  60. /**
  61. * 设置关系条件
  62. * @param isFrom
  63. * @param graphCode
  64. * @param relCode
  65. * @param relValue
  66. * @param objId
  67. * @param bindFlag
  68. */
  69. public void resetRelationCond(boolean isFrom, String graphCode, String relCode, String relValue, String objId, boolean bindFlag) {
  70. ObjectNode relationCond = JsonNodeFactory.instance.objectNode();
  71. relationCond.put("graphCode", graphCode);
  72. relationCond.put("relCode", relCode);
  73. relationCond.put("relValue", relValue);
  74. relationCond.put("$bindFlag", bindFlag);
  75. if(isFrom) {
  76. relationCond.put("objTo", objId);
  77. setRelationFrom(relationCond);
  78. } else {
  79. relationCond.put("objFrom", objId);
  80. setRelationTo(relationCond);
  81. }
  82. }
  83. }