From d22f5bdfdaa8502a5f2496248da932b3c50c1fd0 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 16 Dec 2021 16:06:25 +0800 Subject: [PATCH] finish video add/update/list --- src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 119 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java index 47e1216..0b6bdea 100644 --- a/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java @@ -1,14 +1,29 @@ package cc.mrbird.febs.video.service.impl; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.common.exception.FebsException; +import cc.mrbird.febs.common.utils.AppContants; +import cc.mrbird.febs.video.entity.VideoMasterDataEntity; import cc.mrbird.febs.video.entity.VideoMasterInfoEntity; +import cc.mrbird.febs.video.entity.VideoMasterItemsEntity; +import cc.mrbird.febs.video.entity.VideoMasterSourceEntity; +import cc.mrbird.febs.video.mapper.VideoMasterDataMapper; import cc.mrbird.febs.video.mapper.VideoMasterInfoMapper; +import cc.mrbird.febs.video.mapper.VideoMasterItemsMapper; +import cc.mrbird.febs.video.mapper.VideoMasterSourceMapper; import cc.mrbird.febs.video.service.IVideoMasterInfoService; +import cn.hutool.core.collection.CollUtil; +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.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; /** * @author wzy @@ -19,8 +34,111 @@ @RequiredArgsConstructor public class VideoMasterInfoServiceImpl extends ServiceImpl<VideoMasterInfoMapper, VideoMasterInfoEntity> implements IVideoMasterInfoService { + private final VideoMasterItemsMapper videoMasterItemsMapper; + private final VideoMasterSourceMapper videoMasterSourceMapper; + private final VideoMasterDataMapper videoMasterDataMapper; + @Override public IPage<VideoMasterInfoEntity> findInPage(VideoMasterInfoEntity info, QueryRequest request) { - return null; + Page<VideoMasterInfoEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + return this.baseMapper.selectInPage(info, page); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void addVideo(VideoMasterInfoEntity info) { + + this.baseMapper.insert(info); + List<VideoMasterItemsEntity> items = info.getItems(); + if (CollUtil.isEmpty(items)) { + throw new FebsException("章节异常"); + } + + int i = 1; + for (VideoMasterItemsEntity item : items) { + if (StrUtil.isBlank(item.getName())){ + throw new FebsException("章节标题未填写"); + } + VideoMasterSourceEntity source = this.videoMasterSourceMapper.selectById(item.getSourceId()); + item.setMasterId(info.getId()); + item.setSeq(i); + item.setVideoUrl(source.getUrl()); + + this.videoMasterItemsMapper.insert(item); + i++; + } + + VideoMasterDataEntity data = new VideoMasterDataEntity(); + data.setMasterId(info.getId()); + data.setCollectCnt(0); + data.setPlayCnt(0); + data.setStarCnt(0); + this.videoMasterDataMapper.insert(data); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void updateVideo(VideoMasterInfoEntity info) { + this.baseMapper.updateById(info); + +// List<VideoMasterItemsEntity> beforeItems = this.videoMasterItemsMapper.selectItemsByMasterId(info.getId()); + List<VideoMasterItemsEntity> newItems = info.getItems(); + if (CollUtil.isEmpty(newItems)) { + throw new FebsException("章节异常"); + } + + List<Long> existID = new ArrayList<>(); + List<VideoMasterItemsEntity> newInsert = new ArrayList<>(); + int i = 1; + for (VideoMasterItemsEntity newItem : newItems) { + if (StrUtil.isBlank(newItem.getName())) { + throw new FebsException("章节标题未填写"); + } + + if (newItem.getId() != null) { + newItem.setSeq(i); + this.videoMasterItemsMapper.updateById(newItem); + existID.add(newItem.getId()); + i++; + } else { + newInsert.add(newItem); + } + } + + if (CollUtil.isNotEmpty(existID)) { + this.videoMasterItemsMapper.deleteNotInIds(existID, info.getId()); + } + + if (CollUtil.isNotEmpty(newInsert)) { + for (VideoMasterItemsEntity item : newInsert) { + VideoMasterSourceEntity source = this.videoMasterSourceMapper.selectById(item.getSourceId()); + item.setMasterId(info.getId()); + item.setVideoUrl(source.getUrl()); + item.setSeq(i); + this.videoMasterItemsMapper.insert(item); + + i++; + } + } + } + + @Override + public VideoMasterInfoEntity findById(Long id) { + return this.baseMapper.selectEntityById(id); + } + + @Override + public void changeIsUp(Long id) { + VideoMasterInfoEntity masterInfo = this.baseMapper.selectById(id); + if (masterInfo == null) { + throw new FebsException("视频不存在"); + } + if (AppContants.FLAG_INT_Y.equals(masterInfo.getIsUp())) { + masterInfo.setIsUp(AppContants.FLAG_INT_N); + } else { + masterInfo.setIsUp(AppContants.FLAG_INT_Y); + } + + this.baseMapper.updateById(masterInfo); } } -- Gitblit v1.9.1