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 4960e3db..9573bcc0 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 @@ -702,8 +702,8 @@ public class CasesApi extends ApiBaseController { */ @SuppressWarnings("unchecked") @GetMapping("/queryRecommendRank") - public JsonResponse> queryRecommendRank() { - List list = casesService.queryRecommendRank(); + public JsonResponse> queryRecommendRank(@RequestParam(required = false,defaultValue = "3") Integer pageSize) { + List list = casesService.queryRecommendRank(pageSize); return success(list); } 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 cc2f22eb..de05a041 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 @@ -23,7 +23,7 @@ import java.util.List; public interface CasesRecordDao extends JpaRepository, JpaSpecificationExecutor { @Query(nativeQuery = true, value = " SELECT c.* FROM ( " + - " SELECT b.* " + + " SELECT b.*,a.sys_create_time as recommendPushTime" + " FROM boe_cases_recommend_push_record a " + " LEFT JOIN boe_cases b ON a.case_id = b.id " + " WHERE b.deleted = 0 " + @@ -55,7 +55,8 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " IF(:#{#condition.orderField}='views' and :#{#condition.orderAsc}=true,c.views, null) asc," + " IF(:#{#condition.orderField}='views' and :#{#condition.orderAsc}=false,c.views, null) desc," + " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=true ,c.sys_create_time,null) asc," + - " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=false , c.sys_create_time,null) desc", + " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=false , c.sys_create_time,null) desc," + + " IF(:#{#condition.orderField}='recommendPushTime', c.recommendPushTime,null) desc", countQuery = " SELECT count(*) FROM ( " + " SELECT b.* " + @@ -90,7 +91,8 @@ public interface CasesRecordDao extends JpaRepository, JpaSpecifi " IF(:#{#condition.orderField}='views' and :#{#condition.orderAsc}=true,c.views, null) asc," + " IF(:#{#condition.orderField}='views' and :#{#condition.orderAsc}=false,c.views, null) desc," + " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=true ,c.sys_create_time,null) asc," + - " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=false , c.sys_create_time,null) desc" + " IF(:#{#condition.orderField}='sysCreateTime' and :#{#condition.orderAsc}=false , c.sys_create_time,null) desc," + + " IF(:#{#condition.orderField}='recommendPushTime', c.recommendPushTime,null) desc" ) Page queryList(Pageable pageable, @Param("condition") CasePageVo casePage); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java index c167ca1b..c43bed64 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/service/ICasesService.java @@ -120,7 +120,7 @@ public interface ICasesService{ void refreshLastQuarterStatistics(); - List queryRecommendRank(); + List queryRecommendRank(Integer pageSize); void riseIntoRank(Long caseId, CurrentUser currentUser); 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 cbabd5c6..1fa45cf5 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 @@ -44,7 +44,6 @@ import java.lang.reflect.Array; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; -import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -385,8 +384,12 @@ public class CasesServiceImpl implements ICasesService { caseVo.setOrg2(level2); caseVo.setOrg3(level3); - if (StringUtils.isBlank(caseVo.getOrderField()) || caseVo.getOrderAsc()==null || (!"sysCreateTime".equals(caseVo.getOrderField()) && !"views".equals(caseVo.getOrderField()))){ - caseVo.setOrderField("sysCreateTime"); + Set validOrderFields = new HashSet<>(); + validOrderFields.add("sysCreateTime"); + validOrderFields.add("views"); + validOrderFields.add("recommendPushTime"); + if (StringUtils.isBlank(caseVo.getOrderField()) || caseVo.getOrderAsc() == null || !validOrderFields.contains(caseVo.getOrderField())) { + caseVo.setOrderField("recommendPushTime"); caseVo.setOrderAsc(false); } @@ -1266,9 +1269,9 @@ public class CasesServiceImpl implements ICasesService { @Override - public List queryRecommendRank() { + public List queryRecommendRank(Integer pageSize) { QueryBuilder queryBuilder = QueryBuilder.from(Cases.class); - queryBuilder.setPageSize(10); + queryBuilder.setPageSize(pageSize); queryBuilder.addFilter(FieldFilters.eq("deleted",false)); queryBuilder.addFilter(FieldFilters.isNotNull("recommend_rank")); queryBuilder.addOrder(OrderCondition.asc("recommend_rank"));