src/main/java/cc/mrbird/febs/video/mapper/VideoMasterDataMapper.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/video/service/IVideoMasterDataService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterDataServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
src/main/resources/mapper/video/VideoMasterDataMapper.xml | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/video/mapper/VideoMasterDataMapper.java
@@ -7,4 +7,6 @@ public interface VideoMasterDataMapper extends BaseMapper<VideoMasterDataEntity> { VideoMasterDataEntity selectDataByMasterId(@Param("masterId") Long masterId); VideoMasterDataEntity selectDataByMasterIdForUpdate(@Param("masterId") Long master); } src/main/java/cc/mrbird/febs/video/service/IVideoMasterDataService.java
New file @@ -0,0 +1,9 @@ package cc.mrbird.febs.video.service; import cc.mrbird.febs.video.entity.VideoMasterDataEntity; import com.baomidou.mybatisplus.extension.service.IService; public interface IVideoMasterDataService extends IService<VideoMasterDataEntity> { void modifyVideoData(Long masterId, int cnt, int type); } src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterDataServiceImpl.java
New file @@ -0,0 +1,62 @@ package cc.mrbird.febs.video.service.impl; import cc.mrbird.febs.video.entity.VideoMasterDataEntity; import cc.mrbird.febs.video.mapper.VideoMasterDataMapper; import cc.mrbird.febs.video.service.IVideoMasterDataService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; /** * @author wzy * @date 2021-12-20 **/ @Slf4j @Service @RequiredArgsConstructor public class VideoMasterDataServiceImpl extends ServiceImpl<VideoMasterDataMapper, VideoMasterDataEntity> implements IVideoMasterDataService { @Override public synchronized void modifyVideoData(Long masterId, int cnt, int type) { VideoMasterDataEntity data = this.baseMapper.selectDataByMasterIdForUpdate(masterId); if (data == null) { data = new VideoMasterDataEntity(); data.setMasterId(masterId); data.setCollectCnt(0); data.setPlayCnt(0); data.setStarCnt(0); } int targetCnt = 0; switch (type) { // 播放量 case 1: targetCnt = data.getPlayCnt() + cnt; if (targetCnt < 0) { targetCnt = 0; } data.setPlayCnt(targetCnt); break; // 收藏量 case 2: targetCnt = data.getCollectCnt() + cnt; if (targetCnt < 0) { targetCnt = 0; } data.setCollectCnt(targetCnt); break; // 点赞量 case 3: targetCnt = data.getStarCnt() + cnt; if (targetCnt < 0) { targetCnt = 0; } data.setStarCnt(targetCnt); break; } this.baseMapper.updateById(data); } } 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; @@ -48,6 +49,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) { @@ -180,6 +182,7 @@ videoInfoVo.setStarCnt(data.getStarCnt()); if (loginUser != null) { // 是否点赞 VideoCommentLikeEntity commentLike = this.videoCommentLikeMapper.selectCommentLikeByMemberIdAndRelateId(loginUser.getId(), videoInfoEntity.getId()); if (commentLike != null) { videoInfoVo.setIsLike(1); @@ -187,6 +190,7 @@ videoInfoVo.setIsLike(2); } // 是否收藏 VideoCollectionEntity collection = this.videoCollectionMapper.selectVideoCollectionByVideoIdAndMemberId(videoInfoEntity.getId(), loginUser.getId()); if (collection != null) { videoInfoVo.setIsCollect(1); @@ -195,12 +199,15 @@ } } // 视频是否需要vip if (AppContants.FLAG_INT_N.equals(videoInfoEntity.getIsFree())) { // 判断用户是否登录 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); @@ -222,6 +229,10 @@ 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) { src/main/resources/mapper/video/VideoMasterDataMapper.xml
@@ -6,4 +6,9 @@ select * from video_master_data where master_id=#{masterId} </select> <select id="selectDataByMasterIdForUpdate" resultType="cc.mrbird.febs.video.entity.VideoMasterDataEntity"> select * from video_master_data where master_id=#{masterId} for update </select> </mapper>