From 332545ca7fa6b2ff791bad4bc3be1affe3a65ed9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Thu, 5 Sep 2019 18:15:19 +0800 Subject: [PATCH] =?utf8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=BA=94=E7=94=A8?= =?utf8?q?=E7=AE=A1=E7=90=86=E7=9A=84=E9=A2=86=E5=9F=9F=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../base/domain/entity/Application.java | 69 +++++++++++++++++ .../domain/repo/ApplicationRepository.java | 76 +++++++++++++++++++ .../domain/service/ApplicationService.java | 32 ++++++++ 3 files changed, 177 insertions(+) create mode 100644 base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Application.java create mode 100644 base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/ApplicationRepository.java create mode 100644 base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Application.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Application.java new file mode 100644 index 0000000..b68fd38 --- /dev/null +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Application.java @@ -0,0 +1,69 @@ +package com.supwisdom.institute.backend.base.domain.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Table; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.common.framework.entity.ABaseEntity; + +@Entity +@Table(name = "TB_BASE_APPLICATION") +public class Application extends ABaseEntity { + + /** + * + */ + private static final long serialVersionUID = -1874484930838884168L; + + /** + * 代码 + */ + @Column(name = "CODE") + @Getter + @Setter + private String code; + + /** + * 名称 + */ + @Column(name = "NAME") + @Getter + @Setter + private String name; + + /** + * 备注 + */ + @Column(name = "MEMO") + @Getter + @Setter + private String memo; + + /** + * 状态(1 启用,0 停用) + */ + @Column(name = "STATUS") + @Getter + @Setter + private String status; + + /** + * 系统访问地址 + */ + @Column(name = "URL", nullable = true) + @Getter + @Setter + private String url; + + /** + * SPI接口地址前缀 + */ + @Column(name = "SPI_URL_PREFIX", nullable = true) + @Getter + @Setter + private String spiUrlPrefix; + +} diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/ApplicationRepository.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/ApplicationRepository.java new file mode 100644 index 0000000..3e1b6ea --- /dev/null +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/ApplicationRepository.java @@ -0,0 +1,76 @@ +package com.supwisdom.institute.backend.base.domain.repo; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; + +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Repository; +import org.springframework.util.StringUtils; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.common.framework.repo.BaseJpaRepository; +import com.supwisdom.institute.backend.common.util.MapBeanUtils; + +@Repository +public interface ApplicationRepository extends BaseJpaRepository { + + @Override + public default Specification convertToSpec(Map mapBean) { + + Specification spec = new Specification() { + + /** + * + */ + private static final long serialVersionUID = -263282246904382286L; + + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + List predicates = new ArrayList<>(); + + if (mapBean != null) { + + if (MapBeanUtils.getBoolean(mapBean, "deleted") != null) { + predicates.add(criteriaBuilder.equal(root.get("deleted"), MapBeanUtils.getBoolean(mapBean, "deleted"))); + } + + if (!StringUtils.isEmpty(MapBeanUtils.getString(mapBean, "code"))) { + predicates.add(criteriaBuilder.like(root.get("code"), "%" + MapBeanUtils.getString(mapBean, "code") + "%")); + } + if (!StringUtils.isEmpty(MapBeanUtils.getString(mapBean, "name"))) { + predicates.add(criteriaBuilder.like(root.get("name"), "%" + MapBeanUtils.getString(mapBean, "name") + "%")); + } + + if (!StringUtils.isEmpty(MapBeanUtils.getString(mapBean, "status"))) { + predicates.add(criteriaBuilder.equal(root.get("status"), MapBeanUtils.getString(mapBean, "status"))); + } + + if (!StringUtils.isEmpty(MapBeanUtils.getString(mapBean, "url"))) { + predicates.add(criteriaBuilder.like(root.get("url"), "%" + MapBeanUtils.getString(mapBean, "url") + "%")); + } + + List predicatesKeyword = new ArrayList<>(); + if (!StringUtils.isEmpty(MapBeanUtils.getString(mapBean, "keyword"))) { + predicatesKeyword.add(criteriaBuilder.like(root.get("code"), "%" + MapBeanUtils.getString(mapBean, "keyword") + "%")); + predicatesKeyword.add(criteriaBuilder.like(root.get("name"), "%" + MapBeanUtils.getString(mapBean, "keyword") + "%")); + predicatesKeyword.add(criteriaBuilder.like(root.get("memo"), "%" + MapBeanUtils.getString(mapBean, "keyword") + "%")); + + predicates.add(criteriaBuilder.or(predicatesKeyword.toArray(new Predicate[predicatesKeyword.size()]))); + } + } + + return criteriaBuilder.and(predicates.toArray(new Predicate[predicates.size()])); + } + + }; + + return spec; + } + +} diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java new file mode 100644 index 0000000..7e2fa96 --- /dev/null +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java @@ -0,0 +1,32 @@ +package com.supwisdom.institute.backend.base.domain.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.base.domain.repo.ApplicationRepository; +import com.supwisdom.institute.backend.common.framework.service.ABaseService; + +@Service +public class ApplicationService extends ABaseService { + + @Override + public ApplicationRepository getRepo() { + return applicationRepository; + } + + @Autowired + private ApplicationRepository applicationRepository; + + + public void deleteBatch(List ids) { + + ids.stream().forEach(id -> { + this.deleteById(id); + }); + } + + +} -- 2.17.1