24282 1 jaar geleden
bovenliggende
commit
1276bcec22

+ 2 - 10
sd-business/src/main/java/com/sd/business/util/sql/FieldUtil.java

@@ -24,15 +24,6 @@ public class FieldUtil {
     public static <K, V> String getSqlFieldName(SFunction<K, V> function) {
         LambdaMeta meta = LambdaUtils.extract(function);
         String alias = getTableAlias(meta.getInstantiatedClass());
-        return getSqlFieldName(alias, meta);
-    }
-
-    /**
-     * 获取sql字段名
-     * 例:getSqlFieldName("s", DemoEntity::getBaseId) -》 return "s.base_id"
-     */
-    public static <K, V> String getSqlFieldName(String alias, SFunction<K, V> function) {
-        LambdaMeta meta = LambdaUtils.extract(function);
         String fieldName = StrUtil.toUnderlineCase(PropertyNamer.methodToProperty(meta.getImplMethodName()));
         return alias + StringPool.DOT + fieldName;
     }
@@ -41,7 +32,8 @@ public class FieldUtil {
      * 获取sql字段名
      * 例:getSqlFieldName("s", DemoEntity::getBaseId) -》 return "s.base_id"
      */
-    public static String getSqlFieldName(String alias, LambdaMeta meta) {
+    public static <K, V> String getSqlFieldName(String alias, SFunction<K, V> function) {
+        LambdaMeta meta = LambdaUtils.extract(function);
         String fieldName = StrUtil.toUnderlineCase(PropertyNamer.methodToProperty(meta.getImplMethodName()));
         return alias + StringPool.DOT + fieldName;
     }

+ 6 - 13
sd-business/src/main/java/com/sd/business/util/sql/Fields.java

@@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
-import com.baomidou.mybatisplus.core.toolkit.support.LambdaMeta;
 import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
 import lombok.AllArgsConstructor;
 import org.apache.ibatis.reflection.property.PropertyNamer;
@@ -24,8 +23,7 @@ public class Fields<T> {
     }
 
     public <S, V> Fields<T> select(String alias, SFunction<S, V> function) {
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add(FieldUtil.getSqlFieldName(alias, meta));
+        sql.fieldList.add(sql.getSqlFieldName(alias, function));
         return this;
     }
 
@@ -37,8 +35,7 @@ public class Fields<T> {
 
     public <S, V> Fields<T> select(String alias, SFunction<S, V> function, SFunction<T, ?> asFunction) {
         String as = PropertyNamer.methodToProperty(LambdaUtils.extract(asFunction).getImplMethodName());
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add(FieldUtil.getSqlFieldName(alias, meta) + StringPool.SPACE + as);
+        sql.fieldList.add(sql.getSqlFieldName(alias, function) + StringPool.SPACE + as);
         return this;
     }
 
@@ -71,8 +68,7 @@ public class Fields<T> {
 
     public <S, V> Fields<T> max(String alias, SFunction<S, V> function, SFunction<T, ?> asFunction) {
         String as = PropertyNamer.methodToProperty(LambdaUtils.extract(asFunction).getImplMethodName());
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add("MAX(" + FieldUtil.getSqlFieldName(alias, meta) + ")" + StringPool.SPACE + as);
+        sql.fieldList.add("MAX(" + sql.getSqlFieldName(alias, function) + ")" + StringPool.SPACE + as);
         return this;
     }
 
@@ -84,8 +80,7 @@ public class Fields<T> {
 
     public <S, V> Fields<T> min(String alias, SFunction<S, V> function, SFunction<T, ?> asFunction) {
         String as = PropertyNamer.methodToProperty(LambdaUtils.extract(asFunction).getImplMethodName());
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add("MIN(" + FieldUtil.getSqlFieldName(alias, meta) + ")" + StringPool.SPACE + as);
+        sql.fieldList.add("MIN(" + sql.getSqlFieldName(alias, function) + ")" + StringPool.SPACE + as);
         return this;
     }
 
@@ -97,8 +92,7 @@ public class Fields<T> {
 
     public <S, V> Fields<T> count(String alias, SFunction<S, V> function, SFunction<T, ?> asFunction) {
         String as = PropertyNamer.methodToProperty(LambdaUtils.extract(asFunction).getImplMethodName());
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add("COUNT(" + FieldUtil.getSqlFieldName(alias, meta) + ")" + StringPool.SPACE + as);
+        sql.fieldList.add("COUNT(" + sql.getSqlFieldName(alias, function) + ")" + StringPool.SPACE + as);
         return this;
     }
 
@@ -110,8 +104,7 @@ public class Fields<T> {
 
     public <S, V> Fields<T> sum(String alias, SFunction<S, V> function, SFunction<T, ?> asFunction) {
         String as = PropertyNamer.methodToProperty(LambdaUtils.extract(asFunction).getImplMethodName());
-        LambdaMeta meta = LambdaUtils.extract(function);
-        sql.fieldList.add("SUM(" + FieldUtil.getSqlFieldName(alias, meta) + ")" + StringPool.SPACE + as);
+        sql.fieldList.add("SUM(" + sql.getSqlFieldName(alias, function) + ")" + StringPool.SPACE + as);
         return this;
     }
 

+ 6 - 0
sd-business/src/main/java/com/sd/business/util/sql/Sql.java

@@ -48,6 +48,12 @@ public class Sql<T> {
         return alias + StringPool.DOT + fieldName;
     }
 
+    protected <K, V> String getSqlFieldName(String alias, SFunction<K, V> function) {
+        LambdaMeta meta = LambdaUtils.extract(function);
+        String fieldName = StrUtil.toUnderlineCase(PropertyNamer.methodToProperty(meta.getImplMethodName()));
+        return alias + StringPool.DOT + fieldName;
+    }
+
     protected String getSql() {
         return "SELECT " + (distinct ? "DISTINCT " : StringPool.EMPTY) +
                 CollectionUtil.join(fieldList, StringPool.COMMA) +

+ 17 - 17
sd-business/src/main/java/com/sd/business/util/sql/Where.java

@@ -46,7 +46,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> orderByAsc(String alias, SFunction<K, V> function) {
-        return orderByAsc(FieldUtil.getSqlFieldName(alias, function));
+        return orderByAsc(sql.getSqlFieldName(alias, function));
     }
 
     public <K, V> Where<T> orderByDesc(SFunction<K, V> function) {
@@ -54,7 +54,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> orderByDesc(String alias, SFunction<K, V> function) {
-        return orderByDesc(FieldUtil.getSqlFieldName(alias, function));
+        return orderByDesc(sql.getSqlFieldName(alias, function));
     }
 
     /**
@@ -65,7 +65,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> between(String alias, SFunction<K, V> function, Object val1, Object val2) {
-        return between(FieldUtil.getSqlFieldName(alias, function), val1, val2);
+        return between(sql.getSqlFieldName(alias, function), val1, val2);
     }
 
     public Where<T> between(String sqlFieldName, Object val1, Object val2) {
@@ -80,7 +80,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> eq(String alias, SFunction<K, V> function, Object value) {
-        return eq(FieldUtil.getSqlFieldName(alias, function), value);
+        return eq(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> eq(String sqlFieldName, Object value) {
@@ -95,7 +95,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> ne(String alias, SFunction<K, V> function, Object value) {
-        return ne(FieldUtil.getSqlFieldName(alias, function), value);
+        return ne(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> ne(String sqlFieldName, Object value) {
@@ -110,7 +110,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> ge(String alias, SFunction<K, V> function, Object value) {
-        return ge(FieldUtil.getSqlFieldName(alias, function), value);
+        return ge(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> ge(String sqlFieldName, Object value) {
@@ -125,7 +125,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> gt(String alias, SFunction<K, V> function, Object value) {
-        return gt(FieldUtil.getSqlFieldName(alias, function), value);
+        return gt(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> gt(String sqlFieldName, Object value) {
@@ -140,7 +140,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> le(String alias, SFunction<K, V> function, Object value) {
-        return le(FieldUtil.getSqlFieldName(alias, function), value);
+        return le(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> le(String sqlFieldName, Object value) {
@@ -155,7 +155,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> lt(String alias, SFunction<K, V> function, Object value) {
-        return lt(FieldUtil.getSqlFieldName(alias, function), value);
+        return lt(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> lt(String sqlFieldName, Object value) {
@@ -170,7 +170,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> like(String alias, SFunction<K, V> function, Object value) {
-        return like(FieldUtil.getSqlFieldName(alias, function), value);
+        return like(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> like(String sqlFieldName, Object value) {
@@ -185,7 +185,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> notLike(String alias, SFunction<K, V> function, Object value) {
-        return notLike(FieldUtil.getSqlFieldName(alias, function), value);
+        return notLike(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> notLike(String sqlFieldName, Object value) {
@@ -200,7 +200,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> likeLeft(String alias, SFunction<K, V> function, Object value) {
-        return likeLeft(FieldUtil.getSqlFieldName(alias, function), value);
+        return likeLeft(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> likeLeft(String sqlFieldName, Object value) {
@@ -215,7 +215,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> likeRight(String alias, SFunction<K, V> function, Object value) {
-        return likeRight(FieldUtil.getSqlFieldName(alias, function), value);
+        return likeRight(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> likeRight(String sqlFieldName, Object value) {
@@ -230,7 +230,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> in(String alias, SFunction<K, V> function, Collection<?> value) {
-        return in(FieldUtil.getSqlFieldName(alias, function), value);
+        return in(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> in(String sqlFieldName, Collection<?> value) {
@@ -242,7 +242,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> in(String alias, SFunction<K, V> function, Object... value) {
-        return in(FieldUtil.getSqlFieldName(alias, function), value);
+        return in(sql.getSqlFieldName(alias, function), value);
     }
 
     /**
@@ -253,7 +253,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> notIn(String alias, SFunction<K, V> function, Collection<?> value) {
-        return notIn(FieldUtil.getSqlFieldName(alias, function), value);
+        return notIn(sql.getSqlFieldName(alias, function), value);
     }
 
     public Where<T> notIn(String sqlFieldName, Collection<?> value) {
@@ -265,7 +265,7 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
     }
 
     public <K, V> Where<T> notIn(String alias, SFunction<K, V> function, Object... value) {
-        return notIn(FieldUtil.getSqlFieldName(alias, function), value);
+        return notIn(sql.getSqlFieldName(alias, function), value);
     }
 
     @Override