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