From e4c485e3355d5fec1ebfad08c02b2ad527af17a4 Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Fri, 25 Jun 2021 13:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yulichang/wrapper/MPJLambdaWrapper.java | 12 +- .../yulichang/wrapper/interfaces/Query.java | 206 ++++++++++++------ 2 files changed, 147 insertions(+), 71 deletions(-) diff --git a/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java b/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java index 8c5533f..d63c9dc 100644 --- a/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java +++ b/src/main/java/com/github/yulichang/wrapper/MPJLambdaWrapper.java @@ -139,14 +139,18 @@ public class MPJLambdaWrapper extends MPJAbstractLambdaWrapper MPJLambdaWrapper selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias) { - selectColumns.add(SelectColumn.of(LambdaUtils.getEntityClass(column), getCache(column).getColumn(), alias, funcEnum)); + public MPJLambdaWrapper selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, String alias) { + if (condition) { + selectColumns.add(SelectColumn.of(LambdaUtils.getEntityClass(column), getCache(column).getColumn(), alias, funcEnum)); + } return typedThis; } @Override - public MPJLambdaWrapper selectFunc(BaseFuncEnum funcEnum, Object column, String alias) { - selectColumns.add(SelectColumn.of(null, column.toString(), alias, funcEnum)); + public MPJLambdaWrapper selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, String alias) { + if (condition) { + selectColumns.add(SelectColumn.of(null, column.toString(), alias, funcEnum)); + } return typedThis; } diff --git a/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java b/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java index a835a42..6557c10 100644 --- a/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java +++ b/src/main/java/com/github/yulichang/wrapper/interfaces/Query.java @@ -51,32 +51,6 @@ public interface Query extends Serializable { */ Children selectAs(SFunction column, String alias); - /** - * ignore - */ - Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias); - - /** - * ignore - */ - default Children selectFunc(BaseFuncEnum funcEnum, SFunction column) { - return selectFunc(funcEnum, column, column); - } - - /** - * ignore - */ - default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, SFunction alias) { - return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); - } - - /** - * ignore - */ - default Children selectFunc(BaseFuncEnum funcEnum, Object column, SFunction alias) { - return selectFunc(funcEnum, column, LambdaUtils.getName(alias)); - } - /** * 聚合函数查询 * @@ -84,7 +58,41 @@ public interface Query extends Serializable { * @param column 函数作用的字段 * @param alias 别名 */ - Children selectFunc(BaseFuncEnum funcEnum, Object column, String alias); + Children selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, String alias); + + Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, String alias); + + default Children selectFunc(BaseFuncEnum funcEnum, Object column, String alias) { + return selectFunc(true, funcEnum, column, alias); + } + + default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, String alias) { + return selectFunc(true, funcEnum, column, alias); + } + + default Children selectFunc(BaseFuncEnum funcEnum, SFunction column, SFunction alias) { + return selectFunc(true, funcEnum, column, LambdaUtils.getName(alias)); + } + + default Children selectFunc(BaseFuncEnum funcEnum, SFunction column) { + return selectFunc(true, funcEnum, column, column); + } + + default Children selectFunc(BaseFuncEnum funcEnum, Object column, SFunction alias) { + return selectFunc(true, funcEnum, column, LambdaUtils.getName(alias)); + } + + default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column, SFunction alias) { + return selectFunc(condition, funcEnum, column, LambdaUtils.getName(alias)); + } + + default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, SFunction column) { + return selectFunc(condition, funcEnum, column, column); + } + + default Children selectFunc(boolean condition, BaseFuncEnum funcEnum, Object column, SFunction alias) { + return selectFunc(condition, funcEnum, column, LambdaUtils.getName(alias)); + } /** * 忽略查询字段 @@ -119,18 +127,26 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.SUM, column); } - default Children selectSum(Object column, SFunction alias) { - return selectFunc(DefaultFuncEnum.SUM, column, alias); - } - - default Children selectSum(Object column, String alias) { - return selectFunc(DefaultFuncEnum.SUM, column, alias); - } - default Children selectSum(SFunction column, SFunction alias) { return selectFunc(DefaultFuncEnum.SUM, column, alias); } + default Children selectSum(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.SUM, column, alias); + } + + default Children selectSum(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.SUM, column); + } + + default Children selectSum(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.SUM, column, alias); + } + + default Children selectSum(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.SUM, column, alias); + } + /** * COUNT() */ @@ -150,6 +166,30 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.COUNT, column, alias); } + default Children selectCount(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.COUNT, column, alias); + } + + default Children selectCount(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.COUNT, column); + } + + default Children selectCount(boolean condition, Object column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); + } + + default Children selectCount(boolean condition, Object column, String alias) { + return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); + } + + default Children selectCount(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); + } + + default Children selectCount(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.COUNT, column, alias); + } + /** * MAX() */ @@ -157,18 +197,26 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.MAX, column); } - default Children selectMax(Object column, SFunction alias) { - return selectFunc(DefaultFuncEnum.MAX, column, alias); - } - - default Children selectMax(Object column, String alias) { - return selectFunc(DefaultFuncEnum.MAX, column, alias); - } - default Children selectMax(SFunction column, SFunction alias) { return selectFunc(DefaultFuncEnum.MAX, column, alias); } + default Children selectMax(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.MAX, column, alias); + } + + default Children selectMax(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.MAX, column); + } + + default Children selectMax(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.MAX, column, alias); + } + + default Children selectMax(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.MAX, column, alias); + } + /** * MIN() */ @@ -176,18 +224,26 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.MIN, column); } - default Children selectMin(Object column, SFunction alias) { - return selectFunc(DefaultFuncEnum.MIN, column, alias); - } - - default Children selectMin(Object column, String alias) { - return selectFunc(DefaultFuncEnum.MIN, column, alias); - } - default Children selectMin(SFunction column, SFunction alias) { return selectFunc(DefaultFuncEnum.MIN, column, alias); } + default Children selectMin(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.MIN, column, alias); + } + + default Children selectMin(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.MIN, column); + } + + default Children selectMin(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.MIN, column, alias); + } + + default Children selectMin(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.MIN, column, alias); + } + /** * MIN() */ @@ -195,18 +251,26 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.AVG, column); } - default Children selectAvg(Object column, SFunction alias) { - return selectFunc(DefaultFuncEnum.AVG, column, alias); - } - - default Children selectAvg(Object column, String alias) { - return selectFunc(DefaultFuncEnum.AVG, column, alias); - } - default Children selectAvg(SFunction column, SFunction alias) { return selectFunc(DefaultFuncEnum.AVG, column, alias); } + default Children selectAvg(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.AVG, column, alias); + } + + default Children selectAvg(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.AVG, column); + } + + default Children selectAvg(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.AVG, column, alias); + } + + default Children selectAvg(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.AVG, column, alias); + } + /** * LEN() */ @@ -214,15 +278,23 @@ public interface Query extends Serializable { return selectFunc(DefaultFuncEnum.LEN, column); } - default Children selectLen(Object column, SFunction alias) { - return selectFunc(DefaultFuncEnum.LEN, column, alias); - } - - default Children selectLen(Object column, String alias) { - return selectFunc(DefaultFuncEnum.LEN, column, alias); - } - default Children selectLen(SFunction column, SFunction alias) { return selectFunc(DefaultFuncEnum.LEN, column, alias); } + + default Children selectLen(SFunction column, String alias) { + return selectFunc(DefaultFuncEnum.LEN, column, alias); + } + + default Children selectLen(boolean condition, SFunction column) { + return selectFunc(condition, DefaultFuncEnum.LEN, column); + } + + default Children selectLen(boolean condition, SFunction column, SFunction alias) { + return selectFunc(condition, DefaultFuncEnum.LEN, column, alias); + } + + default Children selectLen(boolean condition, SFunction column, String alias) { + return selectFunc(condition, DefaultFuncEnum.LEN, column, alias); + } }