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