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 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); } }