表模型(tableModel)信息

    • tableDefine: 表定义;
    • orderColumns: 排序字段;
    • bizFieldsMap: 业务key识别,如:createTime,updateTime,queryList, searchKey, allColumn 等信息;
    • dicts: 数据字典项等信息;

    主要的方法和功能请参看源码。

    源码

    1. * 表模型结构
    2. * @author david
    3. * @since 2018/12/12
    4. */
    5. class TableModelVo {
    6. /**
    7. * table的表定义信息
    8. */
    9. TableDefineVo tableDefine;
    10. /**
    11. * 排序字段
    12. */
    13. List<OrderColumnVo> orderColumns;
    14. /**
    15. * 业务字段列表,以逗号分隔
    16. */
    17. Map<String, String> bizFieldsMap = new LinkedHashMap<String, String>();
    18. /**
    19. * 字段List, 转换为List,方便获取
    20. */
    21. Map<String, List<String>> fieldListMap = new HashMap<String, List<String>>();
    22. /**
    23. * 字典项map
    24. */
    25. Map<String, DictVo> dictMap;
    26. /**
    27. * 是否不在List中
    28. * @param listName
    29. * @param columnName
    30. * @return
    31. */
    32. boolean isNotInList(String listName, String columnName) {
    33. return !isInList(listName, columnName);
    34. }
    35. /**
    36. * 是否在List中
    37. * @param listName
    38. * @param columnName
    39. * @return
    40. */
    41. boolean isInList(String listName, String columnName) {
    42. List<String> columnNameList = this.getColumnNameList(listName);
    43. //如果为空,默认为TRUE
    44. if (CollectionUtils.isEmpty(columnNameList)) {
    45. return true;
    46. }
    47. return columnNameList.contains(columnName);
    48. /**
    49. * 根据listName获取list列表
    50. * @return
    51. */
    52. List<String> getColumnNameList(String listName) {
    53. if (fieldListMap.containsKey(listName)) {
    54. return fieldListMap.get(listName);
    55. } else {
    56. return this.parseListStrAndPutIntoMap(listName);
    57. }
    58. }
    59. /**
    60. * 将字符串转换为List<String>便于之后contains校验,也可以转为Set
    61. * @param listName
    62. */
    63. private List<String> parseListStrAndPutIntoMap(String listName) {
    64. String listStr = bizFieldsMap.get(listName);
    65. if (StringUtils.isEmpty(listStr)) {
    66. listStr = bizFieldsMap.get(MoliCodeConstant.BIZ_FIELDS_KEY_ALLCOLUMN)
    67. }
    68. if (StringUtils.isEmpty(listStr)) {
    69. return null;
    70. }
    71. String[] columnNameArr = listStr.split(",");
    72. List<String> columnNameList = Arrays.asList(columnNameArr);
    73. fieldListMap.put(listName, columnNameList);
    74. return columnNameList;
    75. }
    76. /**
    77. * 将字符串转换为List<String>便于之后contains校验,也可以转为Set
    78. * @param listName
    79. */
    80. int listSize(String listName) {
    81. List<String> columnNameList = this.getColumnNameList(listName)
    82. //如果为空,默认为全部
    83. if (CollectionUtils.isEmpty(columnNameList)) {
    84. return 0;
    85. }
    86. return columnNameList.size();
    87. }
    88. /**
    89. * 所有列表中是否包含tag
    90. * @param tagName
    91. * @return
    92. */
    93. boolean listContainsTag(String tagName) {
    94. for (ColumnVo column : tableDefine.getColumns()) {
    95. if (column.getJspTag().equalsIgnoreCase(tagName)) {
    96. return true;
    97. }
    98. }
    99. return false;
    100. }
    101. * @param listName
    102. * @param tagName
    103. * @return
    104. */
    105. boolean listContainsTag(String listName, String tagName) {
    106. List<String> list = getColumnNameList(listName);
    107. if (CollectionUtils.isEmpty(list)) {
    108. return false;
    109. }
    110. for (ColumnVo column : tableDefine.getColumns()) {
    111. if (list.contains(column.getColumnName()) && column.getJspTag().equalsIgnoreCase(tagName)) {
    112. return true;
    113. }
    114. }
    115. return false;
    116. }
    117. /**
    118. * 取消,直接通过key获取
    119. * @return
    120. */
    121. @Deprecated
    122. List<String> getSearchKeyList() {
    123. return getColumnNameList(MoliCodeConstant.BIZ_FIELDS_KEY_SEARCHKEY);
    124. }
    125. /**
    126. * 设置bizFields
    127. * @param key
    128. * @param bizFields
    129. */
    130. void putBizFields(String key, String bizFields) {
    131. bizFieldsMap.put(key, bizFields);
    132. }
    133. /**
    134. * 通过key 获取 bizFields
    135. * @param key
    136. */
    137. String getBizFields(String key) {
    138. return bizFieldsMap.get(key);
    139. }
    140. /**
    141. * 获取创建时间字段
    142. */
    143. String getCreateTime() {
    144. return bizFieldsMap.get(MoliCodeConstant.BIZ_FIELDS_KEY_CREATETIME)
    145. }
    146. /**
    147. * 获取更新时间字段
    148. */
    149. String getUpdateTime() {
    150. return bizFieldsMap.get(MoliCodeConstant.BIZ_FIELDS_KEY_UPDATETIME)
    151. }