小视频功能开发 API接口 参考代码

主要项目工程接口 !!!!!



import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.dubbo.config.annotation.Service;
import com.mongodb.client.result.DeleteResult;
import com.tanhua.dubbo.server.enums.IdType;
import com.tanhua.dubbo.server.pojo.FollowUser;
import com.tanhua.dubbo.server.pojo.Video;
import com.tanhua.dubbo.server.service.IdService;
import com.tanhua.dubbo.server.vo.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.bson.types.ObjectId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.ArrayList;
import java.util.List;



/*
*  小视频API 接口  实现类
* */


@Service(version = "1.0.0") //开启dubbo service服务
@Slf4j
public class VideoApiImpl implements VideoApi {


    private static final String VIDEO_FOLLOW_USER_KEY_PREFIX = "VIDEO_FOLLOW_USER_";

    @Autowired
    private IdService idService;
    @Autowired
    private MongoTemplate mongoTemplate;

    @Autowired
    private RedisTemplate redisTemplate;



    /*发布小视频方法
    * */
    @Override
    public String saveVideo(Video video) {


        try {
            //校验
            if(!ObjectUtil.isAllNotEmpty(video.getUserId(), video.getPicUrl(),
                    video.getVideoUrl())){
                return null;
            }
            //设置id
            video.setId(ObjectId.get());
            video.setVid(this.idService.createId(IdType.VIDEO));
            //发布时间
            video.setCreated(System.currentTimeMillis());
            //保存到Mongodb中
            this.mongoTemplate.save(video);
            return video.getId().toHexString();
        } catch (Exception e) {
            log.error("⼩视频发布失败~ video = " + video, e);
        }
        return null;
    }



    /*
    *  小视频 列表实现类
    *  作用 从数据库查询多个小视频
    *       在客户端页面 以列表格式 批量展示小视频
    * */
    @Override
    public PageInfo



小视频 API 核心 字段

 /*
 *   发布小视频功能 的 实体类  与 mongodb的 collection video关联
 * */

 private static final long serialVersionUID = -3136732836884933873L;
 private ObjectId id; //主键id
 private Long vid; //⾃增⻓id
 private Long userId;
 private String text; //⽂字
 private String picUrl; //视频封⾯⽂件
 private String videoUrl; //视频⽂件
 private Long created; //创建时间
 private Integer seeType; // 谁可以看,1-公开,2-私密,3-部分可⻅,4-不给谁看
 private List seeList; //部分可⻅的列表
 private List notSeeList; //不给谁看的列表
 private String longitude; //经度
 private String latitude; //纬度
 private String locationName; //位置名称
}




小视频 APP 端 API

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@NoArgsConstructor
@AllArgsConstructor
public class VideoVo {

 /*
 *  实现小视频功能  API 接口 实体类
 * */



 private String id;
 private Long userId;
 private String avatar; //头像
 private String nickname; //昵称
 private String cover; //封⾯
 private String videoUrl; //视频URL
 private String signature; //签名
 private Integer likeCount; //点赞数量
 private Integer hasLiked; //是否已赞(1是,0否)
 private Integer hasFocus; //是是否关注 (1是,0否)
 private Integer commentCount; //评论数量
}
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章