Commit f952aead by 段启岩

各个点赞列表完成

parent 7405f4a2
......@@ -8,7 +8,7 @@
u.nick_name,
u.user_avatar,
u.signature,
bp.create_time praise_yime
bp.create_time praise_time
from blog_praise bp, user u
where bp.user_id = u.user_id
and bp.target_id = #{targetId}
......
package cn.meteor.beyondclouds.modules.post.api;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.modules.post.exception.PostServiceException;
import cn.meteor.beyondclouds.modules.post.service.IPostPraiseService;
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
......@@ -56,4 +63,17 @@ public class PostPraiseApi {
}
}
@Anonymous
@ApiOperation("动态点赞列表")
@GetMapping("/post/{postId}/praises")
public Response getPraises(@Valid PageForm pageForm, BindingResult bindingResult,
@PathVariable("postId") String postId) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<PraiseUserDTO> pageDTO = postPraiseService.getPostPraises(pageForm.getPage(), pageForm.getSize(), postId);
return Response.success(pageDTO);
}
}
package cn.meteor.beyondclouds.modules.post.mapper;
import cn.meteor.beyondclouds.modules.post.entity.PostPraise;
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>
......@@ -12,5 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2020-02-20
*/
public interface PostPraiseMapper extends BaseMapper<PostPraise> {
/**
* 查询点赞列表分页
* @param page
* @param targetId
* @param targetType
* @return
*/
IPage<PraiseUserDTO> selectPraisePage(Page<?> page, @Param("targetId") String targetId, @Param("targetType") Integer targetType);
}
<?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.meteor.beyondclouds.modules.post.mapper.PostPraiseMapper">
<select id="selectPraisePage" resultType="cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO">
select
u.user_id,
u.nick_name,
u.user_avatar,
u.signature,
pp.create_time praise_time
from post_praise pp, user u
where pp.user_id = u.user_id
and pp.target_id = #{targetId}
and pp.target_type = #{targetType}
order by pp.create_time desc
</select>
</mapper>
package cn.meteor.beyondclouds.modules.post.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.modules.post.entity.PostPraise;
import cn.meteor.beyondclouds.modules.post.exception.PostServiceException;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -29,4 +31,14 @@ public interface IPostPraiseService extends IService<PostPraise> {
* @throws PostServiceException
*/
void delPostPraise(String currentUserId, String postId) throws PostServiceException;
/**
* 动态点赞列表
* @param page
* @param size
* @param postId
* @return
*/
PageDTO<PraiseUserDTO> getPostPraises(Integer page, Integer size, String postId);
}
package cn.meteor.beyondclouds.modules.post.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.enums.BlogPraiseType;
import cn.meteor.beyondclouds.modules.post.entity.Post;
import cn.meteor.beyondclouds.modules.post.entity.PostPraise;
import cn.meteor.beyondclouds.modules.post.enums.PostErrorCode;
......@@ -12,7 +14,11 @@ import cn.meteor.beyondclouds.modules.post.service.IPostCommentService;
import cn.meteor.beyondclouds.modules.post.service.IPostPraiseService;
import cn.meteor.beyondclouds.modules.post.service.IPostService;
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;
......@@ -30,6 +36,7 @@ public class PostPraiseServiceImpl extends ServiceImpl<PostPraiseMapper, PostPra
private IPostService postService;
private IMessageQueueService messageQueueService;
private PostPraiseMapper postPraiseMapper;
@Autowired
public void setPostService(IPostService postService) {
......@@ -41,6 +48,11 @@ public class PostPraiseServiceImpl extends ServiceImpl<PostPraiseMapper, PostPra
this.messageQueueService = messageQueueService;
}
@Autowired
public void setPostPraiseMapper(PostPraiseMapper postPraiseMapper) {
this.postPraiseMapper = postPraiseMapper;
}
@Override
public void postPraise(String currentUserId, String postId) throws PostServiceException {
......@@ -104,4 +116,16 @@ public class PostPraiseServiceImpl extends ServiceImpl<PostPraiseMapper, PostPra
post.setPraiseNum(post.getPraiseNum() - 1);
postService.updateById(post);
}
@Override
public PageDTO<PraiseUserDTO> getPostPraises(Integer page, Integer size, String postId) {
IPage<PraiseUserDTO> praiseUserDTOPage = postPraiseMapper.selectPraisePage(
new Page(page, size),
postId,
PostPraiseType.POST_PRAISE.getPraiseType());
PageDTO<PraiseUserDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(praiseUserDTOPage, pageDTO);
pageDTO.setDataList(praiseUserDTOPage.getRecords());
return pageDTO;
}
}
package cn.meteor.beyondclouds.modules.project.api;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException;
import cn.meteor.beyondclouds.modules.project.service.IProjectPraiseService;
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
......@@ -79,4 +86,17 @@ public class ProjectPraiseApi {
}
}
@Anonymous
@ApiOperation("项目点赞列表")
@GetMapping("/project/{projectId}/praises")
public Response getPraises(@Valid PageForm pageForm, BindingResult bindingResult,
@PathVariable("projectId") String projectId) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<PraiseUserDTO> pageDTO = projectPraiseService.getProjectPraises(pageForm.getPage(), pageForm.getSize(), projectId);
return Response.success(pageDTO);
}
}
package cn.meteor.beyondclouds.modules.project.mapper;
import cn.meteor.beyondclouds.modules.project.entity.ProjectPraise;
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>
......@@ -12,5 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2020-02-20
*/
public interface ProjectPraiseMapper extends BaseMapper<ProjectPraise> {
/**
* 查询点赞列表分页
* @param page
* @param targetId
* @param targetType
* @return
*/
IPage<PraiseUserDTO> selectPraisePage(Page<?> page, @Param("targetId") String targetId, @Param("targetType") Integer targetType);
}
<?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.meteor.beyondclouds.modules.project.mapper.ProjectPraiseMapper">
<select id="selectPraisePage" resultType="cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO">
select
u.user_id,
u.nick_name,
u.user_avatar,
u.signature,
pp.create_time praise_time
from project_praise pp, user u
where pp.user_id = u.user_id
and pp.target_id = #{targetId}
and pp.target_type = #{targetType}
order by pp.create_time desc
</select>
</mapper>
package cn.meteor.beyondclouds.modules.project.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.modules.project.entity.ProjectPraise;
import cn.meteor.beyondclouds.modules.project.exception.ProjectServiceException;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -42,4 +44,13 @@ public interface IProjectPraiseService extends IService<ProjectPraise> {
* @param commentId
*/
void deleteProjectCommentPraise(String currentUserId, String commentId) throws ProjectServiceException;
/**
* 项目点赞列表
* @param page
* @param size
* @param projectId
* @return
*/
PageDTO<PraiseUserDTO> getProjectPraises(Integer page, Integer size, String projectId);
}
package cn.meteor.beyondclouds.modules.project.service.impl;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.enums.ErrorCode;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.modules.post.enums.PostPraiseType;
import cn.meteor.beyondclouds.modules.post.service.IPostCommentService;
import cn.meteor.beyondclouds.modules.project.entity.Project;
import cn.meteor.beyondclouds.modules.project.entity.ProjectComment;
......@@ -17,7 +19,11 @@ import cn.meteor.beyondclouds.modules.project.service.IProjectCommentService;
import cn.meteor.beyondclouds.modules.project.service.IProjectPraiseService;
import cn.meteor.beyondclouds.modules.project.service.IProjectService;
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;
......@@ -36,6 +42,7 @@ public class ProjectPraiseServiceImpl extends ServiceImpl<ProjectPraiseMapper, P
private IProjectService projectService;
private IProjectCommentService projectCommentService;
private IMessageQueueService messageQueueService;
private ProjectPraiseMapper projectPraiseMapper;
@Autowired
public void setProjectService(IProjectService projectService) {
......@@ -52,6 +59,11 @@ public class ProjectPraiseServiceImpl extends ServiceImpl<ProjectPraiseMapper, P
this.messageQueueService = messageQueueService;
}
@Autowired
public void setProjectPraiseMapper(ProjectPraiseMapper projectPraiseMapper) {
this.projectPraiseMapper = projectPraiseMapper;
}
@Override
public void praiseProject(String currentUserId, String projectId) throws ProjectServiceException {
......@@ -155,4 +167,16 @@ public class ProjectPraiseServiceImpl extends ServiceImpl<ProjectPraiseMapper, P
// 1.删除
remove(queryWrapper);
}
@Override
public PageDTO<PraiseUserDTO> getProjectPraises(Integer page, Integer size, String projectId) {
IPage<PraiseUserDTO> praiseUserDTOPage = projectPraiseMapper.selectPraisePage(
new Page(page, size),
projectId,
ProjectPraiseType.PROJECT_PRAISE.getPraiseType());
PageDTO<PraiseUserDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(praiseUserDTOPage, pageDTO);
pageDTO.setDataList(praiseUserDTOPage.getRecords());
return pageDTO;
}
}
package cn.meteor.beyondclouds.modules.question.api;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException;
import cn.meteor.beyondclouds.modules.question.service.IQuestionPraiseService;
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
......@@ -79,4 +86,17 @@ public class QuestionPraiseApi {
}
}
@Anonymous
@ApiOperation("问题点赞列表")
@GetMapping("/question/{questionId}/praises")
public Response getPraises(@Valid PageForm pageForm, BindingResult bindingResult,
@PathVariable("questionId") String questionId) {
if (bindingResult.hasErrors()) {
return Response.fieldError(bindingResult.getFieldError());
}
PageDTO<PraiseUserDTO> pageDTO = questionPraiseService.getQuestionPraises(pageForm.getPage(), pageForm.getSize(), questionId);
return Response.success(pageDTO);
}
}
package cn.meteor.beyondclouds.modules.question.mapper;
import cn.meteor.beyondclouds.modules.question.entity.QuestionPraise;
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>
......@@ -12,5 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @since 2020-02-20
*/
public interface QuestionPraiseMapper extends BaseMapper<QuestionPraise> {
/**
* 查询点赞列表分页
* @param page
* @param targetId
* @param targetType
* @return
*/
IPage<PraiseUserDTO> selectPraisePage(Page<?> page, @Param("targetId") String targetId, @Param("targetType") Integer targetType);
}
<?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.meteor.beyondclouds.modules.question.mapper.QuestionPraiseMapper">
<select id="selectPraisePage" resultType="cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO">
select
u.user_id,
u.nick_name,
u.user_avatar,
u.signature,
qp.create_time praise_time
from question_praise qp, user u
where qp.user_id = u.user_id
and qp.target_id = #{targetId}
and qp.target_type = #{targetType}
order by qp.create_time desc
</select>
</mapper>
package cn.meteor.beyondclouds.modules.question.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.modules.question.entity.QuestionPraise;
import cn.meteor.beyondclouds.modules.question.exception.QuestionServiceException;
import cn.meteor.beyondclouds.modules.user.dto.PraiseUserDTO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
......@@ -41,4 +43,13 @@ public interface IQuestionPraiseService extends IService<QuestionPraise> {
* @param replyId
*/
void deleteQuestionReplyPraise(String currentUserId, String replyId) throws QuestionServiceException;
/**
* 问题点赞列表
* @param page
* @param size
* @param questionId
* @return
*/
PageDTO<PraiseUserDTO> getQuestionPraises(Integer page, Integer size, String questionId);
}
package cn.meteor.beyondclouds.modules.question.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.project.enums.ProjectPraiseType;
import cn.meteor.beyondclouds.modules.question.entity.Question;
import cn.meteor.beyondclouds.modules.question.entity.QuestionPraise;
import cn.meteor.beyondclouds.modules.question.entity.QuestionReply;
......@@ -13,7 +15,11 @@ import cn.meteor.beyondclouds.modules.question.service.IQuestionPraiseService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionReplyService;
import cn.meteor.beyondclouds.modules.question.service.IQuestionService;
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;
......@@ -32,6 +38,7 @@ public class QuestionPraiseServiceImpl extends ServiceImpl<QuestionPraiseMapper,
private IQuestionService questionService;
private IQuestionReplyService questionReplyService;
private IMessageQueueService messageQueueService;
private QuestionPraiseMapper questionPraiseMapper;
@Autowired
public void setQuestionService(IQuestionService questionService) {
......@@ -48,6 +55,11 @@ public class QuestionPraiseServiceImpl extends ServiceImpl<QuestionPraiseMapper,
this.messageQueueService = messageQueueService;
}
@Autowired
public void setQuestionPraiseMapper(QuestionPraiseMapper questionPraiseMapper) {
this.questionPraiseMapper = questionPraiseMapper;
}
@Override
public void questionPraise(String currentUserId, String questionId) throws QuestionServiceException {
//1.查找问题是否存在
......@@ -148,4 +160,16 @@ public class QuestionPraiseServiceImpl extends ServiceImpl<QuestionPraiseMapper,
// 2.删除点赞
remove(questionPraiseQueryWrapper);
}
@Override
public PageDTO<PraiseUserDTO> getQuestionPraises(Integer page, Integer size, String questionId) {
IPage<PraiseUserDTO> praiseUserDTOPage = questionPraiseMapper.selectPraisePage(
new Page(page, size),
questionId,
QuestionPraiseType.QUESTION_PRAISE.getPraiseType());
PageDTO<PraiseUserDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(praiseUserDTOPage, pageDTO);
pageDTO.setDataList(praiseUserDTOPage.getRecords());
return pageDTO;
}
}
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