From 5d9add8982a94cabc61c4acfb7573e8ca6f2e39d Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 17 Dec 2021 10:16:54 +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/VideoMasterInfoServiceImpl.java | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 177 insertions(+), 3 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..bf845cd 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,30 @@
package cc.mrbird.febs.video.service.impl;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.video.entity.VideoMasterInfoEntity;
-import cc.mrbird.febs.video.mapper.VideoMasterInfoMapper;
+import cc.mrbird.febs.common.exception.FebsException;
+import cc.mrbird.febs.common.utils.AppContants;
+import cc.mrbird.febs.common.utils.LoginUserUtil;
+import cc.mrbird.febs.video.conversion.VideoConversion;
+import cc.mrbird.febs.video.conversion.VideoMemberConversion;
+import cc.mrbird.febs.video.dto.VideoListDto;
+import cc.mrbird.febs.video.entity.*;
+import cc.mrbird.febs.video.mapper.*;
import cc.mrbird.febs.video.service.IVideoMasterInfoService;
+import cc.mrbird.febs.video.vo.VideoInfoItemVo;
+import cc.mrbird.febs.video.vo.VideoInfoVo;
+import cc.mrbird.febs.video.vo.VideoListVo;
+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 +35,166 @@
@RequiredArgsConstructor
public class VideoMasterInfoServiceImpl extends ServiceImpl<VideoMasterInfoMapper, VideoMasterInfoEntity> implements IVideoMasterInfoService {
+ private final VideoMasterItemsMapper videoMasterItemsMapper;
+ private final VideoMasterSourceMapper videoMasterSourceMapper;
+ private final VideoMasterDataMapper videoMasterDataMapper;
+ private final VideoMemberMapper videoMemberMapper;
+
@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);
+ }
+
+ @Override
+ public List<VideoListVo> findVideoList(VideoListDto videoListDto) {
+ Page<VideoListVo> page = new Page<>(videoListDto.getPageNum(), videoListDto.getPageSize());
+
+ videoListDto.setIsUp(AppContants.FLAG_INT_Y);
+ IPage<VideoListVo> data = this.baseMapper.selectVideoListInPage(videoListDto, page);
+ return data.getRecords();
+ }
+
+ @Override
+ public VideoInfoVo findVideoInfo(Long videoId, Long itemId) {
+ VideoMasterInfoEntity videoInfoEntity = this.baseMapper.selectEntityById(videoId);
+ if (videoInfoEntity == null) {
+ throw new FebsException("视频不存在");
+ }
+
+ VideoInfoVo videoInfoVo = VideoConversion.INSTANCE.videoInfoEntityToInfoVo(videoInfoEntity);
+ List<VideoInfoItemVo> items = VideoConversion.INSTANCE.videoItemEntitiesToItemVoes(videoInfoEntity.getItems());
+ videoInfoVo.setItems(items);
+
+ VideoMasterDataEntity data = this.videoMasterDataMapper.selectDataByMasterId(videoInfoEntity.getId());
+ videoInfoVo.setPlayCnt(data.getPlayCnt());
+ videoInfoVo.setCollectCnt(data.getCollectCnt());
+ videoInfoVo.setStarCnt(data.getStarCnt());
+
+ VideoMemberEntity loginUser = LoginUserUtil.getLoginUser();
+ if (loginUser == null) {
+ videoInfoVo.setNotLogin(AppContants.FLAG_INT_N);
+ return videoInfoVo;
+ }
+
+ if (AppContants.FLAG_INT_N.equals(videoInfoEntity.getIsFree())) {
+ VideoMemberEntity member = this.videoMemberMapper.selectById(loginUser.getId());
+ if (AppContants.FLAG_INT_N.equals(member.getIsVip())) {
+ videoInfoVo.setNotVip(AppContants.FLAG_INT_N);
+ return videoInfoVo;
+ }
+ }
+
+ VideoMasterItemsEntity currentItem = this.videoMasterItemsMapper.selectItemByVideoIdAndItemId(videoId, itemId);
+ if (currentItem == null) {
+ throw new FebsException("视频不存在");
+ }
+
+ videoInfoVo.setNotLogin(AppContants.FLAG_INT_Y);
+ videoInfoVo.setNotVip(AppContants.FLAG_INT_Y);
+ videoInfoVo.setSubTitle(currentItem.getName());
+ videoInfoVo.setVideoUrl(currentItem.getVideoUrl());
+ videoInfoVo.setThumb(currentItem.getThumb());
+ videoInfoVo.setItemId(currentItem.getId());
+ videoInfoVo.setTimeLength(currentItem.getTimeLength());
+ return videoInfoVo;
}
}
--
Gitblit v1.9.1