From 43fa0ec4dc02c2bb1a2ac5e9eea81cae4d2cb11d Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 17 Dec 2021 16:08:18 +0800 Subject: [PATCH] Merge branch 'master' of http://120.27.238.55:7000/r/xc-video --- src/main/java/cc/mrbird/febs/video/mapper/VideoCommentLikeMapper.java | 11 ++ src/main/resources/mapper/modules/VideoCollectionMapper.xml | 10 ++ src/main/java/cc/mrbird/febs/video/mapper/VideoCommentInfoMapper.java | 7 + src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java | 12 ++ src/main/java/cc/mrbird/febs/video/dto/ApiVideoHistoryDto.java | 13 ++ src/main/resources/mapper/modules/VideoCommentLikeMapper.xml | 12 ++ src/main/java/cc/mrbird/febs/video/service/impl/VideoMasterInfoServiceImpl.java | 97 +++++++++++++++++++ src/main/java/cc/mrbird/febs/video/controller/ApiVideoController.java | 26 +++++ src/main/java/cc/mrbird/febs/video/dto/ApiVideoLikeDto.java | 21 ++++ src/main/resources/mapper/modules/VideoHistoryMapper.xml | 16 +++ src/main/java/cc/mrbird/febs/video/dto/ApiVideoCollectionDto.java | 17 +++ src/main/java/cc/mrbird/febs/video/mapper/VideoCollectionMapper.java | 2 src/main/java/cc/mrbird/febs/video/service/IVideoMasterInfoService.java | 10 ++ 13 files changed, 253 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/video/controller/ApiVideoController.java b/src/main/java/cc/mrbird/febs/video/controller/ApiVideoController.java index 40f634a..1e92490 100644 --- a/src/main/java/cc/mrbird/febs/video/controller/ApiVideoController.java +++ b/src/main/java/cc/mrbird/febs/video/controller/ApiVideoController.java @@ -1,6 +1,10 @@ package cc.mrbird.febs.video.controller; +import cc.mrbird.febs.common.annotation.ControllerEndpoint; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.video.dto.ApiVideoCollectionDto; +import cc.mrbird.febs.video.dto.ApiVideoHistoryDto; +import cc.mrbird.febs.video.dto.ApiVideoLikeDto; import cc.mrbird.febs.video.dto.VideoListDto; import cc.mrbird.febs.video.service.IVideoMasterInfoService; import cc.mrbird.febs.video.vo.VideoInfoVo; @@ -11,6 +15,7 @@ import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; /** @@ -30,7 +35,7 @@ @ApiResponses({ @ApiResponse(code = 200, message = "success", response = VideoListVo.class) }) - @PostMapping(value = "/list") + @PostMapping(value = "/videoCollectionlist") public FebsResponse videoInPage(@RequestBody VideoListDto videoListDto) { return new FebsResponse().success().data(this.videoMasterInfoService.findVideoList(videoListDto)); } @@ -43,4 +48,23 @@ public FebsResponse videoInfo(@PathVariable("videoId") Long videoId, @RequestParam(value = "itemId", required = false) Long itemId) { return new FebsResponse().success().data(this.videoMasterInfoService.findVideoInfo(videoId, itemId)); } + + @ApiOperation(value = "收藏", notes = "收藏") + @PostMapping(value = "/videoCollection") + public FebsResponse videoCollection(@RequestBody ApiVideoCollectionDto apiVideoCollectionDto) { + return videoMasterInfoService.videoCollection(apiVideoCollectionDto); + } + + @ApiOperation(value = "点赞", notes = "点赞") + @PostMapping(value = "/videoLike") + public FebsResponse videoLike(@RequestBody ApiVideoLikeDto apiVideoLikeDto) { + return videoMasterInfoService.videoLike(apiVideoLikeDto); + } + + @ApiOperation(value = "删除历史观看记录", notes = "删除历史观看记录") + @PostMapping(value = "/delVideoHistory") + public FebsResponse delVideoHistory(@RequestBody ApiVideoHistoryDto apiVideoHistoryDto) { + return videoMasterInfoService.delVideoHistory(apiVideoHistoryDto); + } + } diff --git a/src/main/java/cc/mrbird/febs/video/dto/ApiVideoCollectionDto.java b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoCollectionDto.java new file mode 100644 index 0000000..d9823b8 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoCollectionDto.java @@ -0,0 +1,17 @@ +package cc.mrbird.febs.video.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +@ApiModel(value = "ApiVideoCollectionDto", description = "接收参数类") +public class ApiVideoCollectionDto { + + @NotBlank(message = "视频ID不能为空") + @ApiModelProperty(value = "视频ID", example = "10") + private Long videoId; + +} diff --git a/src/main/java/cc/mrbird/febs/video/dto/ApiVideoHistoryDto.java b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoHistoryDto.java new file mode 100644 index 0000000..e43bf52 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoHistoryDto.java @@ -0,0 +1,13 @@ +package cc.mrbird.febs.video.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "ApiVideoHistoryDto", description = "接收参数类") +public class ApiVideoHistoryDto { + + @ApiModelProperty(value = "观看历史IDS", example = "1,2,3") + private String ids; +} diff --git a/src/main/java/cc/mrbird/febs/video/dto/ApiVideoLikeDto.java b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoLikeDto.java new file mode 100644 index 0000000..fb8f36e --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/dto/ApiVideoLikeDto.java @@ -0,0 +1,21 @@ +package cc.mrbird.febs.video.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +@Data +@ApiModel(value = "ApiVideoLikeDto", description = "接收参数类") +public class ApiVideoLikeDto { + + @NotBlank(message = "类型不能为空") + @ApiModelProperty(value = "类型;1/视频 2/评论", example = "1") + private Integer type; + + @NotBlank(message = "关联id不能为空") + @ApiModelProperty(value = "关联id", example = "10") + private Long relateId; + +} diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoCollectionMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoCollectionMapper.java index c0a822b..f60bf2c 100644 --- a/src/main/java/cc/mrbird/febs/video/mapper/VideoCollectionMapper.java +++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoCollectionMapper.java @@ -14,4 +14,6 @@ IPage<ApiMyVideoCollectionVo> selectApiVideoCollectionInPage(IPage<ApiMyVideoCollectionVo> page, @Param("record")ApiMyVideoCollectionDto apiMyVideoCollectionDto); IPage<ApiMyVideoHistoryVo> selectApiMyVideoHistoryInPage(IPage<ApiMyVideoHistoryVo> page, @Param("record")ApiMyVideoHistoryDto apiMyVideoHistoryDto); + + VideoCollectionEntity selectVideoCollectionByVideoIdAndMemberId(@Param("videoId")Long videoId, @Param("memberId")Long id); } diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentInfoMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentInfoMapper.java new file mode 100644 index 0000000..520b7ac --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentInfoMapper.java @@ -0,0 +1,7 @@ +package cc.mrbird.febs.video.mapper; + +import cc.mrbird.febs.video.entity.VideoCommentInfoEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +public interface VideoCommentInfoMapper extends BaseMapper<VideoCommentInfoEntity> { +} diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentLikeMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentLikeMapper.java new file mode 100644 index 0000000..6becc1d --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoCommentLikeMapper.java @@ -0,0 +1,11 @@ +package cc.mrbird.febs.video.mapper; + +import cc.mrbird.febs.video.entity.VideoCommentLikeEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +public interface VideoCommentLikeMapper extends BaseMapper<VideoCommentLikeEntity> { + + VideoCommentLikeEntity selectCommentLikeByMemberIdAndRelateId(@Param("memberId")Long id, @Param("relateId")Long relateId); + +} diff --git a/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java b/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java new file mode 100644 index 0000000..65919a8 --- /dev/null +++ b/src/main/java/cc/mrbird/febs/video/mapper/VideoHistoryMapper.java @@ -0,0 +1,12 @@ +package cc.mrbird.febs.video.mapper; + +import cc.mrbird.febs.video.entity.VideoHistoryEntity; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface VideoHistoryMapper extends BaseMapper<VideoHistoryEntity> { + + int delVideoHistoryByIdsAndMemberId(@Param("list")List<String> idList, @Param("memberId")Long id); +} diff --git a/src/main/java/cc/mrbird/febs/video/service/IVideoMasterInfoService.java b/src/main/java/cc/mrbird/febs/video/service/IVideoMasterInfoService.java index 8e9ae42..95587b8 100644 --- a/src/main/java/cc/mrbird/febs/video/service/IVideoMasterInfoService.java +++ b/src/main/java/cc/mrbird/febs/video/service/IVideoMasterInfoService.java @@ -1,6 +1,10 @@ package cc.mrbird.febs.video.service; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; +import cc.mrbird.febs.video.dto.ApiVideoCollectionDto; +import cc.mrbird.febs.video.dto.ApiVideoHistoryDto; +import cc.mrbird.febs.video.dto.ApiVideoLikeDto; import cc.mrbird.febs.video.dto.VideoListDto; import cc.mrbird.febs.video.entity.VideoMasterInfoEntity; import cc.mrbird.febs.video.vo.VideoInfoVo; @@ -25,5 +29,11 @@ List<VideoListVo> findVideoList(VideoListDto videoListDto); VideoInfoVo findVideoInfo(Long videoId, Long itemId); + + FebsResponse videoCollection(ApiVideoCollectionDto apiVideoCollectionDto); + + FebsResponse videoLike(ApiVideoLikeDto apiVideoLikeDto); + + FebsResponse delVideoHistory(ApiVideoHistoryDto apiVideoHistoryDto); } 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 ae25c29..e60f7a7 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 @@ -1,11 +1,15 @@ package cc.mrbird.febs.video.service.impl; +import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.AppContants; import cc.mrbird.febs.common.utils.LoginUserUtil; import cc.mrbird.febs.video.conversion.VideoConversion; import cc.mrbird.febs.video.conversion.VideoMemberConversion; +import cc.mrbird.febs.video.dto.ApiVideoCollectionDto; +import cc.mrbird.febs.video.dto.ApiVideoHistoryDto; +import cc.mrbird.febs.video.dto.ApiVideoLikeDto; import cc.mrbird.febs.video.dto.VideoListDto; import cc.mrbird.febs.video.entity.*; import cc.mrbird.febs.video.mapper.*; @@ -15,6 +19,7 @@ import cc.mrbird.febs.video.vo.VideoListVo; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.core.*; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -38,6 +43,10 @@ private final VideoMasterItemsMapper videoMasterItemsMapper; private final VideoMasterSourceMapper videoMasterSourceMapper; private final VideoMasterDataMapper videoMasterDataMapper; + private final VideoCollectionMapper videoCollectionMapper; + private final VideoCommentInfoMapper videoCommentInfoMapper; + private final VideoCommentLikeMapper videoCommentLikeMapper; + private final VideoHistoryMapper videoHistoryMapper; private final VideoMemberMapper videoMemberMapper; @Override @@ -197,4 +206,92 @@ videoInfoVo.setTimeLength(currentItem.getTimeLength()); return videoInfoVo; } + + @Override + public FebsResponse videoCollection(ApiVideoCollectionDto apiVideoCollectionDto) { + Long id = LoginUserUtil.getLoginUser().getId(); + Long videoId = apiVideoCollectionDto.getVideoId(); + VideoMasterInfoEntity videoMasterInfoEntity = this.baseMapper.selectById(videoId); + if(videoMasterInfoEntity == null){ + throw new FebsException("视频不存在"); + } + VideoCollectionEntity videoCollection = videoCollectionMapper.selectVideoCollectionByVideoIdAndMemberId(videoId, id); + if(videoCollection != null){ + 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); + return new FebsResponse().success().message("已取消收藏"); + }else{ + VideoCollectionEntity videoCollectionEntity = new VideoCollectionEntity(); + videoCollectionEntity.setMemberId(id); + 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); + return new FebsResponse().success().message("已收藏"); + } + } + + @Override + public FebsResponse videoLike(ApiVideoLikeDto apiVideoLikeDto) { + Long id = LoginUserUtil.getLoginUser().getId(); + Integer type = apiVideoLikeDto.getType(); + Long relateId = apiVideoLikeDto.getRelateId(); + VideoCommentLikeEntity videoCommentLikeEntity = videoCommentLikeMapper.selectCommentLikeByMemberIdAndRelateId(id,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); + return new FebsResponse().success().message("已取消点赞"); + }else if(2 == type){ + //评论 + VideoCommentInfoEntity videoCommentInfoEntity = videoCommentInfoMapper.selectById(relateId); + if(videoCommentInfoEntity == null){ + throw new FebsException("评论不存在"); + } + videoCommentLikeMapper.deleteById(videoCommentLikeEntity.getId()); + return new FebsResponse().success().message("已取消点赞"); + }else{ + throw new FebsException("网络繁忙"); + } + }else{ + VideoCommentLikeEntity videoCommentLike = new VideoCommentLikeEntity(); + videoCommentLike.setType(type); + videoCommentLike.setRelateId(relateId); + 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); + return new FebsResponse().success().message("已点赞"); + } + + } + + @Override + public FebsResponse delVideoHistory(ApiVideoHistoryDto apiVideoHistoryDto) { + Long id = LoginUserUtil.getLoginUser().getId(); + String ids = apiVideoHistoryDto.getIds(); + List<String> idList = StrUtil.split(ids, ','); + videoHistoryMapper.delVideoHistoryByIdsAndMemberId(idList,id); + return new FebsResponse().success().message("成功"); + } } diff --git a/src/main/resources/mapper/modules/VideoCollectionMapper.xml b/src/main/resources/mapper/modules/VideoCollectionMapper.xml index fd60577..10b00a2 100644 --- a/src/main/resources/mapper/modules/VideoCollectionMapper.xml +++ b/src/main/resources/mapper/modules/VideoCollectionMapper.xml @@ -39,4 +39,14 @@ order by a.created_time desc </select> + + + <select id="selectVideoCollectionByVideoIdAndMemberId" resultType="cc.mrbird.febs.video.entity.VideoCollectionEntity"> + select + a.* + from video_collection a + where a.member_id = #{memberId} + and a.video_id = #{videoId} + </select> + </mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/modules/VideoCommentLikeMapper.xml b/src/main/resources/mapper/modules/VideoCommentLikeMapper.xml new file mode 100644 index 0000000..6227c5f --- /dev/null +++ b/src/main/resources/mapper/modules/VideoCommentLikeMapper.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="cc.mrbird.febs.video.mapper.VideoCommentLikeMapper"> + + + + <select id="selectCommentLikeByMemberIdAndRelateId" resultType="cc.mrbird.febs.video.entity.VideoCommentLikeEntity"> + select * from video_comment_like where member_id = #{memberId} and relate_id = #{relateId} + </select> + + +</mapper> \ No newline at end of file diff --git a/src/main/resources/mapper/modules/VideoHistoryMapper.xml b/src/main/resources/mapper/modules/VideoHistoryMapper.xml new file mode 100644 index 0000000..6a68928 --- /dev/null +++ b/src/main/resources/mapper/modules/VideoHistoryMapper.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="cc.mrbird.febs.video.mapper.VideoHistoryMapper"> + + + <delete id="delVideoHistoryByIdsAndMemberId"> + delete from video_history + where member_id = #{memberId} + and id in + <foreach collection="list" item="item" open="(" close=")" separator=","> + #{item} + </foreach> + </delete> + + +</mapper> \ No newline at end of file -- Gitblit v1.9.1