Commit 087373a1 by 段启岩

博客点赞列表完成

parent ffcb5d6e
package cn.meteor.beyondclouds.modules.blog.api;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.core.exception.ServiceException;
import cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException;
import cn.meteor.beyondclouds.modules.blog.service.IBlogPraiseService;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import cn.meteor.beyondclouds.util.SubjectUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
/**
* @author gaoTong
* @date 2020/1/31 9:27
......@@ -80,4 +85,16 @@ public class BlogPraiseApi {
}
}
@ApiOperation("博客点赞列表")
@GetMapping("/blog/{blogId}/praises")
public Response getPraises(@Valid @RequestParam PageForm pageForm, BindingResult bindingResult,
@PathVariable("blogId") String blogId) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<PraiseUserDTO> pageDTO = blogPraiseService.getBlogPraises(pageForm.getPage(), pageForm.getSize(), blogId);
return Response.success(pageDTO);
}
}
package cn.meteor.beyondclouds.modules.blog.mapper;
import cn.meteor.beyondclouds.modules.blog.entity.BlogPraise;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Param;
/**
* <p>
......@@ -13,4 +17,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface BlogPraiseMapper extends BaseMapper<BlogPraise> {
/**
* 查询点赞列表分页
* @param page
* @param targetId
* @param targetType
* @return
*/
IPage<PraiseUserDTO> selectPraisePage(Page<?> page, @Param("targetId") String targetId, @Param("targetType") Integer targetType);
}
......@@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.meteor.beyondclouds.modules.blog.mapper.BlogPraiseMapper">
<select id="selectPraisePage" resultType="cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO">
select
u.user_id,
u.nick_name,
u.user_avatar,
u.signature,
bp.create_time praise_yime
from blog_praise bp, user u
where bp.user_id = u.user_id
and bp.target_id = #{targetId}
and bp.target_type = #{targetType}
order by bp.create_time desc
</select>
</mapper>
package cn.meteor.beyondclouds.modules.blog.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.modules.blog.entity.BlogPraise;
import cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException;
import cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException;
import cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -43,4 +43,15 @@ public interface IBlogPraiseService extends IService<BlogPraise> {
* @param commentId
*/
void deleteBlogCommentPraise(String currentUserId, String commentId) throws BlogPraiseServiceException;
/**
* 获取博客点赞列表
*
* @param pageNumver
* @param pageSize
* @param blogId
* @return
*/
PageDTO<PraiseUserDTO> getBlogPraises(Integer pageNumver, Integer pageSize, String blogId);
}
package cn.meteor.beyondclouds.modules.blog.service.impl;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.blog.entity.Blog;
......@@ -9,15 +10,17 @@ import cn.meteor.beyondclouds.modules.blog.enums.BlogCommentErrorCode;
import cn.meteor.beyondclouds.modules.blog.enums.BlogErrorCode;
import cn.meteor.beyondclouds.modules.blog.enums.BlogPraiseErrorCode;
import cn.meteor.beyondclouds.modules.blog.enums.BlogPraiseType;
import cn.meteor.beyondclouds.modules.blog.exception.BlogCommentServiceException;
import cn.meteor.beyondclouds.modules.blog.exception.BlogPraiseServiceException;
import cn.meteor.beyondclouds.modules.blog.exception.BlogServiceException;
import cn.meteor.beyondclouds.modules.blog.mapper.BlogPraiseMapper;
import cn.meteor.beyondclouds.modules.blog.service.IBlogCommentService;
import cn.meteor.beyondclouds.modules.blog.service.IBlogPraiseService;
import cn.meteor.beyondclouds.modules.blog.service.IBlogService;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import cn.meteor.beyondclouds.util.PageUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -39,6 +42,8 @@ public class BlogPraiseServiceImpl extends ServiceImpl<BlogPraiseMapper, BlogPra
private IMessageQueueService messageQueueService;
private BlogPraiseMapper blogPraiseMapper;
@Autowired
public void setBlogService(IBlogService blogService) {
this.blogService = blogService;
......@@ -54,6 +59,11 @@ public class BlogPraiseServiceImpl extends ServiceImpl<BlogPraiseMapper, BlogPra
this.messageQueueService = messageQueueService;
}
@Autowired
public void setBlogPraiseMapper(BlogPraiseMapper blogPraiseMapper) {
this.blogPraiseMapper = blogPraiseMapper;
}
@Override
public void praiseBlog(String userId, String blogId) throws BlogPraiseServiceException {
// 1.判断博客是否存在
......@@ -156,4 +166,16 @@ public class BlogPraiseServiceImpl extends ServiceImpl<BlogPraiseMapper, BlogPra
// 2.取消点赞
remove(queryWrapper);
}
@Override
public PageDTO<PraiseUserDTO> getBlogPraises(Integer pageNumber, Integer pageSize, String blogId) {
IPage<PraiseUserDTO> praiseUserDTOPage = blogPraiseMapper.selectPraisePage(
new Page(pageNumber, pageSize),
blogId,
BlogPraiseType.BLOG_PRAISE.getPraiseType());
PageDTO<PraiseUserDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(praiseUserDTOPage, pageDTO);
pageDTO.setDataList(praiseUserDTOPage.getRecords());
return pageDTO;
}
}
package cn.meteor.beyondclouds.modules.user.dto;
import lombok.Data;
import java.util.Date;
/**
* @author meteor
*/
@Data
public class PraiseUserDTO {
private String userId;
private String nickName;
private String userAvatar;
private String signature;
private Date praiseTime;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment