案例萃取,bug修复

This commit is contained in:
yang
2024-09-10 15:23:33 +08:00
parent 1fbf56dec3
commit aa50cd64fd
4 changed files with 16 additions and 11 deletions

View File

@@ -702,8 +702,8 @@ public class CasesApi extends ApiBaseController {
*/
@SuppressWarnings("unchecked")
@GetMapping("/queryRecommendRank")
public JsonResponse<List<CasesQueryRecommendRankVo>> queryRecommendRank() {
List<CasesQueryRecommendRankVo> list = casesService.queryRecommendRank();
public JsonResponse<List<CasesQueryRecommendRankVo>> queryRecommendRank(@RequestParam(required = false,defaultValue = "3") Integer pageSize) {
List<CasesQueryRecommendRankVo> list = casesService.queryRecommendRank(pageSize);
return success(list);
}

View File

@@ -23,7 +23,7 @@ import java.util.List;
public interface CasesRecordDao extends JpaRepository<Cases, String>, JpaSpecificationExecutor<Cases> {
@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<Cases, String>, 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<Cases, String>, 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<Cases> queryList(Pageable pageable, @Param("condition") CasePageVo casePage);

View File

@@ -120,7 +120,7 @@ public interface ICasesService{
void refreshLastQuarterStatistics();
List<CasesQueryRecommendRankVo> queryRecommendRank();
List<CasesQueryRecommendRankVo> queryRecommendRank(Integer pageSize);
void riseIntoRank(Long caseId, CurrentUser currentUser);

View File

@@ -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<String> 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<CasesQueryRecommendRankVo> queryRecommendRank() {
public List<CasesQueryRecommendRankVo> 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"));