xiangpei
2025-06-03 45fccac802160458965a727bb21056abfc3bc528
视频主页-视频播放接口适配
4个文件已修改
34 ■■■■ 已修改文件
buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
buyer-api/src/main/java/cn/lili/controller/lmk/VideoController.java
@@ -69,7 +69,7 @@
    @GetMapping("/recommend")
    @ApiOperation(value = "视频推荐", notes = "视频推荐")
    public Result recommendVideo(AbsQuery query) {
    public Result recommendVideo(VideoQuery query) {
        return videoService.recommendVideo(query);
    }
framework/src/main/java/cn/lili/modules/lmk/domain/query/VideoQuery.java
@@ -18,5 +18,12 @@
@Data
@ApiModel(value = "Video查询参数", description = "视频内容查询参数")
public class VideoQuery extends AbsQuery {
    @ApiModelProperty("作者id")
    private String authorId;
    @ApiModelProperty("视频来源:recommend推荐、author某作者的视频、collect某作者收藏的视频")
    private String videoFrom;
}
framework/src/main/java/cn/lili/modules/lmk/service/VideoService.java
@@ -1,6 +1,5 @@
package cn.lili.modules.lmk.service;
import cn.lili.base.AbsQuery;
import cn.lili.modules.lmk.domain.entity.Video;
import cn.lili.modules.lmk.domain.form.*;
import cn.lili.modules.lmk.domain.query.AuthorVideoQuery;
@@ -119,8 +118,9 @@
     * 小程序端的视频推荐接口
     *
     * @return
     * @param query
     */
    Result recommendVideo(AbsQuery query);
    Result recommendVideo(VideoQuery query);
    /**
     * 批量更新视频收藏数量
framework/src/main/java/cn/lili/modules/lmk/service/impl/VideoServiceImpl.java
@@ -1,6 +1,5 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.base.AbsQuery;
import cn.lili.common.security.context.UserContext;
import cn.lili.modules.lmk.domain.entity.VideoAuditRecord;
import cn.lili.modules.lmk.domain.entity.VideoTag;
@@ -261,10 +260,26 @@
    }
    @Override
    public Result recommendVideo(AbsQuery query) {
    public Result recommendVideo(VideoQuery query) {
        // 推荐算法: 1. 根据用户的收藏视频的标签  2. 根据用户关注的作者的其它视频  3. 根据用户的观看记录(观看时长较长的、重复观看次数较多的) 4. 基于相似用户的观看行为来给该用户推荐
        IPage<WxVideoVO> page = PageUtil.getPage(query, WxVideoVO.class);
        baseMapper.recommendVideo(page);
        switch (query.getVideoFrom()) {
            case "recommend":
                baseMapper.recommendVideo(page);
                break;
            case "author":
                AuthorVideoQuery query1 = new AuthorVideoQuery();
                query1.setAuthorId(query.getAuthorId());
                baseMapper.getAuthorVideoPage(page, query1);
                break;
            case "collect":
                AuthorVideoQuery query2 = new AuthorVideoQuery();
                query2.setAuthorId(query.getAuthorId());
                baseMapper.getAuthorVideoPage(page, query2);
                break;
            default:
                break;
        }
        if (page.getTotal() > 0) {
            List<String> videoIds = page.getRecords().stream().map(WxVideoVO::getId).collect(Collectors.toList());
            Map<String, List<SimpleVideoTagVO>> tagMap = videoTagRefService.getTagsByVideoIds(videoIds)