From: 刘洪青 Date: Thu, 5 Sep 2019 10:15:19 +0000 (+0800) Subject: feat: 增加应用管理的领域逻辑 X-Git-Tag: v0.0.1^2~49 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=332545ca7fa6b2ff791bad4bc3be1affe3a65ed9;p=institute%2Fsw-backend.git feat: 增加应用管理的领域逻辑 --- 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); + }); + } + + +}