From c3c6bbcd290da994c152495723c75a869185660f Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Fri, 17 Dec 2021 20:24:27 +0800
Subject: [PATCH] fix

---
 src/main/resources/mapper/modules/VideoHistoryMapper.xml                        |    3 +++
 src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java               |    2 ++
 src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java |   16 +++++++++++-----
 3 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java
index 65919a8..a133fbb 100644
--- a/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java
+++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java
@@ -9,4 +9,6 @@
 public interface VideoHistoryMapper extends BaseMapper<VideoHistoryEntity> {
 
     int delVideoHistoryByIdsAndMemberId(@Param("list")List<String> idList, @Param("memberId")Long id);
+
+    VideoHistoryEntity selectByMemberIdAndVideoId(@Param("memberId") Long memberId, @Param("videoId") Long videoId);
 }
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 d0c217f..fcef6c5 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
@@ -223,11 +223,17 @@
         videoInfoVo.setTimeLength(currentItem.getTimeLength());
 
         if (loginUser != null) {
-            VideoHistoryEntity history = new VideoHistoryEntity();
-            history.setVideoId(videoInfoEntity.getId());
-            history.setMemberId(loginUser.getId());
-            history.setVideoItemId(currentItem.getId());
-            this.videoHistoryMapper.insert(history);
+            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());
+                this.videoHistoryMapper.insert(history);
+            } else {
+                history.setVideoItemId(currentItem.getId());
+                this.videoHistoryMapper.updateById(history);
+            }
         }
 
         return videoInfoVo;
diff --git a/src/main/resources/mapper/modules/VideoHistoryMapper.xml b/src/main/resources/mapper/modules/VideoHistoryMapper.xml
index 6a68928..151c0fe 100644
--- a/src/main/resources/mapper/modules/VideoHistoryMapper.xml
+++ b/src/main/resources/mapper/modules/VideoHistoryMapper.xml
@@ -13,4 +13,7 @@
     </delete>
 
 
+    <select id="selectByMemberIdAndVideoId" resultType="cc.mrbird.febs.video.entity.VideoHistoryEntity">
+        select * from video_history where member_id=#{memberId} and video_id=#{videoId}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1