From c3338024f150aedad213b4acb970174a141879c0 Mon Sep 17 00:00:00 2001 From: wangyu <727842003@qq.com> Date: Mon, 9 Nov 2020 23:03:14 +0800 Subject: [PATCH] =?UTF-8?q?Feat=EF=BC=9A=E6=B7=BB=E5=8A=A0=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=9A=84=E6=9F=A5=E8=AF=A2=E5=AE=9E=E4=BD=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flyfish/framework/enums/NamedEnum.java | 11 +++ .../framework/domain/base/NameLikeQo.java | 74 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 flyfish-common/src/main/java/com/flyfish/framework/enums/NamedEnum.java create mode 100644 flyfish-data/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java diff --git a/flyfish-common/src/main/java/com/flyfish/framework/enums/NamedEnum.java b/flyfish-common/src/main/java/com/flyfish/framework/enums/NamedEnum.java new file mode 100644 index 0000000..161f37c --- /dev/null +++ b/flyfish-common/src/main/java/com/flyfish/framework/enums/NamedEnum.java @@ -0,0 +1,11 @@ +package com.flyfish.framework.enums; + +/** + * 带有名称字段的枚举 + * + * @author wangyu + */ +public interface NamedEnum { + + String getName(); +} diff --git a/flyfish-data/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java new file mode 100644 index 0000000..0686a8f --- /dev/null +++ b/flyfish-data/src/main/java/com/flyfish/framework/domain/base/NameLikeQo.java @@ -0,0 +1,74 @@ +package com.flyfish.framework.domain.base; + +import com.flyfish.framework.builder.CriteriaBuilder; +import com.flyfish.framework.domain.base.BaseQo; +import com.flyfish.framework.domain.base.Domain; +import lombok.Getter; +import lombok.Setter; +import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.query.Criteria; +import org.springframework.util.StringUtils; + +import java.util.Collection; + +/** + * 基于名字模糊匹配的查询实体 + */ +@Getter +@Setter +public abstract class NameLikeQo extends BaseQo { + + protected String name; + + protected String code; + + protected String createTimeStart; + + protected String createTimeEnd; + + protected String modifyTimeStart; + + protected String modifyTimeEnd; + + protected String creatorId; + + protected String modifierId; + + protected Boolean enable; + + protected Collection ids; + + protected String excludeId; + + /** + * 排序参数 + */ + private String sort; + + /** + * 去重字段 + */ + private String distinct; + + @Override + public CriteriaBuilder criteriaBuilder() { + return CriteriaBuilder.accept(this) + .with("name", CriteriaBuilder.Builders.LIKE) + .with("enable", "code", "creatorId", "modifierId") + .with("ids", "id", CriteriaBuilder.Builders.IN) + .with("excludeId", "id", Criteria::ne) + .with("createTimeStart", "createTime", CriteriaBuilder.Builders.DATE_GTE) + .with("createTimeEnd", "createTime", CriteriaBuilder.Builders.DATE_LTE) + .with("modifyTimeStart", "modifyTime", CriteriaBuilder.Builders.DATE_GTE) + .with("modifyTimeEnd", "modifyTime", CriteriaBuilder.Builders.DATE_LTE); + } + + + @Override + public Sort sorts() { + if (StringUtils.isEmpty(sort)) { + return super.sorts(); + } + return Sort.by(Sort.Order.desc(sort)); + } +}