|
|
@@ -15,6 +15,7 @@ import com.tzld.videoVector.model.entity.VideoMatch;
|
|
|
import com.tzld.videoVector.model.param.*;
|
|
|
import com.tzld.videoVector.model.po.pgVector.*;
|
|
|
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.VideoMatchResult;
|
|
|
import com.tzld.videoVector.service.DeconstructService;
|
|
|
@@ -1514,8 +1515,22 @@ public class VideoSearchServiceImpl implements VideoSearchService {
|
|
|
}
|
|
|
|
|
|
@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);
|
|
|
+ int offset = (pageNum - 1) * pageSize;
|
|
|
+ example.setOrderByClause("id ASC LIMIT " + pageSize + " OFFSET " + offset);
|
|
|
List<ChannelDemandMatchResult> results = channelDemandMatchResultMapper.selectByExample(example);
|
|
|
|
|
|
// 按需求维度分组,同一需求下的多个匹配视频聚合到一个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);
|
|
|
}
|
|
|
|
|
|
/**
|