package org.example.join.util; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.TableFieldInfo; import com.baomidou.mybatisplus.core.metadata.TableInfo; import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.StringPool; import org.example.join.domain.IQueryColumn; import org.example.join.domain.Table; import java.util.Map; import java.util.StringJoiner; public class SqlUtil { public static String getTableAlias(Table table, Map tableAliasMap) { String tableAlias = table.getAlias(); String tableName = table.getName(); if (StrUtil.isBlank(tableAlias)) { tableAlias = tableAliasMap.get(tableName); if (StrUtil.isBlank(tableAlias)) { throw new IllegalArgumentException("未知连表:" + tableName); } } return tableAlias; } public static String getTableDelFlag(Table table) { TableInfo tableInfo = TableInfoHelper.getTableInfo(table.getName()); if (!tableInfo.isWithLogicDelete()) { return null; } TableFieldInfo logicDeleteFieldInfo = tableInfo.getLogicDeleteFieldInfo(); return logicDeleteFieldInfo.getColumn(); } public static void putParam(Map paramMap, StringJoiner joiner, Object value) { String mapKey = SqlConstant.SQL_PARAM + (paramMap.size() + 1); joiner.add(StringPool.HASH_LEFT_BRACE + mapKey + StringPool.RIGHT_BRACE); paramMap.put(mapKey, value); } public static void putValue(Map tableAliasMap, Map paramMap, StringJoiner joiner, Object value) { if (value instanceof IQueryColumn) { joiner.add(((IQueryColumn) value).toSql(tableAliasMap, paramMap)); } else { putParam(paramMap, joiner, value); } } }