From f0afca8e5611e46557f69cd22850c630388d329f Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 22 Dec 2021 14:46:31 +0800
Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video

---
 src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterSourceServiceImpl.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterSourceServiceImpl.java b/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterSourceServiceImpl.java
index 207399f..b67a20f 100644
--- a/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterSourceServiceImpl.java
+++ b/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;
+    }
 }

--
Gitblit v1.9.1