/druid-admin/src/main/java/com/alibaba/druid/admin/model/dto/WallResult.java

https://github.com/alibaba/druid · Java · 117 lines · 94 code · 13 blank · 10 comment · 4 complexity · f8aca16555bd943299c04ee08aa3d846 MD5 · raw file

  1. package com.alibaba.druid.admin.model.dto;
  2. import com.alibaba.fastjson2.annotation.JSONField;
  3. import lombok.Data;
  4. import lombok.NoArgsConstructor;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.List;
  8. /**
  9. * @author linchtech
  10. * @date 2020-09-17 18:18
  11. **/
  12. @Data
  13. @NoArgsConstructor
  14. public class WallResult {
  15. @JSONField(name = "ResultCode")
  16. private int ResultCode;
  17. @JSONField(name = "Content")
  18. private ContentBean Content = new ContentBean();
  19. @NoArgsConstructor
  20. @Data
  21. public static class ContentBean {
  22. @JSONField(name = "checkCount")
  23. private int checkCount;
  24. @JSONField(name = "hardCheckCount")
  25. private int hardCheckCount;
  26. @JSONField(name = "violationCount")
  27. private int violationCount;
  28. @JSONField(name = "violationEffectRowCount")
  29. private int violationEffectRowCount;
  30. @JSONField(name = "blackListHitCount")
  31. private int blackListHitCount;
  32. @JSONField(name = "blackListSize")
  33. private int blackListSize;
  34. @JSONField(name = "whiteListHitCount")
  35. private int whiteListHitCount;
  36. @JSONField(name = "whiteListSize")
  37. private int whiteListSize;
  38. @JSONField(name = "syntaxErrorCount")
  39. private int syntaxErrorCount;
  40. @JSONField(name = "tables")
  41. private List<TablesBean> tables = new ArrayList<>();
  42. @JSONField(name = "functions")
  43. private List<FunctionsBean> functions = new ArrayList<>();
  44. @JSONField(name = "blackList")
  45. private List<Object> blackList = new ArrayList<>();
  46. @JSONField(name = "whiteList")
  47. private List<WhiteListBean> whiteList = new ArrayList<>();
  48. @NoArgsConstructor
  49. @Data
  50. public static class TablesBean {
  51. @JSONField(name = "name")
  52. private String name;
  53. @JSONField(name = "selectCount")
  54. private int selectCount;
  55. @JSONField(name = "fetchRowCount")
  56. private int fetchRowCount;
  57. @JSONField(name = "fetchRowCountHistogram")
  58. private List<Integer> fetchRowCountHistogram;
  59. }
  60. @NoArgsConstructor
  61. @Data
  62. public static class FunctionsBean {
  63. @JSONField(name = "name")
  64. private String name;
  65. @JSONField(name = "invokeCount")
  66. private int invokeCount;
  67. }
  68. @NoArgsConstructor
  69. @Data
  70. public static class WhiteListBean {
  71. @JSONField(name = "sql")
  72. private String sql;
  73. @JSONField(name = "sample")
  74. private String sample;
  75. @JSONField(name = "executeCount")
  76. private int executeCount;
  77. @JSONField(name = "fetchRowCount")
  78. private int fetchRowCount;
  79. }
  80. }
  81. /**
  82. * 累加结果
  83. *
  84. * @param wallResult 需要累加的对象
  85. * @param sumResult 累加后的对象
  86. */
  87. public void sum(WallResult wallResult, WallResult sumResult) {
  88. sumResult.getContent().setCheckCount(sumResult.getContent().getCheckCount() + wallResult.getContent().getCheckCount());
  89. sumResult.getContent().setHardCheckCount(sumResult.getContent().getHardCheckCount() + wallResult.getContent().getHardCheckCount());
  90. sumResult.getContent().setViolationCount(sumResult.getContent().getViolationCount() + wallResult.getContent().getViolationCount());
  91. sumResult.getContent().setViolationEffectRowCount(sumResult.getContent().getViolationEffectRowCount() + wallResult.getContent().getViolationEffectRowCount());
  92. sumResult.getContent().setBlackListHitCount(sumResult.getContent().getBlackListHitCount() + wallResult.getContent().getBlackListHitCount());
  93. sumResult.getContent().setBlackListSize(sumResult.getContent().getBlackListSize() + wallResult.getContent().getBlackListSize());
  94. sumResult.getContent().setWhiteListHitCount(sumResult.getContent().getWhiteListHitCount() + wallResult.getContent().getWhiteListHitCount());
  95. sumResult.getContent().setWhiteListSize(sumResult.getContent().getWhiteListSize() + wallResult.getContent().getWhiteListSize());
  96. sumResult.getContent().setSyntaxErrorCount(sumResult.getContent().getSyntaxErrorCount() + wallResult.getContent().getSyntaxErrorCount());
  97. sumResult.getContent().getTables().addAll(wallResult.getContent().getTables() == null ? Collections.emptyList() : wallResult.getContent().getTables());
  98. sumResult.getContent().getFunctions().addAll(wallResult.getContent().getFunctions() == null ? Collections.emptyList() :
  99. wallResult.getContent().getFunctions());
  100. sumResult.getContent().getBlackList().addAll(wallResult.getContent().getBlackList() == null ? Collections.emptyList() :
  101. wallResult.getContent().getBlackList());
  102. sumResult.getContent().getWhiteList().addAll(wallResult.getContent().getWhiteList() == null ? Collections.emptyList() : wallResult.getContent().getWhiteList());
  103. }
  104. }