SqlUtil.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package org.example.join.util;
  2. import cn.hutool.core.util.StrUtil;
  3. import com.baomidou.mybatisplus.core.metadata.TableFieldInfo;
  4. import com.baomidou.mybatisplus.core.metadata.TableInfo;
  5. import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
  6. import com.baomidou.mybatisplus.core.toolkit.StringPool;
  7. import org.example.join.domain.IQueryColumn;
  8. import org.example.join.domain.Table;
  9. import java.util.Map;
  10. import java.util.StringJoiner;
  11. public class SqlUtil {
  12. public static String getTableAlias(Table table, Map<String, String> tableAliasMap) {
  13. String tableAlias = table.getAlias();
  14. String tableName = table.getName();
  15. if (StrUtil.isBlank(tableAlias)) {
  16. tableAlias = tableAliasMap.get(tableName);
  17. if (StrUtil.isBlank(tableAlias)) {
  18. throw new IllegalArgumentException("未知连表:" + tableName);
  19. }
  20. }
  21. return tableAlias;
  22. }
  23. public static String getTableDelFlag(Table table) {
  24. TableInfo tableInfo = TableInfoHelper.getTableInfo(table.getName());
  25. if (!tableInfo.isWithLogicDelete()) {
  26. return null;
  27. }
  28. TableFieldInfo logicDeleteFieldInfo = tableInfo.getLogicDeleteFieldInfo();
  29. return logicDeleteFieldInfo.getColumn();
  30. }
  31. public static void putParam(Map<String, Object> paramMap, StringJoiner joiner, Object value) {
  32. String mapKey = SqlConstant.SQL_PARAM + (paramMap.size() + 1);
  33. joiner.add(StringPool.HASH_LEFT_BRACE + mapKey + StringPool.RIGHT_BRACE);
  34. paramMap.put(mapKey, value);
  35. }
  36. public static void putValue(Map<String, String> tableAliasMap, Map<String, Object> paramMap, StringJoiner joiner, Object value) {
  37. if (value instanceof IQueryColumn) {
  38. joiner.add(((IQueryColumn) value).toSql(tableAliasMap, paramMap));
  39. } else {
  40. putParam(paramMap, joiner, value);
  41. }
  42. }
  43. }