From ff6929ed6db05af888bfabb09f9e56c561235861 Mon Sep 17 00:00:00 2001
From: wangyu <727842003@qq.com>
Date: Wed, 3 Aug 2022 17:35:15 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
flyfish-approval/pom.xml | 2 +-
flyfish-backup/pom.xml | 2 +-
flyfish-common/pom.xml | 4 +-
flyfish-data/flyfish-data-common/pom.xml | 2 +-
.../annotations/query/QueryField.java | 100 ++++++++++++++++++
.../flyfish/framework/domain/base/BaseQo.java | 2 +-
.../framework/domain/base/NameLikeQo.java | 13 ++-
.../com/flyfish/framework/query/Queries.java | 16 +++
flyfish-data/flyfish-data-mongodb/pom.xml | 2 +-
flyfish-data/flyfish-data-r2dbc/pom.xml | 2 +-
flyfish-data/pom.xml | 2 +-
flyfish-dict/pom.xml | 2 +-
flyfish-file/pom.xml | 4 +-
flyfish-form/pom.xml | 2 +-
flyfish-logging/pom.xml | 2 +-
flyfish-user/pom.xml | 2 +-
flyfish-web/pom.xml | 2 +-
pom.xml | 2 +-
18 files changed, 145 insertions(+), 18 deletions(-)
create mode 100644 flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/annotations/query/QueryField.java
create mode 100644 flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/Queries.java
diff --git a/flyfish-approval/pom.xml b/flyfish-approval/pom.xml
index a44af21..3263d16 100644
--- a/flyfish-approval/pom.xml
+++ b/flyfish-approval/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-backup/pom.xml b/flyfish-backup/pom.xml
index 9e5febd..34d4ef9 100644
--- a/flyfish-backup/pom.xml
+++ b/flyfish-backup/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-common/pom.xml b/flyfish-common/pom.xml
index 934eb11..e4cd846 100644
--- a/flyfish-common/pom.xml
+++ b/flyfish-common/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
@@ -65,4 +65,4 @@
-
\ No newline at end of file
+
diff --git a/flyfish-data/flyfish-data-common/pom.xml b/flyfish-data/flyfish-data-common/pom.xml
index f846226..60559e1 100644
--- a/flyfish-data/flyfish-data-common/pom.xml
+++ b/flyfish-data/flyfish-data-common/pom.xml
@@ -5,7 +5,7 @@
flyfish-data
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/annotations/query/QueryField.java b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/annotations/query/QueryField.java
new file mode 100644
index 0000000..bf1c978
--- /dev/null
+++ b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/annotations/query/QueryField.java
@@ -0,0 +1,100 @@
+package com.flyfish.framework.annotations.query;
+
+import com.flyfish.framework.enums.NamedEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import org.springframework.core.annotation.AliasFor;
+
+import java.lang.annotation.*;
+
+/**
+ * 查询字段注解,声明映射,查询逻辑
+ *
+ * @author wangyu
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface QueryField {
+
+ /**
+ * @return 绑定的持久层字段
+ */
+ @AliasFor("name")
+ String value() default "";
+
+ /**
+ * @return 绑定的持久层字段
+ */
+ String name() default "";
+
+ /**
+ * @return 表达式类型
+ */
+ Type type() default Type.EQ;
+
+ /**
+ * 拼接在某个字段前
+ *
+ * @return
+ */
+ String before() default "";
+
+ /**
+ * @return 和前面条件表达式的连接方式
+ */
+ Logistic[] start() default Logistic.AND;
+
+ /**
+ * @return 和后面条件表达式的连接方式
+ */
+ Logistic[] end() default Logistic.NULL;
+
+ /**
+ * @return 当前类内排序值
+ */
+ int order() default 0;
+
+ /**
+ * 查询类型
+ */
+ @AllArgsConstructor
+ @Getter
+ enum Type implements NamedEnum {
+
+ EQ("等于字段值"),
+ NE("不等于字段值"),
+ GT("大于字段值"),
+ GTE("大于等于字段值"),
+ LT("小于字段值"),
+ LTE("小于等于字段值"),
+ LIKE("模糊匹配字段值"),
+ LIKE_LEFT("匹配左半部分字段值"),
+ LIKE_RIGHT("匹配有半部分字段值"),
+ IN("在字段值列表内"),
+ NIN("不再字段值列表内"),
+ NOT_NULL("不为空"),
+ IS_NULL("为空"),
+ BETWEEN("介于列表下标0和1的值之间"),
+ DATE_GTE("日期大于字段值"),
+ DATE_LTE("日期小于字段值");
+
+ private final String name;
+ }
+
+ /**
+ * 查询逻辑
+ */
+ @AllArgsConstructor
+ @Getter
+ enum Logistic implements NamedEnum {
+
+ NULL("无"),
+ AND("与"),
+ OR("或"),
+ BRACKET_START("左括号"),
+ BRACKET_END("右括号");
+
+ private final String name;
+ }
+}
diff --git a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/BaseQo.java b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/BaseQo.java
index 7d91b0a..9852acc 100644
--- a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/BaseQo.java
+++ b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/BaseQo.java
@@ -124,7 +124,7 @@ public class BaseQo implements Qo {
* @return 结果
*/
public CriteriaBuilder criteriaBuilder() {
- return null;
+ return CriteriaBuilder.accept(this);
}
/**
diff --git a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java
index 732ab7a..6d6b219 100644
--- a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java
+++ b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java
@@ -1,6 +1,8 @@
package com.flyfish.framework.domain.base;
+import com.flyfish.framework.annotations.query.QueryField;
import com.flyfish.framework.builder.CriteriaBuilder;
+import com.flyfish.framework.query.Queries;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.domain.Sort;
@@ -17,22 +19,31 @@ import java.util.List;
@Setter
public class NameLikeQo extends BaseQo {
+ @QueryField(type = QueryField.Type.LIKE)
protected String name;
+ @QueryField
protected String code;
+ @QueryField(name = "createTime", type = QueryField.Type.BETWEEN)
protected List createTimeRange;
+ @QueryField(name = "modifyTime", type = QueryField.Type.BETWEEN)
protected List modifyTimeRange;
+ @QueryField
protected String creatorId;
+ @QueryField
protected String modifierId;
+ @QueryField
protected Boolean enable;
+ @QueryField(type = QueryField.Type.IN)
protected Collection ids;
+ @QueryField(name = "id", type = QueryField.Type.NE)
protected String excludeId;
/**
@@ -47,7 +58,7 @@ public class NameLikeQo extends BaseQo {
@Override
public CriteriaBuilder criteriaBuilder() {
- return CriteriaBuilder.accept(this)
+ return super.criteriaBuilder()
.with("name", CriteriaBuilder.Builders.LIKE)
.with("enable", "code", "creatorId", "modifierId")
.with("ids", "id", CriteriaBuilder.Builders.IN)
diff --git a/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/Queries.java b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/Queries.java
new file mode 100644
index 0000000..6fffe14
--- /dev/null
+++ b/flyfish-data/flyfish-data-common/src/main/java/com/flyfish/framework/query/Queries.java
@@ -0,0 +1,16 @@
+package com.flyfish.framework.query;
+
+import com.flyfish.framework.domain.base.Qo;
+
+/**
+ * 查询工具类
+ * 基于Fluent API风格实现
+ * 底层基于适配器兼容各种数据库,包括关系型数据库和
+ * @author wangyu
+ */
+public final class Queries {
+
+ public static Queries of(Qo> qo) {
+
+ }
+}
diff --git a/flyfish-data/flyfish-data-mongodb/pom.xml b/flyfish-data/flyfish-data-mongodb/pom.xml
index cf8289b..f79189c 100644
--- a/flyfish-data/flyfish-data-mongodb/pom.xml
+++ b/flyfish-data/flyfish-data-mongodb/pom.xml
@@ -5,7 +5,7 @@
flyfish-data
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-data/flyfish-data-r2dbc/pom.xml b/flyfish-data/flyfish-data-r2dbc/pom.xml
index 31a976b..18ffc68 100644
--- a/flyfish-data/flyfish-data-r2dbc/pom.xml
+++ b/flyfish-data/flyfish-data-r2dbc/pom.xml
@@ -5,7 +5,7 @@
flyfish-data
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-data/pom.xml b/flyfish-data/pom.xml
index 9c6c6b2..a2b2d80 100644
--- a/flyfish-data/pom.xml
+++ b/flyfish-data/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-dict/pom.xml b/flyfish-dict/pom.xml
index f00684a..5f1ae0d 100644
--- a/flyfish-dict/pom.xml
+++ b/flyfish-dict/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-file/pom.xml b/flyfish-file/pom.xml
index 3e9a350..65b5ae5 100644
--- a/flyfish-file/pom.xml
+++ b/flyfish-file/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
@@ -24,4 +24,4 @@
true
-
\ No newline at end of file
+
diff --git a/flyfish-form/pom.xml b/flyfish-form/pom.xml
index fe62764..aec8c9c 100644
--- a/flyfish-form/pom.xml
+++ b/flyfish-form/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-logging/pom.xml b/flyfish-logging/pom.xml
index e74473e..9b6b7d9 100644
--- a/flyfish-logging/pom.xml
+++ b/flyfish-logging/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-user/pom.xml b/flyfish-user/pom.xml
index 738451b..1a539e0 100644
--- a/flyfish-user/pom.xml
+++ b/flyfish-user/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/flyfish-web/pom.xml b/flyfish-web/pom.xml
index 10059f1..a1669a2 100644
--- a/flyfish-web/pom.xml
+++ b/flyfish-web/pom.xml
@@ -5,7 +5,7 @@
flyfish-framework
com.flyfish.framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
4.0.0
diff --git a/pom.xml b/pom.xml
index bc9cea4..fe848e5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.flyfish.framework
flyfish-framework
- 0.0.1-SNAPSHOT
+ 0.1.0-SNAPSHOT
pom