package com.fdkankan.fusion.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fdkankan.fusion.common.util.UploadToOssUtil;
import com.fdkankan.fusion.entity.CaseVideo;
import com.fdkankan.fusion.entity.CaseVideoFolder;
import com.fdkankan.fusion.mapper.ICaseVideoFolderMapper;
import com.fdkankan.fusion.service.ICaseVideoFolderService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.fusion.service.ICaseVideoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2022-08-09
*/
@Service
public class CaseVideoFolderServiceImpl extends ServiceImpl implements ICaseVideoFolderService {
@Autowired
ICaseVideoService videoService;
@Autowired
UploadToOssUtil uploadToOssUtil;
@Autowired
UploadService uploadService;
@Value("${upload.query-path}")
private String queryPath;
@Override
public List getAllList(Integer caseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseVideoFolder::getCaseId,caseId);
wrapper.orderByAsc(CaseVideoFolder::getSort);
wrapper.orderByAsc(CaseVideoFolder::getCreateTime);
return this.list(wrapper);
}
@Override
public void delete(Integer videoFolderId) {
//删除文件夹,一并删除文件下文件
videoService.deleteByFolderId(videoFolderId);
CaseVideoFolder videoFolder = this.getById(videoFolderId);
this.removeById(videoFolderId);
uploadService.deleteOssUrl(videoFolder.getVideoMergeUrl());
}
@Override
public long getCountByCaseId(Integer caseId) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.eq(CaseVideoFolder::getCaseId,caseId);
return this.count(wrapper);
}
@Override
public CaseVideoFolder getByIdIfNotNew(Integer folderId,Integer caseId) {
if(folderId == null){
long count = this.getCountByCaseId(caseId);
CaseVideoFolder videoFolder = new CaseVideoFolder();
videoFolder.setVideoFolderName("讲解视频" + count + 1);
videoFolder.setCaseId(caseId);
videoFolder.setSort((int) (count + 1));
this.save(videoFolder);
return videoFolder;
}
CaseVideoFolder byId = this.getById(folderId);
byId.setUploadStatus(0);
this.updateById(byId);
return byId;
}
}