小视频功能开发 参考代码 service


import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.dubbo.config.annotation.Reference;
import com.github.tobato.fastdfs.domain.conn.FdfsWebServer;
import com.github.tobato.fastdfs.domain.fdfs.StorePath;
import com.github.tobato.fastdfs.service.FastFileStorageClient;
import com.tanhua.common.pojo.User;
import com.tanhua.common.pojo.UserInfo;
import com.tanhua.common.service.PicUploadService;
import com.tanhua.common.utils.UserThreadLocal;
import com.tanhua.common.vo.PicUploadResult;
import com.tanhua.dubbo.server.api.QuanZiApi;
import com.tanhua.dubbo.server.api.VideoApi;
import com.tanhua.dubbo.server.pojo.Video;
import com.tanhua.dubbo.server.vo.PageInfo;
import com.tanhua.server.vo.PageResult;
import com.tanhua.server.vo.VideoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

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



/*
*   小视频功能  service层
*
* */



@Service
@Slf4j
public class VideoService {


     @Autowired
     private PicUploadService picUploadService;


     @Autowired
     protected FastFileStorageClient storageClient;


     @Autowired
     private FdfsWebServer fdfsWebServer;


     @Reference(version = "1.0.0")
     private VideoApi videoApi;

     @Autowired
     private UserInfoService userInfoService;

     @Autowired
     private QuanZiApi quanZiApi;

     @Autowired
     private QuanZiService quanZiService;

     /**
     * 发布⼩视频
     *
     * @param picFile
     * @param videoFile
     * @return
     */
     public Boolean saveVideo(MultipartFile picFile, MultipartFile videoFile) {

     User user = UserThreadLocal.get();
     Video video = new Video();
     video.setUserId(user.getId());
     video.setSeeType(1); //默认公开


     try {

     //上传封⾯图⽚
     PicUploadResult picUploadResult =
    this.picUploadService.upload(picFile);
     video.setPicUrl(picUploadResult.getName()); //图⽚路径

     //上传视频  核心代码
     StorePath storePath =
    storageClient.uploadFile(videoFile.getInputStream(),
     videoFile.getSize(),
     StrUtil.subAfter(videoFile.getOriginalFilename(), '.',
    true),
     null);


     //设置视频url
     video.setVideoUrl(fdfsWebServer.getWebServerUrl() +
    storePath.getFullPath());
     String videoId = this.videoApi.saveVideo(video);

     return StrUtil.isNotEmpty(videoId);

     } catch (Exception e) {

     log.error("发布⼩视频失败!file = " + picFile.getOriginalFilename() ,
    e);


     }

     return false;

     }




     /**
      * 查询⼩视频列表   service
      *
      */

     public PageResult queryVideoList(Integer page, Integer pageSize) {
          User user = UserThreadLocal.get();
          PageResult pageResult = new PageResult();
          pageResult.setPage(page);
          pageResult.setPagesize(pageSize);
          PageInfo