From 3a0873cbfd798c7b993b882af8471170fa6f42eb Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Thu, 5 Jan 2023 20:06:11 +0800 Subject: [PATCH] t --- .../github/yulichang/toolkit/TableList.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/TableList.java diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/TableList.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/TableList.java new file mode 100644 index 0000000..c13a579 --- /dev/null +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/toolkit/TableList.java @@ -0,0 +1,109 @@ +package com.github.yulichang.toolkit; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +@Data +public class TableList { + + /** + * 所有关联的的表 + */ + private List all = new ArrayList<>(); + + /** + * 主表类型 + */ + private Class rootClass; + + /** + * 关联表 + */ + private List child = new ArrayList<>(); + + /** + * 添加关联表 + * + * @param pIndex 上级索引 可以为null + * @param clazz 关联表类 + * @param hasAlias 是否有别名 + * @param alias 别名 + * @param index 索引 + */ + public void put(Integer pIndex, Class clazz, boolean hasAlias, String alias, int index) { + Node n = new Node(clazz, hasAlias, alias, pIndex, index); + all.add(n); + if (Objects.isNull(pIndex)) { + //一级节点 + child.add(n); + } else { + Node node = getByIndex(pIndex); + node.put(n); + } + } + + public String getPrefix(int index) { + return null; + } + + public String getPrefixOther(int index) { + return null; + } + + + private Node getByIndex(int index) { + return all.stream().filter(i -> i.getIndex() == index).findFirst().orElse(null); + } + + @Data + public static class Node { + + /** + * 关联表类型 + */ + private Class clazz; + + /** + * 是否有别名 + */ + private boolean hasAlias; + + /** + * 表别名 + */ + private String alias; + + /** + * 上级index + */ + private Integer pIndex; + + /** + * 表序号 + */ + private int index; + + /** + * 子集 + */ + private List list; + + public Node(Class clazz, boolean hasAlias, String alias, Integer pIndex, int index) { + this.clazz = clazz; + this.hasAlias = hasAlias; + this.alias = alias; + this.pIndex = pIndex; + this.index = index; + } + + public void put(Node node) { + if (Objects.isNull(list)) { + list = new ArrayList<>(); + } + list.add(node); + } + } +}