From df0ed67e76813659f89568ee1089e08a11066cee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=B6=A6=E8=B1=AA?= <2873274679@qq.com> Date: Thu, 13 Jul 2023 20:11:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E9=9C=80=E6=B1=82=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E3=80=91=E6=A1=88=E4=BE=8B=E5=AF=BC=E5=87=BA=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E6=AC=A1=E6=95=B0=E5=AD=97=E6=AE=B5=E6=94=B9=E4=B8=BA=E5=AE=9E?= =?UTF-8?q?=E6=97=B6=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xboe/module/boecase/api/CasesApi.java | 2 +- .../com/xboe/module/boecase/dao/CasesDao.java | 2 +- .../module/boecase/dao/CasesRecordDao.java | 24 ++++++++++++++ .../com/xboe/module/boecase/entity/Cases.java | 25 +++++++++++++-- .../service/impl/CasesServiceImpl.java | 32 ++----------------- .../xboe/module/boecase/vo/CaseExportVo.java | 2 +- 6 files changed, 53 insertions(+), 34 deletions(-) diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java index 2cc4a7c2..c837cd9b 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/api/CasesApi.java @@ -198,7 +198,7 @@ public class CasesApi extends ApiBaseController { caseExportVo.setTitle(c.getTitle()); caseExportVo.setConfidentialityLevel(c.getConfidentialityLevel()); caseExportVo.setViews(c.getViews()); - caseExportVo.setRecommends(c.getRecommends()); + caseExportVo.setRecommends(c.getRecommends1()); caseExportVo.setCites(c.getCites()); caseExportVo.setPraises(c.getPraises()); caseExportVo.setComments(c.getComments()); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java index 21b0a098..52177b2e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesDao.java @@ -5,6 +5,7 @@ import com.xboe.common.PageList; import com.xboe.core.orm.BaseDao; import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.IFieldFilter; +import com.xboe.module.boecase.dto.CaseVo; import com.xboe.module.boecase.entity.Cases; import org.springframework.stereotype.Repository; @@ -33,5 +34,4 @@ public class CasesDao extends BaseDao { public Cases getByTitle(String title) { return this.getGenericDao().findOne(Cases.class, FieldFilters.eq("title", title)); } - } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java index a251471a..21a377f8 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/dao/CasesRecordDao.java @@ -1,6 +1,7 @@ package com.xboe.module.boecase.dao; import com.xboe.module.boecase.dto.CasePageVo; +import com.xboe.module.boecase.dto.CaseVo; import com.xboe.module.boecase.entity.Cases; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -10,6 +11,9 @@ import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import javax.persistence.SqlResultSetMapping; +import java.util.List; + /** * @author : civism * @version 1.0 @@ -53,4 +57,24 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " and if(:#{#condition.org3Empty}, 1=1, b.org_domain_parent3 in (:#{#condition.org3}))" + " order by a.sys_create_time DESC, a.read_flag ASC ) as c group by c.id) as d") Page queryList(Pageable pageable, @Param("condition") CasePageVo casePage); + +// @Query(nativeQuery = true, value = "SELECT bc.*, COUNT(bcrpr.case_id) AS recommends1 FROM boe_cases bc LEFT JOIN boe_cases_recommend_push_record bcrpr ON bc.id = bcrpr.case_id" + +// " where bc.deleted = 0" + +// " and if(IFNULL(:#{#caseVo.keyWord},'')!='',bc.title like CONCAT('%',:#{#caseVo.keyWord},'%'),1=1)" + +// " and if(IFNULL(:#{#caseVo.authorName},'')!='',bc.author_name like CONCAT('%',:#{#caseVo.authorName},'%'),1=1)" + +// " and if(IFNULL(:#{#caseVo.orgDomain},'') !='' ,bc.org_domain_parent = :#{#caseVo.orgDomain},1=1) " + +// " and if(IFNULL(:#{#caseVo.excellent},'') !='' ,bc.excellent = :#{#caseVo.excellent},1=1) " + +// " and if(IFNULL(:#{#caseVo.isTop},'') !='' ,bc.is_top = :#{#caseVo.isTop},1=1) " + +// " GROUP BY bc.id ORDER BY bc.sys_create_time desc") +// List exportCase(@Param("caseVo")CaseVo caseVo); + + @Query("SELECT new Cases(bc.title, bc.authorName, bc.comments, bc.views, bc.praises, bc.shares, bc.favorites, COUNT(bcrpr.caseId), bc.cites, bc.confidentialityLevel) FROM Cases bc LEFT JOIN CasesRecommendPushRecord bcrpr ON bc.id = bcrpr.caseId" + + " where bc.deleted = false" + + " and (:keyWord IS NULL or bc.title LIKE %:keyWord%)" + + " and (:authorName IS NULL or bc.authorName LIKE %:authorName%)" + + " and (:orgDomain IS NULL or bc.orgDomainParent = :orgDomain)" + + " and (:excellent IS NULL or bc.excellent = :excellent)" + + " and (:isTop IS NULL or bc.isTop = :isTop)" + + " GROUP BY bc.id ORDER BY bc.sysCreateTime desc") + List exportCase(String keyWord, String authorName,String orgDomain,Boolean excellent,Boolean isTop); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java index 10d21b31..eb399718 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java @@ -103,8 +103,7 @@ public class Cases extends BaseEntity { private Integer favorites; // 推荐量 - @Column(name = "recommends", nullable = false) - private Integer recommends; + private Long recommends1; // 引用量 @Column(name = "cites", nullable = false) @@ -294,6 +293,15 @@ public class Cases extends BaseEntity { this.email = email; } + public Long getRecommends1() { + return recommends1; + } + @Transient + public void setRecommends1(Long recommends1) { + this.recommends1 = recommends1; + } + + public Cases() { } @@ -365,4 +373,17 @@ public class Cases extends BaseEntity { public Cases(String title) { this.title = title; } + + public Cases(String title,String authorName, int comments, int views, int praises, int shares, int favorites, Long recommends1, int cites, String confidentialityLevel) { + this.title = title; + this.views = views; + this.praises = praises; + this.shares = shares; + this.favorites = favorites; + this.recommends1 = recommends1; + this.cites = cites; + this.comments = comments; + this.authorName = authorName; + this.confidentialityLevel = confidentialityLevel; + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java index 47f33d69..3b042444 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/impl/CasesServiceImpl.java @@ -428,38 +428,12 @@ public class CasesServiceImpl implements ICasesService { @Override public List exportCase(CaseVo caseVo) { - List filters = new ArrayList<>(); - filters.add(FieldFilters.eq("deleted", false)); - if (StringUtils.isNotBlank(caseVo.getKeyWord())) { - filters.add(FieldFilters.like("title", LikeMatchMode.ANYWHERE, caseVo.getKeyWord())); - } - if (StringUtils.isNotBlank(caseVo.getOrgDomain())) { - filters.add(FieldFilters.eq("orgDomainParent", caseVo.getOrgDomain())); - } - if (caseVo.getExcellent() != null) { - filters.add(FieldFilters.eq("excellent", caseVo.getExcellent())); - } - if (caseVo.getIsTop() != null) { - filters.add(FieldFilters.eq("isTop", caseVo.getIsTop())); - } - if (StringUtils.isNotBlank(caseVo.getAuthorName())) { - filters.add(FieldFilters.like("authorName", LikeMatchMode.ANYWHERE, caseVo.getAuthorName())); - } + List list = casesRecordDao.exportCase(caseVo.getKeyWord(), caseVo.getAuthorName(), caseVo.getOrgDomain(), caseVo.getExcellent(), caseVo.getIsTop()); - OrderCondition order = null; - if (StringUtils.isNotBlank(caseVo.getOrderField())) { - if (caseVo.getOrderAsc() == null || caseVo.getOrderAsc()) { - order = OrderCondition.asc(caseVo.getOrderField()); - } else { - order = OrderCondition.desc(caseVo.getOrderField()); - } - } else { - order = OrderCondition.desc("sysCreateTime"); - } - List list = casesDao.findListByFilters(order, filters); return list; } + @Override public List managerCaseTitleList(CaseVo caseVo) { QueryBuilder query = QueryBuilder.from(Cases.class); @@ -817,7 +791,7 @@ public class CasesServiceImpl implements ICasesService { cases.setShares(0); cases.setFavorites(0); cases.setCites(0); - cases.setRecommends(0); + cases.setRecommends1(0L); StringBuffer stringBuffer = new StringBuffer(); List majorIds = cases.getMajorIds(); for (String s : majorIds) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java index 3dbb1ae8..01ff691e 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/vo/CaseExportVo.java @@ -10,7 +10,7 @@ public class CaseExportVo { private Integer views; - private Integer recommends; + private Long recommends; private Integer cites;