| | |
| | | |
| | | 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; |
| | | |
| | |
| | | |
| | | 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()); |
| | |
| | | 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 |
| | |
| | | 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; |
| | | } |
| | | } |