提交 1bcbceaf 编写于 作者: 喷火的神灵's avatar 喷火的神灵 🎱

评论模块

上级 5e90e6ba
......@@ -380,4 +380,32 @@ export function ForLike(params) {
url: "/video/handel/removelike",
data: params
})
}
// 获取评论列表
export function getComment(params,pageNum) {
return request({
method: 'get',
url: '/api/auth/comment/' + params + '/get-comment',
data: params,pageNum
})
}
//添加评论
export function insertComment(params) {
return request({
method: "post",
url: '/api/auth/comment/reply/add-new',
data:params
})
}
//添加回复
export function insertCommentOfVideo(params) {
return request({
method: "post",
url: '/api/auth/comment/add-new',
data:params
})
}
\ No newline at end of file
......@@ -26,6 +26,7 @@ import org.springframework.context.annotation.Configuration;
"cn.tedu.youbiliprojectbackend.common.data.mapper",
"cn.tedu.youbiliprojectbackend.modules.user.account.dao.mapper",
"cn.tedu.youbiliprojectbackend.modules.social.like.dao.persist.mapper",
"cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper"
})
public class MybatisConfig {
}
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.controller;
package cn.tedu.youbiliprojectbackend.modules.social.comment.controller;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.web.response.RestBean;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.dao.persist.mapper;
package cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentListVO;
import cn.tedu.youbiliprojectbackend.modules.user.account.pojo.entity.Account;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentListVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
import java.util.List;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.dao.persist.mapper;
package cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Commentreplie;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Commentreplie;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface CommentreplieMapper extends BaseMapper<Commentreplie> {
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.dao.persist.repository;
package cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.repository;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Commentreplie;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentListVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Commentreplie;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentListVO;
import java.util.List;
public interface ICommentRepository {
PageData<CommentFirstVO> selectByVideoID(Long videoID,Integer pageNum, Integer pageSize);
PageData<CommentFirstVO> selectByVideoID(Long videoID, Integer pageNum, Integer pageSize);
List<CommentListVO> selectByCommentID(Long commentID);
void insertComment(Comment comment);
void insertCommentreplie(Commentreplie commentreplie);
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.dao.persist.repository.impl;
package cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.repository.impl;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageInfoToPageDataConverter;
import cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.repository.ICommentRepository;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity.Commentreplie;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentListVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper.CommentMapper;
import cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper.CommentreplieMapper;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.dao.persist.repository.ICommentRepository;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Comment;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity.Commentreplie;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo.CommentListVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -22,7 +22,7 @@ public class CommentRepositoryImpl implements ICommentRepository {
@Autowired
CommentreplieMapper commentreplieMapper;
@Override
public PageData<CommentFirstVO> selectByVideoID(Long videoID,Integer pageNum, Integer pageSize) {
public PageData<CommentFirstVO> selectByVideoID(Long videoID, Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<CommentFirstVO> commentFirstVO = mapper.selectFirstCommentByVideoID(videoID);
PageInfo<CommentFirstVO> pageInfo = new PageInfo<>(commentFirstVO);
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity;
package cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.entity;
package cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo;
package cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.pojo.vo;
package cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.service;
package cn.tedu.youbiliprojectbackend.modules.social.comment.service;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
......
package cn.tedu.youbiliprojectbackend.modules.social.comment.comment.service.impl;
package cn.tedu.youbiliprojectbackend.modules.social.comment.service.impl;
import cn.tedu.youbiliprojectbackend.common.security.CurrentPrincipal;
import cn.tedu.youbiliprojectbackend.common.utils.pagedate.PageData;
......@@ -9,10 +9,9 @@ import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.param.CommentAd
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.param.CommentReplyAddNewParam;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentFirstVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentListVO;
import cn.tedu.youbiliprojectbackend.modules.social.comment.comment.service.ICommentService;
import cn.tedu.youbiliprojectbackend.modules.social.comment.service.ICommentService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.List;
......
package cn.tedu.youbiliprojectbackend.modules.video.index.dao.cache;
import cn.tedu.youbiliprojectbackend.common.consts.CountConsts;
import cn.tedu.youbiliprojectbackend.common.consts.VideoConsts;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.pojo.vo.VideoCountListVO;
public interface IVideoListCache extends VideoConsts, CountConsts {
VideoCountListVO listLike(Long videoID);
}
package cn.tedu.youbiliprojectbackend.modules.video.index.dao.cache.impl;
import cn.tedu.youbiliprojectbackend.common.cacheUtils.count.video.pojo.VideoCount;
import cn.tedu.youbiliprojectbackend.common.ex.ServiceException;
import cn.tedu.youbiliprojectbackend.common.web.response.ServiceCode;
import cn.tedu.youbiliprojectbackend.modules.video.index.dao.cache.IVideoListCache;
import cn.tedu.youbiliprojectbackend.modules.video.index.pojo.vo.videoListVO;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.pojo.vo.VideoCountListVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.AutoConfigureOrder;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Repository;
import java.io.Serializable;
@Repository
public class VideoListCache implements IVideoListCache {
@Autowired
RedisTemplate<String,Serializable> redisTemplate;
@Override
public VideoCountListVO listLike(Long videoID) {
ValueOperations<String, Serializable> opsForValue = redisTemplate.opsForValue();
VideoCount vo = null;
videoListVO listVO = new videoListVO();
try {
vo = (VideoCount) opsForValue.get(VIDEO_COUNT + videoID+":"+true);
listVO.setVideoID(vo.getVideoID());
listVO.setLikeCount(vo.getLikeCount());
listVO.setBarrageCount(vo.getBarrageCount());
listVO.setCommentCount(vo.getCommentCount());
listVO.setDislikeCount(vo.getDislikeCount());
listVO.setFavoriteCount(vo.getFavoriteCount());
listVO.setViewCount(vo.getViewCount());
} catch (RuntimeException e){
try{
vo = (VideoCount) opsForValue.get(VIDEO_COUNT + videoID+":"+false);
listVO.setVideoID(vo.getVideoID());
listVO.setLikeCount(vo.getLikeCount());
listVO.setBarrageCount(vo.getBarrageCount());
listVO.setCommentCount(vo.getCommentCount());
listVO.setDislikeCount(vo.getDislikeCount());
listVO.setFavoriteCount(vo.getFavoriteCount());
listVO.setViewCount(vo.getViewCount());
}catch (RuntimeException e1){
throw new ServiceException(ServiceCode.ERROR_CONFLICT,"数据不存在");
}
}
return null;
}
}
package cn.tedu.youbiliprojectbackend.modules.video.index.dao.cache;
public interface videoListCache {
}
package cn.tedu.youbiliprojectbackend.modules.video.index.pojo.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
@Data
public class videoListVO implements Serializable {
// private Long
private Long videoID;
private Long userID;
private String title;
private String description;
/**
* 视频时长
*/
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm:ss")
private LocalDateTime duration;
/**
* 上传日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime uploadDate;
private String videoSrcUrl;
private String videoImgUrl;
private String nickname;
private String imgUrl;
/**
* 总点赞数
*/
private Integer likeCount;
private Integer viewCount;
private Integer favoriteCount;
private Integer dislikeCount;
private Integer barrageCount;
private Integer commentCount;
}
package cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.persist.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;
@Repository
public interface CountMapper {
}
package cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.persist.repository;
public interface ICountRepository {
}
package cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.persist.repository.impl;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.persist.repository.ICountRepository;
import org.springframework.stereotype.Repository;
@Repository
public class CountRepository implements ICountRepository {
}
package cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.service.impl;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.cache.ICountCache;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.dao.persist.repository.ICountRepository;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.pojo.vo.VideoCountListVO;
import cn.tedu.youbiliprojectbackend.modules.video.videoAllcount.service.ICountService;
import lombok.extern.slf4j.Slf4j;
......@@ -16,8 +16,6 @@ import org.springframework.stereotype.Service;
@Service
public class CountService implements ICountService {
@Autowired
ICountRepository likeRepository;
@Autowired
ICountCache likeCache;
......
<?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="cn.tedu.youbiliprojectbackend.modules.social.comment.dao.persist.mapper.CommentMapper">
<select id="selectFirstCommentByVideoID"
resultType="cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentFirstVO">
SELECT commentID, nickname, commentText, likeCount, dislikeCount,c.gmtCreate
FROM comment c
LEFT JOIN user u on c.userID = u.userID
WHERE videoID = #{videoID}
ORDER BY c.likeCount
</select>
<select id="selectCommentListByCommentID"
resultType="cn.tedu.youbiliprojectbackend.modules.social.comment.pojo.vo.CommentListVO">
SELECT c.replyID, u.nickname, u2.nickname pNickname, c.replyText, c.likeCount, c.dislikeCount,c.gmtCreate
FROM commentreplie c
LEFT JOIN user u on c.userID = u.userID
LEFT JOIN commentreplie c2 ON c.parentReplyID = c2.replyID
LEFT JOIN user u2 ON c2.userID = u2.userID
WHERE c.commentID = #{commentID}
ORDER BY c.gmtCreate
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册