fix
Helius
2021-12-22 ca17d6ee8df1e7c28645e70f43deb6b60a8890f8
src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterSourceServiceImpl.java
@@ -2,19 +2,23 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.utils.AppContants;
import cc.mrbird.febs.common.utils.FileUtil;
import cc.mrbird.febs.video.entity.VideoMasterSourceEntity;
import cc.mrbird.febs.video.mapper.VideoMasterItemsMapper;
import cc.mrbird.febs.video.mapper.VideoMasterSourceMapper;
import cc.mrbird.febs.video.service.IVideoMasterSourceService;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.util.Date;
import java.util.List;
@@ -29,6 +33,12 @@
    private final VideoMasterItemsMapper videoMasterItemsMapper;
    @Value("${system.images.path}")
    private String baseSavePath;
    @Value("${system.images.url}")
    private String baseUrl;
    @Override
    public IPage<VideoMasterSourceEntity> findInPage(VideoMasterSourceEntity source, QueryRequest queryRequest) {
        Page<VideoMasterSourceEntity> page = new Page<>(queryRequest.getPageNum(), queryRequest.getPageSize());
@@ -36,10 +46,21 @@
        return this.baseMapper.selectInPage(source, page);
    }
    @Override
    public void addSource(VideoMasterSourceEntity source) {
        Integer second = getVideoTimeLength(source.getUrl());
        source.setTimeSecond(second);
        source.setTimeLength(timeFormat(second));
        this.baseMapper.insert(source);
    }
    @Transactional
    @Override
    public void modifySourceById(VideoMasterSourceEntity source) {
        Integer second = getVideoTimeLength(source.getUrl());
        source.setUpdatedTime(new Date());
        source.setTimeSecond(second);
        source.setTimeLength(timeFormat(second));
        this.baseMapper.updateById(source);
        // 同步修改 即将所有关联到这个资源的视频中的url更新为最新url
@@ -53,4 +74,18 @@
        List<String> idList = StrUtil.split(ids, ',');
        this.baseMapper.updateDelFlag(AppContants.FLAG_INT_Y, idList);
    }
    private Integer getVideoTimeLength(String url) {
        Assert.notBlank(url);
        String filePath = baseSavePath + url.replaceAll(baseUrl, "");
        File file = new File(filePath);
        return FileUtil.getVideoTimeSecond(file);
    }
    private String timeFormat(Integer time) {
        int minutes = time / 60;
        int second = time -  time * 60;
        return  minutes + ":" + second;
    }
}