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