Просмотр исходного кода

queryDemandMatchResult 分页查询

wangyunpeng 1 неделя назад
Родитель
Сommit
b36b517767

+ 6 - 0
core/src/main/java/com/tzld/videoVector/model/param/ChannelDemandMatchQueryParam.java

@@ -49,4 +49,10 @@ public class ChannelDemandMatchQueryParam {
 
 
     /** 场景值,可选 */
     /** 场景值,可选 */
     private String sceneValue;
     private String sceneValue;
+
+    /** 页码(从1开始),默认1 */
+    private Integer pageNum;
+
+    /** 每页大小,默认10000 */
+    private Integer pageSize;
 }
 }

+ 2 - 1
core/src/main/java/com/tzld/videoVector/service/VideoSearchService.java

@@ -8,6 +8,7 @@ import com.tzld.videoVector.model.param.MatchTopNVideoParam;
 import com.tzld.videoVector.model.param.RecallVideoScoreParam;
 import com.tzld.videoVector.model.param.RecallVideoScoreParam;
 
 
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
+import com.tzld.videoVector.model.vo.PageResult;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 
 
@@ -86,5 +87,5 @@ public interface VideoSearchService {
      * @param param 查询参数
      * @param param 查询参数
      * @return 按需求维度分组的匹配结果列表
      * @return 按需求维度分组的匹配结果列表
      */
      */
-    List<ChannelDemandMatchVO> queryDemandMatchResult(ChannelDemandMatchQueryParam param);
+    PageResult<ChannelDemandMatchVO> queryDemandMatchResult(ChannelDemandMatchQueryParam param);
 }
 }

+ 17 - 2
core/src/main/java/com/tzld/videoVector/service/impl/VideoSearchServiceImpl.java

@@ -15,6 +15,7 @@ import com.tzld.videoVector.model.entity.VideoMatch;
 import com.tzld.videoVector.model.param.*;
 import com.tzld.videoVector.model.param.*;
 import com.tzld.videoVector.model.po.pgVector.*;
 import com.tzld.videoVector.model.po.pgVector.*;
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
+import com.tzld.videoVector.model.vo.PageResult;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 import com.tzld.videoVector.service.DeconstructService;
 import com.tzld.videoVector.service.DeconstructService;
@@ -1514,8 +1515,22 @@ public class VideoSearchServiceImpl implements VideoSearchService {
     }
     }
 
 
     @Override
     @Override
-    public List<ChannelDemandMatchVO> queryDemandMatchResult(ChannelDemandMatchQueryParam param) {
+    public PageResult<ChannelDemandMatchVO> queryDemandMatchResult(ChannelDemandMatchQueryParam param) {
+        int pageNum = (param.getPageNum() != null && param.getPageNum() > 0) ? param.getPageNum() : 1;
+        int pageSize = (param.getPageSize() != null && param.getPageSize() > 0) ? param.getPageSize() : 10000;
+
+        // 查询总数
+        ChannelDemandMatchResultExample countExample = buildDemandMatchQueryExample(param);
+        long total = channelDemandMatchResultMapper.countByExample(countExample);
+
+        if (total == 0) {
+            return PageResult.of(new ArrayList<>(), 0, pageNum, pageSize);
+        }
+
+        // 分页查询
         ChannelDemandMatchResultExample example = buildDemandMatchQueryExample(param);
         ChannelDemandMatchResultExample example = buildDemandMatchQueryExample(param);
+        int offset = (pageNum - 1) * pageSize;
+        example.setOrderByClause("id ASC LIMIT " + pageSize + " OFFSET " + offset);
         List<ChannelDemandMatchResult> results = channelDemandMatchResultMapper.selectByExample(example);
         List<ChannelDemandMatchResult> results = channelDemandMatchResultMapper.selectByExample(example);
 
 
         // 按需求维度分组,同一需求下的多个匹配视频聚合到一个VO
         // 按需求维度分组,同一需求下的多个匹配视频聚合到一个VO
@@ -1578,7 +1593,7 @@ public class VideoSearchServiceImpl implements VideoSearchService {
             }
             }
         }
         }
 
 
-        return new ArrayList<>(groupMap.values());
+        return PageResult.of(new ArrayList<>(groupMap.values()), total, pageNum, pageSize);
     }
     }
 
 
     /**
     /**

+ 2 - 1
server/src/main/java/com/tzld/videoVector/controller/VideoSearchController.java

@@ -8,6 +8,7 @@ import com.tzld.videoVector.model.param.GetDeconstructParam;
 import com.tzld.videoVector.model.param.MatchTopNVideoParam;
 import com.tzld.videoVector.model.param.MatchTopNVideoParam;
 import com.tzld.videoVector.model.param.RecallVideoScoreParam;
 import com.tzld.videoVector.model.param.RecallVideoScoreParam;
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
 import com.tzld.videoVector.model.vo.ChannelDemandMatchVO;
+import com.tzld.videoVector.model.vo.PageResult;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.RecallVideoScoreVO;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 import com.tzld.videoVector.model.vo.VideoMatchResult;
 import com.tzld.videoVector.service.VideoSearchService;
 import com.tzld.videoVector.service.VideoSearchService;
@@ -70,7 +71,7 @@ public class VideoSearchController {
      * POST /videoSearch/queryDemandMatchResult
      * POST /videoSearch/queryDemandMatchResult
      */
      */
     @PostMapping("/queryDemandMatchResult")
     @PostMapping("/queryDemandMatchResult")
-    public CommonResponse<List<ChannelDemandMatchVO>> queryDemandMatchResult(
+    public CommonResponse<PageResult<ChannelDemandMatchVO>> queryDemandMatchResult(
             @RequestBody ChannelDemandMatchQueryParam param) {
             @RequestBody ChannelDemandMatchQueryParam param) {
         return CommonResponse.success(videoSearchService.queryDemandMatchResult(param));
         return CommonResponse.success(videoSearchService.queryDemandMatchResult(param));
     }
     }