Commit 678ee9d2 by 段启岩

我的关注和他人的关注里面添加统计信息

parent 9458e648
package cn.meteor.beyondclouds.common.vo;
package cn.meteor.beyondclouds.common.dto;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;
......@@ -11,7 +11,7 @@ import java.util.List;
* @author meteor
*/
@Data
public class PageVO<T> {
public class PageDTO<T> {
/**
* 总页数
......@@ -33,17 +33,17 @@ public class PageVO<T> {
*/
private List<T> dataList;
public PageVO() {
public PageDTO() {
}
public PageVO(IPage<T> page) {
public PageDTO(IPage<T> page) {
setDataList(page.getRecords());
setTotalPage(page.getPages());
setTotalRecords(page.getTotal());
setPageSize(page.getSize());
}
public PageVO(Page<T> page) {
public PageDTO(Page<T> page) {
setDataList(page.getContent());
setTotalPage(page.getTotalPages());
setTotalRecords(page.getTotalElements());
......
package cn.meteor.beyondclouds.modules.blog.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -94,11 +94,11 @@ public class BlogApi {
@Anonymous
@ApiOperation("博客列表")
@GetMapping("/blogs")
public Response<PageVO<Blog>> getBlogs (@Valid PageForm pageForm,
public Response<PageDTO<Blog>> getBlogs (@Valid PageForm pageForm,
@RequestParam(value = "categoryId", required = false) Integer categoryId) {
IPage<Blog> blogPage = blogService.getBlogPage(pageForm.getPage(), pageForm.getSize(), categoryId);
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
/**
......@@ -109,10 +109,10 @@ public class BlogApi {
*/
@ApiOperation("我的博客列表")
@GetMapping("/my/blogs")
public Response<PageVO<Blog>> getMyBlogs (@Valid PageForm pageForm , @CurrentSubject Subject subject) {
public Response<PageDTO<Blog>> getMyBlogs (@Valid PageForm pageForm , @CurrentSubject Subject subject) {
IPage<Blog> blogPage = blogService.getMyBlogPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
......@@ -125,10 +125,10 @@ public class BlogApi {
@Anonymous
@ApiOperation("他人博客列表")
@GetMapping("/user/{userId}/blogs")
public Response<PageVO<Blog>> getOtherBlogs (@Valid PageForm pageForm , @PathVariable("userId") String userId) {
public Response<PageDTO<Blog>> getOtherBlogs (@Valid PageForm pageForm , @PathVariable("userId") String userId) {
IPage<Blog> blogPage = blogService.getUserBlogPage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
@ApiOperation("修改博客")
......@@ -156,10 +156,10 @@ public class BlogApi {
@Anonymous
@ApiOperation("热门博客")
@GetMapping("/blog/hots")
public Response<PageVO<Blog>> getHotBlogs (@Valid PageForm pageForm) {
public Response<PageDTO<Blog>> getHotBlogs (@Valid PageForm pageForm) {
IPage<Blog> blogPage = blogService.getHotBlogPage(pageForm.getPage(), pageForm.getSize());
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
@Anonymous
......@@ -171,8 +171,8 @@ public class BlogApi {
}
IPage<Blog> blogPage = blogService.getBlogPageByTagId(pageForm.getPage(), pageForm.getSize(), tagId);
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
@Anonymous
......@@ -183,8 +183,8 @@ public class BlogApi {
return Response.fieldError(bindingResult.getFieldError());
}
IPage<Blog> blogPage = blogService.getRelatedBlogPage(pageForm.getPage() , pageForm.getSize() , blogId);
PageVO<Blog> blogPageVO = new PageVO<>(blogPage);
return Response.success(blogPageVO);
PageDTO<Blog> blogPageDTO = new PageDTO<>(blogPage);
return Response.success(blogPageDTO);
}
}
package cn.meteor.beyondclouds.modules.blog.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -63,15 +63,15 @@ public class BlogCommentApi {
@Anonymous
@ApiOperation("评论列表")
@GetMapping("/blog/{blogId}/comments")
public Response<PageVO<BlogComment>> getBlogCommentPage(@PathVariable("blogId") String bLogId,
public Response<PageDTO<BlogComment>> getBlogCommentPage(@PathVariable("blogId") String bLogId,
@Valid PageForm pageForm ,
@RequestParam(value = "parent_id",required = false) Integer parentId) {
//获取评论列表
try {
IPage<BlogComment> commentPage = blogCommentService.getCommentPage(pageForm.getPage(), pageForm.getSize(), bLogId, parentId);
PageVO<BlogComment> blogCommentPageVO = new PageVO<>(commentPage);
return Response.success(blogCommentPageVO);
PageDTO<BlogComment> blogCommentPageDTO = new PageDTO<>(commentPage);
return Response.success(blogCommentPageDTO);
} catch (BlogCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
......
package cn.meteor.beyondclouds.modules.content.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.modules.content.dto.ContentDetailDTO;
......@@ -52,8 +52,8 @@ public class ContentApi {
try {
IPage<Content> contentPage = contentService.getPageByChannelId(channelId, contentType, pageForm.getPage(), pageForm.getSize());
PageVO<Content> contentPageVO = new PageVO<>(contentPage);
return Response.success(contentPageVO);
PageDTO<Content> contentPageDTO = new PageDTO<>(contentPage);
return Response.success(contentPageDTO);
} catch (ContentServiceException e) {
e.printStackTrace();
return Response.error(e);
......
......@@ -2,7 +2,7 @@ package cn.meteor.beyondclouds.modules.message.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.core.authentication.Subject;
......@@ -60,8 +60,8 @@ public class MessageApi {
}
// 根据用户获取列表并返回
IPage<Message> messageIPage = messageService.getMessagePage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Message> messagePageVO = new PageVO<>(messageIPage);
return Response.success(messagePageVO);
PageDTO<Message> messagePageDTO = new PageDTO<>(messageIPage);
return Response.success(messagePageDTO);
}
@ApiOperation("消息详情")
......
package cn.meteor.beyondclouds.modules.post.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -174,7 +174,7 @@ public class PostApi {
* @param postPage
* @return
*/
private PageVO<? extends PostVO> toPostVOPage(IPage<Post> postPage, Subject subject) {
private PageDTO<? extends PostVO> toPostVOPage(IPage<Post> postPage, Subject subject) {
List<PostVO> postVOList;
if (null != subject && subject.isAuthenticated()) {
String currentUserId = (String) subject.getId();
......@@ -205,9 +205,9 @@ public class PostApi {
}).collect(Collectors.toList());
}
PageVO<PostVO> postPageVO = new PageVO<>();
PageUtils.copyMeta(postPage, postPageVO);
postPageVO.setDataList(postVOList);
return postPageVO;
PageDTO<PostVO> postPageDTO = new PageDTO<>();
PageUtils.copyMeta(postPage, postPageDTO);
postPageDTO.setDataList(postVOList);
return postPageDTO;
}
}
package cn.meteor.beyondclouds.modules.post.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -70,13 +70,13 @@ public class PostCommentApi {
@Anonymous
@ApiOperation("评论列表")
@GetMapping("/post/{postId}/comments")
public Response<PageVO<PostComment>> getPostCommentPage(@PathVariable("postId") String postId ,
public Response<PageDTO<PostComment>> getPostCommentPage(@PathVariable("postId") String postId ,
@Valid PageForm pageForm ,
@RequestParam(value = "parent_id",required = false) Integer parentId) {
try {
IPage<PostComment> postCommentIPage = postCommentService.getCommentPage(pageForm.getPage(), pageForm.getSize(), postId, parentId);
PageVO<PostComment> postCommentPageVO = new PageVO<>(postCommentIPage);
return Response.success(postCommentPageVO);
PageDTO<PostComment> postCommentPageDTO = new PageDTO<>(postCommentIPage);
return Response.success(postCommentPageDTO);
} catch (PostCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
......
package cn.meteor.beyondclouds.modules.project.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -149,11 +149,11 @@ public class ProjectApi {
@Anonymous
@ApiOperation("项目列表")
@GetMapping("/projects")
public Response<PageVO<Project>> getProjects(@Valid PageForm pageForm, @RequestParam(value = "categoryId", required = false) Integer categoryId) {
public Response<PageDTO<Project>> getProjects(@Valid PageForm pageForm, @RequestParam(value = "categoryId", required = false) Integer categoryId) {
// 获取列表并返回
IPage<Project> projectPage = projectService.getProjectPage(pageForm.getPage(), pageForm.getSize(), categoryId);
PageVO<Project> projectPageVO = new PageVO<>(projectPage);
return Response.success(projectPageVO);
PageDTO<Project> projectPageDTO = new PageDTO<>(projectPage);
return Response.success(projectPageDTO);
}
/**
......@@ -163,11 +163,11 @@ public class ProjectApi {
*/
@ApiOperation("我的项目列表")
@GetMapping("/my/projects")
public Response<PageVO<Project>> getMyProjects(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Project>> getMyProjects(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
// 根据用户获取列表并返回
IPage<Project> projectPage = projectService.getProjectPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Project> projectPageVO = new PageVO<>(projectPage);
return Response.success(projectPageVO);
PageDTO<Project> projectPageDTO = new PageDTO<>(projectPage);
return Response.success(projectPageDTO);
}
/**
......@@ -178,22 +178,22 @@ public class ProjectApi {
@Anonymous
@ApiOperation("他人项目列表")
@GetMapping("/user/{userId}/projects")
public Response<PageVO<Project>> getOthersProjects(@Valid PageForm pageForm,
public Response<PageDTO<Project>> getOthersProjects(@Valid PageForm pageForm,
@PathVariable("userId") String userId) {
// 根据用户获取列表并返回
IPage<Project> projectPage = projectService.getProjectPage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<Project> projectPageVO = new PageVO<>(projectPage);
return Response.success(projectPageVO);
PageDTO<Project> projectPageDTO = new PageDTO<>(projectPage);
return Response.success(projectPageDTO);
}
@Anonymous
@ApiOperation("热门项目")
@GetMapping("/project/hots")
public Response<PageVO<Project>> getHotProjects(@Valid PageForm pageForm) {
public Response<PageDTO<Project>> getHotProjects(@Valid PageForm pageForm) {
// 获取热门项目列表并返回
IPage<Project> projectPage = projectService.getHotProjectPage(pageForm.getPage(), pageForm.getSize());
PageVO<Project> projectPageVO = new PageVO<>(projectPage);
return Response.success(projectPageVO);
PageDTO<Project> projectPageDTO = new PageDTO<>(projectPage);
return Response.success(projectPageDTO);
}
}
package cn.meteor.beyondclouds.modules.project.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -82,14 +82,14 @@ public class ProjectCommentApi {
@Anonymous
@ApiOperation("评论列表")
@GetMapping("/project/{projectId}/comments")
public Response<PageVO<ProjectComment>> getProjectComments(@PathVariable("projectId") Integer projectId,
public Response<PageDTO<ProjectComment>> getProjectComments(@PathVariable("projectId") Integer projectId,
@Valid PageForm pageForm,
@RequestParam(value = "parentId" ,required = false) Integer parentId) {
try {
// 根据用户获取列表并返回
IPage<ProjectComment> commentPage = projectCommentService.getCommentPage(pageForm.getPage(), pageForm.getSize(), projectId, parentId);
PageVO<ProjectComment> projectPageVO = new PageVO<>(commentPage);
return Response.success(projectPageVO);
PageDTO<ProjectComment> projectPageDTO = new PageDTO<>(commentPage);
return Response.success(projectPageDTO);
} catch (ProjectCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
......
package cn.meteor.beyondclouds.modules.question.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -177,11 +177,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation("问答列表")
@GetMapping("/questions")
public Response<PageVO<Question>> getQuestions(@Valid PageForm pageForm, @RequestParam(value = "categoryId", required = false) Integer categoryId) {
public Response<PageDTO<Question>> getQuestions(@Valid PageForm pageForm, @RequestParam(value = "categoryId", required = false) Integer categoryId) {
//获取列表并返回
IPage<Question> questionPage = questionService.getQuestionPage(pageForm.getPage(), pageForm.getSize(), categoryId);
PageVO<Question> questionPageVO = new PageVO<>(questionPage);
return Response.success(questionPageVO);
PageDTO<Question> questionPageDTO = new PageDTO<>(questionPage);
return Response.success(questionPageDTO);
}
/**
......@@ -192,11 +192,11 @@ public class QuestionApi {
*/
@ApiOperation("我创建的问答列表")
@GetMapping("/my/questions")
public Response<PageVO<Question>> getMyQuestions(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Question>> getMyQuestions(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
//获取我的列表并返回
IPage<Question> myQuestionPage = questionService.getUserQuestionPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Question> questionPageVO = new PageVO<>(myQuestionPage);
return Response.success(questionPageVO);
PageDTO<Question> questionPageDTO = new PageDTO<>(myQuestionPage);
return Response.success(questionPageDTO);
}
/**
......@@ -207,11 +207,11 @@ public class QuestionApi {
*/
@ApiOperation("我参与的问答列表")
@GetMapping("/my/question/participated")
public Response<PageVO<Question>> getMyParticipateQuestions(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Question>> getMyParticipateQuestions(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
//获取我的列表并返回
IPage<Question> questionPage = questionService.getUserParticipatePage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Question> questionReplyPageVO = new PageVO<>(questionPage);
return Response.success(questionReplyPageVO);
PageDTO<Question> questionReplyPageDTO = new PageDTO<>(questionPage);
return Response.success(questionReplyPageDTO);
}
/**
......@@ -223,11 +223,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation("用户创建的问答列表")
@GetMapping("/user/{userId}/questions")
public Response<PageVO<Question>> getOthersQuestions(@Valid PageForm pageForm, @PathVariable("userId") String userId) {
public Response<PageDTO<Question>> getOthersQuestions(@Valid PageForm pageForm, @PathVariable("userId") String userId) {
//获取别人的问答列表并返回
IPage<Question> questionPage = questionService.getUserQuestionPage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<Question> questionPageVO = new PageVO<>(questionPage);
return Response.success(questionPageVO);
PageDTO<Question> questionPageDTO = new PageDTO<>(questionPage);
return Response.success(questionPageDTO);
}
/**
......@@ -239,30 +239,30 @@ public class QuestionApi {
@Anonymous
@ApiOperation("用户参与的问答列表")
@GetMapping("/user/{userId}/question/participated")
public Response<PageVO<Question>> getUserParticipateQuestions(@Valid PageForm pageForm, @PathVariable("userId") String userId) {
public Response<PageDTO<Question>> getUserParticipateQuestions(@Valid PageForm pageForm, @PathVariable("userId") String userId) {
//获取用户参与的问答列表并返回
IPage<Question> userParticipateQuestion = questionService.getUserParticipatePage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<Question> questionReplyPageVO = new PageVO<>(userParticipateQuestion);
return Response.success(questionReplyPageVO);
PageDTO<Question> questionReplyPageDTO = new PageDTO<>(userParticipateQuestion);
return Response.success(questionReplyPageDTO);
}
@Anonymous
@ApiOperation("热门回答")
@GetMapping("/question/hots")
public Response<PageVO<Question>> getHotsQuestions(@Valid PageForm pageForm) {
public Response<PageDTO<Question>> getHotsQuestions(@Valid PageForm pageForm) {
IPage<Question> questionPage = questionService.getHotsQuestionsPage(pageForm.getPage(), pageForm.getSize());
PageVO<Question> questionPageVO = new PageVO<>(questionPage);
return Response.success(questionPageVO);
PageDTO<Question> questionPageDTO = new PageDTO<>(questionPage);
return Response.success(questionPageDTO);
}
@Anonymous
@ApiOperation("相关问答")
@GetMapping("/question/{questionId}/recommends")
public Response<PageVO<Question>> questionRecommends(@Valid PageForm pageForm, @PathVariable("questionId") String questionId) {
public Response<PageDTO<Question>> questionRecommends(@Valid PageForm pageForm, @PathVariable("questionId") String questionId) {
try {
IPage<Question> questionPage = questionService.questionRecommends(pageForm.getPage(), pageForm.getSize(), questionId);
PageVO<Question> questionPageVO = new PageVO<>(questionPage);
return Response.success(questionPageVO);
PageDTO<Question> questionPageDTO = new PageDTO<>(questionPage);
return Response.success(questionPageDTO);
} catch (QuestionServiceException e) {
e.printStackTrace();
return Response.error(e);
......@@ -272,11 +272,11 @@ public class QuestionApi {
@Anonymous
@ApiOperation("得到标签下的问答列表")
@GetMapping("/tag/{tagId}/questions")
public Response<PageVO<Question>> getQuestionsByTagId(@Valid PageForm pageForm, @PathVariable("tagId") String tagId) {
public Response<PageDTO<Question>> getQuestionsByTagId(@Valid PageForm pageForm, @PathVariable("tagId") String tagId) {
try {
IPage<Question> page = questionService.getQuestionsByTagId(pageForm.getPage(), pageForm.getSize(), tagId);
PageVO<Question> pageVO = new PageVO<>(page);
return Response.success(pageVO);
PageDTO<Question> pageDTO = new PageDTO<>(page);
return Response.success(pageDTO);
} catch (QuestionTagServiceException e) {
e.printStackTrace();
return Response.error(e);
......
package cn.meteor.beyondclouds.modules.question.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -85,12 +85,12 @@ public class QuestionReplyApi {
@Anonymous
@ApiOperation("问题的回复列表")
@GetMapping("/question/{questionId}/replies")
public Response<PageVO<QuestionReply>> getReplies(@Valid PageForm pageForm, @PathVariable("questionId") String questionId) {
public Response<PageDTO<QuestionReply>> getReplies(@Valid PageForm pageForm, @PathVariable("questionId") String questionId) {
//获取问题的回复列表
try {
IPage<QuestionReply> questionReplyPage = questionReplyService.getReplies(pageForm.getPage(), pageForm.getSize(), questionId);
PageVO<QuestionReply> questionReplyPageVO = new PageVO<>(questionReplyPage);
return Response.success(questionReplyPageVO);
PageDTO<QuestionReply> questionReplyPageDTO = new PageDTO<>(questionReplyPage);
return Response.success(questionReplyPageDTO);
} catch (QuestionReplyServiceException e) {
e.printStackTrace();
return Response.error(e);
......
package cn.meteor.beyondclouds.modules.question.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -89,13 +89,13 @@ public class QuestionReplyCommentApi {
@Anonymous
@ApiOperation("评论列表")
@GetMapping("/question/reply/{replyId}/comments")
public Response<PageVO<QuestionReplyComment>> getReplyComments(@PathVariable("replyId") String replyId,
public Response<PageDTO<QuestionReplyComment>> getReplyComments(@PathVariable("replyId") String replyId,
@Valid PageForm pageForm,
@RequestParam(value = "parentId", required = false) String parentId) {
try {
IPage<QuestionReplyComment> replyCommentPage = questionReplyCommentService.getReplyCommentPage(pageForm.getPage(), pageForm.getSize(), replyId, parentId);
PageVO<QuestionReplyComment> questionReplyCommentPageVO = new PageVO<>(replyCommentPage);
return Response.success(questionReplyCommentPageVO);
PageDTO<QuestionReplyComment> questionReplyCommentPageDTO = new PageDTO<>(replyCommentPage);
return Response.success(questionReplyCommentPageDTO);
} catch (QuestionReplyCommentServiceException e) {
e.printStackTrace();
return Response.error(e);
......
......@@ -2,7 +2,7 @@ package cn.meteor.beyondclouds.modules.search.api;
import cn.meteor.beyondclouds.common.enums.ErrorCode;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.api.Response;
import cn.meteor.beyondclouds.modules.search.entity.SearchItem;
......@@ -45,8 +45,8 @@ public class SearchApi {
// spring的分页是从0开始的,对输入的页码减1后可以统一分页规则
pageForm.setPage(pageForm.getPage() - 1);
Page<SearchItem> searchItemPage = searchService.searchPage(pageForm.getPage(), pageForm.getSize(), itemType, keywords);
PageVO<SearchItem> searchItemPageVO = new PageVO<>(searchItemPage);
return Response.success(searchItemPageVO);
PageDTO<SearchItem> searchItemPageDTO = new PageDTO<>(searchItemPage);
return Response.success(searchItemPageDTO);
}
......
package cn.meteor.beyondclouds.modules.tag.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -65,29 +65,29 @@ public class TagApi {
}
IPage<Tag> tagPage = tagService.searchTags(keywords, pageForm.getPage(), pageForm.getSize());
PageVO<Tag> tagPageVO = new PageVO<>(tagPage);
return Response.success(tagPageVO);
PageDTO<Tag> tagPageDTO = new PageDTO<>(tagPage);
return Response.success(tagPageDTO);
}
@ApiOperation("我创建的标签列表")
@GetMapping("/my/tag/created")
public Response<PageVO<Tag>> getMyTags(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Tag>> getMyTags(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
// 根据用户获取列表并返回
IPage<Tag> tag = tagService.getTagPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Tag> tagPageVO = new PageVO<>(tag);
return Response.success(tagPageVO);
PageDTO<Tag> tagPageDTO = new PageDTO<>(tag);
return Response.success(tagPageDTO);
}
@Anonymous
@ApiOperation("热门标签")
@GetMapping("/tag/hots")
public Response<PageVO<Tag>> getHotTags(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Tag>> getHotTags(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
IPage<Tag> tag = tagService.getHotPage(pageForm.getPage(), pageForm.getSize());
PageVO<Tag> tagPageVO = new PageVO<>(tag);
return Response.success(tagPageVO);
PageDTO<Tag> tagPageDTO = new PageDTO<>(tag);
return Response.success(tagPageDTO);
}
}
package cn.meteor.beyondclouds.modules.topic.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.api.Response;
......@@ -65,8 +65,8 @@ public class TopicApi {
int pageNo = pageForm.getPage();
int pageSize = pageForm.getSize();
IPage<Topic> topicPage = topicService.getTopicPage(pageNo, pageSize);
PageVO<Topic> topicPageVO = new PageVO<>(topicPage);
return Response.success(topicPageVO);
PageDTO<Topic> topicPageDTO = new PageDTO<>(topicPage);
return Response.success(topicPageDTO);
}
@Anonymous
......@@ -79,7 +79,7 @@ public class TopicApi {
}
IPage<Topic> topicPage = topicService.searchTopics(keywords, pageForm.getPage(), pageForm.getSize());
return Response.success(new PageVO<>(topicPage));
return Response.success(new PageDTO<>(topicPage));
}
@Anonymous
......@@ -126,8 +126,8 @@ public class TopicApi {
return Response.fieldError(bindingResult.getFieldError());
}
IPage<User> page = topicService.getTopicsFollower(pageForm.getPage(), pageForm.getSize(), topicId);
PageVO<User> userPageVO = new PageVO<>(page);
return Response.success(userPageVO);
PageDTO<User> userPageDTO = new PageDTO<>(page);
return Response.success(userPageDTO);
}
......@@ -151,11 +151,11 @@ public class TopicApi {
*/
@ApiOperation("我的话题列表")
@GetMapping("/my/topic/created")
public Response<PageVO<Topic>> getMyTopics(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
public Response<PageDTO<Topic>> getMyTopics(@Valid PageForm pageForm, @CurrentSubject Subject subject) {
// 根据用户获取列表并返回
IPage<Topic> topicPage = topicService.getTopicPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<Topic> topicPageVO = new PageVO<>(topicPage);
return Response.success(topicPageVO);
PageDTO<Topic> topicPageDTO = new PageDTO<>(topicPage);
return Response.success(topicPageDTO);
}
......@@ -175,22 +175,22 @@ public class TopicApi {
@Anonymous
@ApiOperation("热门话题")
@GetMapping("/topic/hots")
public Response<PageVO<Topic>> getHotTags(@Valid PageForm pageForm) {
public Response<PageDTO<Topic>> getHotTags(@Valid PageForm pageForm) {
IPage<Topic> topic = topicService.getHotPage(pageForm.getPage(), pageForm.getSize());
PageVO<Topic> topicPageVO = new PageVO<>(topic);
return Response.success(topicPageVO);
PageDTO<Topic> topicPageDTO = new PageDTO<>(topic);
return Response.success(topicPageDTO);
}
@Anonymous
@ApiOperation("查询话题下的所有动态")
@GetMapping("/topic/{topicName}/posts")
public Response<PageVO<Post>> getPostByTopicName(@Valid PageForm pageForm , @PathVariable("topicName") String topicName) {
public Response<PageDTO<Post>> getPostByTopicName(@Valid PageForm pageForm , @PathVariable("topicName") String topicName) {
try {
IPage<Post> post = topicService.getPostByTopicName(pageForm.getPage(), pageForm.getSize(),topicName);
PageVO<Post> postPageVO = new PageVO<>(post);
return Response.success(postPageVO);
PageDTO<Post> postPageDTO = new PageDTO<>(post);
return Response.success(postPageDTO);
} catch (TopicServiceException e) {
e.printStackTrace();
return Response.error();
......
package cn.meteor.beyondclouds.modules.user.api;
import cn.meteor.beyondclouds.common.form.PageForm;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.core.annotation.Anonymous;
import cn.meteor.beyondclouds.core.annotation.CurrentSubject;
import cn.meteor.beyondclouds.core.flow.CollectAccessInfo;
......@@ -10,6 +10,7 @@ import cn.meteor.beyondclouds.core.authentication.Subject;
import cn.meteor.beyondclouds.core.flow.AccessInfo;
import cn.meteor.beyondclouds.core.flow.ParamType;
import cn.meteor.beyondclouds.modules.user.dto.UserInfoDTO;
import cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserBlacklist;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
......@@ -274,8 +275,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage<UserBlacklist> blacklistIPage = userBlacklistService.getMyBlackList(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<UserBlacklist> blacklistPageVO = new PageVO<>(blacklistIPage);
return Response.success(blacklistPageVO);
PageDTO<UserBlacklist> blacklistPageDTO = new PageDTO<>(blacklistIPage);
return Response.success(blacklistPageDTO);
}
......@@ -299,8 +300,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage<UserFollow> fansPage = userFollowService.getFansPage(pageForm.getPage(), pageForm.getSize(), (String) subject.getId());
PageVO<UserFollow> fansPageVo = new PageVO<>(fansPage);
return Response.success(fansPageVo);
PageDTO<UserFollow> fansPageDTO = new PageDTO<>(fansPage);
return Response.success(fansPageDTO);
}
......@@ -311,8 +312,8 @@ public class UserApi {
// 根据userId获取粉丝并返回
IPage<UserFollow> fansPage = userFollowService.getFansPage(pageForm.getPage(), pageForm.getSize(),userId);
PageVO<UserFollow> fansPageVo = new PageVO<>(fansPage);
return Response.success(fansPageVo);
PageDTO<UserFollow> fansPageDTO = new PageDTO<>(fansPage);
return Response.success(fansPageDTO);
}
......@@ -321,20 +322,18 @@ public class UserApi {
public Response myFollower(@Valid PageForm pageForm, @CurrentSubject Subject subject){
// 根据userId获取关注列表并返回
IPage<UserFollow> followersPage = userFollowService.getFollowersPage(pageForm.getPage(), pageForm.getSize(), String.valueOf(subject.getId()));
PageVO<UserFollow> followersPageVo = new PageVO<>(followersPage);
return Response.success(followersPageVo);
PageDTO<UserInfoWithStatisticsDTO> followedPage = userFollowService.getFollowedPage(pageForm.getPage(), pageForm.getSize(), String.valueOf(subject.getId()));
return Response.success(followedPage);
}
@Anonymous
@ApiOperation(("获取他人关注"))
@GetMapping("/user/{userId}/follower")
public Response otherFollower(@Valid PageForm pageForm, @PathVariable(name = "userId") String userId){
public Response<PageDTO<UserInfoWithStatisticsDTO>> otherFollower(@Valid PageForm pageForm, @PathVariable(name = "userId") String userId){
// 根据userId获取关注列表并返回
IPage<UserFollow> followersPage = userFollowService.getFollowersPage(pageForm.getPage(), pageForm.getSize(), userId);
PageVO<UserFollow> followersPageVo = new PageVO<>(followersPage);
return Response.success(followersPageVo);
PageDTO followedPage = userFollowService.getFollowedPage(pageForm.getPage(), pageForm.getSize(), userId);
return Response.success(followedPage);
}
......
package cn.meteor.beyondclouds.modules.user.dto;
import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author meteor
*/
@Data
public class UserInfoWithStatisticsDTO {
private String userId;
private String userNick;
private String userAvatar;
private UserStatistics statistics;
}
package cn.meteor.beyondclouds.modules.user.service;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.io.Serializable;
import java.util.Set;
......@@ -49,7 +50,7 @@ public interface IUserFollowService extends IService<UserFollow> {
* @param userId
* @return
*/
IPage<UserFollow> getFollowersPage(Integer pageNumber, Integer pageSize, String userId);
PageDTO<UserInfoWithStatisticsDTO> getFollowedPage(Integer pageNumber, Integer pageSize, String userId);
/**
* 获取当前用户关注的所有用户的ID
......
package cn.meteor.beyondclouds.modules.user.service.impl;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import cn.meteor.beyondclouds.common.helper.IRedisHelper;
import cn.meteor.beyondclouds.core.queue.message.DataItemChangeMessage;
import cn.meteor.beyondclouds.core.queue.message.DataItemType;
import cn.meteor.beyondclouds.core.redis.RedisKey;
import cn.meteor.beyondclouds.modules.queue.service.IMessageQueueService;
import cn.meteor.beyondclouds.modules.user.dto.UserInfoWithStatisticsDTO;
import cn.meteor.beyondclouds.modules.user.entity.User;
import cn.meteor.beyondclouds.modules.user.entity.UserBlacklist;
import cn.meteor.beyondclouds.modules.user.entity.UserFollow;
import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
import cn.meteor.beyondclouds.modules.user.enums.UserErrorCode;
import cn.meteor.beyondclouds.modules.user.exception.UserServiceException;
import cn.meteor.beyondclouds.modules.user.mapper.UserFollowMapper;
import cn.meteor.beyondclouds.modules.user.service.IUserBlacklistService;
import cn.meteor.beyondclouds.modules.user.service.IUserFollowService;
import cn.meteor.beyondclouds.modules.user.service.IUserService;
import cn.meteor.beyondclouds.modules.user.service.IUserStatisticsService;
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;
......@@ -22,7 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
/**
......@@ -36,6 +42,7 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
private IUserBlacklistService userBlacklistService;
private IRedisHelper redisHelper;
private IMessageQueueService messageQueueService;
private IUserStatisticsService userStatisticsService;
@Autowired
public void setRedisHelper(IRedisHelper redisHelper) {
......@@ -43,6 +50,11 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
}
@Autowired
public void setUserStatisticsService(IUserStatisticsService userStatisticsService) {
this.userStatisticsService = userStatisticsService;
}
@Autowired
public UserFollowServiceImpl(IUserBlacklistService userBlacklistService) {
this.userBlacklistService = userBlacklistService;
}
......@@ -182,12 +194,49 @@ public class UserFollowServiceImpl extends ServiceImpl<UserFollowMapper, UserFol
* @return
*/
@Override
public IPage<UserFollow> getFollowersPage(Integer pageNumber, Integer pageSize, String userId) {
public PageDTO<UserInfoWithStatisticsDTO> getFollowedPage(Integer pageNumber, Integer pageSize, String userId) {
// 1.获取所有的关注
IPage<UserFollow> page = new Page<>(pageNumber, pageSize);
QueryWrapper<UserFollow> userFollowQueryWrapper = new QueryWrapper<>();
userFollowQueryWrapper.eq("follower_id", userId);
userFollowQueryWrapper.eq("follow_status", 0);
return page(page, userFollowQueryWrapper);
IPage<UserFollow> userFollowPage = page(page, userFollowQueryWrapper);
List<UserFollow> userFollowList = userFollowPage.getRecords();
// 2.查询关注的用户的统计信息并填充到userInfoWithStatisticsDTOList里面
List<UserInfoWithStatisticsDTO> userInfoWithStatisticsDTOList;
if (!CollectionUtils.isEmpty(userFollowList)) {
List<String> followedUserIds = userFollowList.stream()
.map(UserFollow::getFollowedId).collect(Collectors.toList());
List<UserStatistics> userStatisticsList = userStatisticsService.listByIds(followedUserIds);
Map<String, UserStatistics> userStatisticsMap = userStatisticsList.stream()
.collect(Collectors.toMap(
UserStatistics::getUserId,
userStatistics -> userStatistics
));
userInfoWithStatisticsDTOList = userFollowList.stream()
.map(userFollow -> {
UserInfoWithStatisticsDTO userInfoWithStatisticsDTO = new UserInfoWithStatisticsDTO();
String followedId = userFollow.getFollowedId();
userInfoWithStatisticsDTO.setUserId(followedId);
userInfoWithStatisticsDTO.setUserNick(userFollow.getFollowedNick());
userInfoWithStatisticsDTO.setUserAvatar(userFollow.getFollowedAvatar());
userInfoWithStatisticsDTO.setStatistics(userStatisticsMap.get(followedId));
return userInfoWithStatisticsDTO;
}).collect(Collectors.toList());
} else {
userInfoWithStatisticsDTOList = List.of();
}
// 3.转换分页并返回
PageDTO<UserInfoWithStatisticsDTO> pageDTO = new PageDTO<>();
PageUtils.copyMeta(userFollowPage, pageDTO);
pageDTO.setDataList(userInfoWithStatisticsDTOList);
return pageDTO;
}
@Override
......
package cn.meteor.beyondclouds.modules.user.vo;
import cn.meteor.beyondclouds.modules.user.entity.UserStatistics;
import lombok.Data;
/**
* @author meteor
*/
@Data
public class UserStatisticsVO {
private String userId;
private String userNick;
private String userAvatar;
private UserStatistics statistics;
}
package cn.meteor.beyondclouds.util;
import cn.meteor.beyondclouds.common.vo.PageVO;
import cn.meteor.beyondclouds.common.dto.PageDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -19,7 +19,7 @@ public class PageUtils {
return page;
}
public static void copyMeta(IPage<?> src, PageVO<?> dest) {
public static void copyMeta(IPage<?> src, PageDTO<?> dest) {
dest.setTotalPage(src.getPages());
dest.setPageSize(src.getSize());
dest.setTotalRecords(src.getTotal());
......
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