From d48b46152f08410fcb4940a29067d82435b8cbe9 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Mon, 20 Dec 2021 16:26:10 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java |   89 +++++++++++++++++++++++++++++++++++---------
 1 files changed, 71 insertions(+), 18 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 e60f7a7..9b8d80f 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
@@ -13,6 +13,7 @@
 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.IVideoMasterDataService;
 import cc.mrbird.febs.video.service.IVideoMasterInfoService;
 import cc.mrbird.febs.video.vo.VideoInfoItemVo;
 import cc.mrbird.febs.video.vo.VideoInfoVo;
@@ -29,6 +30,7 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -48,6 +50,7 @@
     private final VideoCommentLikeMapper videoCommentLikeMapper;
     private final VideoHistoryMapper videoHistoryMapper;
     private final VideoMemberMapper videoMemberMapper;
+    private final IVideoMasterDataService videoMasterDataService;
 
     @Override
     public IPage<VideoMasterInfoEntity> findInPage(VideoMasterInfoEntity info, QueryRequest request) {
@@ -169,6 +172,7 @@
             throw new FebsException("视频不存在");
         }
 
+        VideoMemberEntity loginUser = LoginUserUtil.getLoginUser();
         VideoInfoVo videoInfoVo = VideoConversion.INSTANCE.videoInfoEntityToInfoVo(videoInfoEntity);
         List<VideoInfoItemVo> items = VideoConversion.INSTANCE.videoItemEntitiesToItemVoes(videoInfoEntity.getItems());
         videoInfoVo.setItems(items);
@@ -178,19 +182,40 @@
         videoInfoVo.setCollectCnt(data.getCollectCnt());
         videoInfoVo.setStarCnt(data.getStarCnt());
 
+        if (loginUser != null) {
+            // 是否点赞
+            VideoCommentLikeEntity commentLike = this.videoCommentLikeMapper.selectCommentLikeByMemberIdAndRelateId(loginUser.getId(), videoInfoEntity.getId());
+            if (commentLike != null) {
+                videoInfoVo.setIsLike(1);
+            } else {
+                videoInfoVo.setIsLike(2);
+            }
+
+            // 是否收藏
+            VideoCollectionEntity collection = this.videoCollectionMapper.selectVideoCollectionByVideoIdAndMemberId(videoInfoEntity.getId(), loginUser.getId());
+            if (collection != null) {
+                videoInfoVo.setIsCollect(1);
+            } else {
+                videoInfoVo.setIsCollect(2);
+            }
+        }
+
+        // 视频是否需要vip
         if (AppContants.FLAG_INT_N.equals(videoInfoEntity.getIsFree())) {
-            VideoMemberEntity loginUser = LoginUserUtil.getLoginUser();
+            // 判断用户是否登录
             if (loginUser == null) {
                 videoInfoVo.setNotLogin(AppContants.FLAG_INT_N);
                 return videoInfoVo;
             }
 
+            // 判断用户是否为vip
             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) {
@@ -204,6 +229,27 @@
         videoInfoVo.setThumb(currentItem.getThumb());
         videoInfoVo.setItemId(currentItem.getId());
         videoInfoVo.setTimeLength(currentItem.getTimeLength());
+
+        // 增加播放量
+        this.videoMasterDataService.modifyVideoData(videoInfoEntity.getId(), 1, 1);
+
+        // 历史记录
+        if (loginUser != null) {
+            VideoHistoryEntity history = this.videoHistoryMapper.selectByMemberIdAndVideoId(loginUser.getId(), videoInfoEntity.getId());
+            if (history == null) {
+                history = new VideoHistoryEntity();
+                history.setVideoId(videoInfoEntity.getId());
+                history.setMemberId(loginUser.getId());
+                history.setVideoItemId(currentItem.getId());
+                history.setUpdatedTime(new Date());
+                history.setCreatedTime(new Date());
+                this.videoHistoryMapper.insert(history);
+            } else {
+                history.setVideoItemId(currentItem.getId());
+                this.videoHistoryMapper.updateById(history);
+            }
+        }
+
         return videoInfoVo;
     }
 
@@ -220,10 +266,11 @@
             videoCollectionMapper.deleteById(videoCollection.getId());
 
             //收藏数-1
