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