Helius
2021-12-20 6fe5122c10a1952fb31a4aae22b39bc1c3e9fd78
fix playCnt
3 files modified
2 files added
89 ■■■■■ changed files
src/main/java/cc/mrbird/febs/video/mapper/VideoMasterDataMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/service/IVideoMasterDataService.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterDataServiceImpl.java 62 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/video/VideoMasterDataMapper.xml 5 ●●●●● 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>