-            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(videoId);
-            int collectCnt = videoMasterDataEntity.getCollectCnt();
-            videoMasterDataEntity.setCollectCnt((collectCnt - 1) <= 0 ? 0:(collectCnt - 1));
-            videoMasterDataMapper.updateById(videoMasterDataEntity);
+            this.videoMasterDataService.modifyVideoData(videoMasterInfoEntity.getId(), -1, 2);
+//            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(videoId);
+//            int collectCnt = videoMasterDataEntity.getCollectCnt();
+//            videoMasterDataEntity.setCollectCnt((collectCnt - 1) <= 0 ? 0:(collectCnt - 1));
+//            videoMasterDataMapper.updateById(videoMasterDataEntity);
             return new FebsResponse().success().message("已取消收藏");
         }else{
             VideoCollectionEntity videoCollectionEntity = new VideoCollectionEntity();
@@ -231,10 +278,12 @@
             videoCollectionEntity.setVideoId(videoId);
             videoCollectionMapper.insert(videoCollectionEntity);
             //收藏数+1
-            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(videoId);
-            int collectCnt = videoMasterDataEntity.getCollectCnt();
-            videoMasterDataEntity.setCollectCnt((collectCnt + 1) <= 0 ? 0:(collectCnt + 1));
-            videoMasterDataMapper.updateById(videoMasterDataEntity);
+
+            this.videoMasterDataService.modifyVideoData(videoMasterInfoEntity.getId(), 1, 2);
+//            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(videoId);
+//            int collectCnt = videoMasterDataEntity.getCollectCnt();
+//            videoMasterDataEntity.setCollectCnt((collectCnt + 1) <= 0 ? 0:(collectCnt + 1));
+//            videoMasterDataMapper.updateById(videoMasterDataEntity);
             return new FebsResponse().success().message("已收藏");
         }
     }
@@ -245,19 +294,21 @@
         Integer type = apiVideoLikeDto.getType();
         Long relateId = apiVideoLikeDto.getRelateId();
         VideoCommentLikeEntity videoCommentLikeEntity = videoCommentLikeMapper.selectCommentLikeByMemberIdAndRelateId(id,relateId);
+
+        VideoMasterInfoEntity videoMasterInfoEntity = this.baseMapper.selectById(relateId);
         if(videoCommentLikeEntity != null){
             if(1 == type){
                 //视频
-                VideoMasterInfoEntity videoMasterInfoEntity = this.baseMapper.selectById(relateId);
                 if(videoMasterInfoEntity == null){
                     throw new FebsException("视频不存在");
                 }
                 videoCommentLikeMapper.deleteById(videoCommentLikeEntity.getId());
                 //点赞数-1
-                VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(relateId);
-                int starCnt = videoMasterDataEntity.getStarCnt();
-                videoMasterDataEntity.setStarCnt((starCnt - 1) <= 0 ? 0:(starCnt - 1));
-                videoMasterDataMapper.updateById(videoMasterDataEntity);
+                this.videoMasterDataService.modifyVideoData(videoMasterInfoEntity.getId(), -1, 3);
+//                VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(relateId);
+//                int starCnt = videoMasterDataEntity.getStarCnt();
+//                videoMasterDataEntity.setStarCnt((starCnt - 1) <= 0 ? 0:(starCnt - 1));
+//                videoMasterDataMapper.updateById(videoMasterDataEntity);
                 return new FebsResponse().success().message("已取消点赞");
             }else if(2 == type){
                 //评论
@@ -277,10 +328,12 @@
             videoCommentLike.setMemberId(id);
             videoCommentLikeMapper.insert(videoCommentLike);
             //点赞数+1
-            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(relateId);
-            int starCnt = videoMasterDataEntity.getStarCnt();
-            videoMasterDataEntity.setStarCnt((starCnt + 1) <= 0 ? 0:(starCnt + 1));
-            videoMasterDataMapper.updateById(videoMasterDataEntity);
+
+            this.videoMasterDataService.modifyVideoData(videoMasterInfoEntity.getId(), 1, 3);
+//            VideoMasterDataEntity videoMasterDataEntity = videoMasterDataMapper.selectDataByMasterId(relateId);
+//            int starCnt = videoMasterDataEntity.getStarCnt();
+//            videoMasterDataEntity.setStarCnt((starCnt + 1) <= 0 ? 0:(starCnt + 1));
+//            videoMasterDataMapper.updateById(videoMasterDataEntity);
             return new FebsResponse().success().message("已点赞");
         }
 

--
Gitblit v1.9.1