From 1cd6e0d7c90412ae0c7333085ebac43691e911bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E6=B5=B7?= Date: Mon, 6 Apr 2020 15:26:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=83=A8=E5=88=86api?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=93=8D=E5=BA=94=E6=95=B0=E6=8D=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../blog/controller/CommentController.java | 8 +-- .../blog/entity/model/CommentModel.java | 4 +- .../celess/blog/service/CommentService.java | 6 +-- .../serviceimpl/CommentServiceImpl.java | 50 ++++++++----------- .../controller/CommentControllerTest.java | 16 +++--- 5 files changed, 36 insertions(+), 48 deletions(-) diff --git a/src/main/java/cn/celess/blog/controller/CommentController.java b/src/main/java/cn/celess/blog/controller/CommentController.java index 5db0bbd..dff5808 100644 --- a/src/main/java/cn/celess/blog/controller/CommentController.java +++ b/src/main/java/cn/celess/blog/controller/CommentController.java @@ -58,15 +58,11 @@ public class CommentController { * 通过pid获取数据 * * @param pid - * @param count - * @param page * @return */ @GetMapping("/comment/pid/{pid}") - public Response retrievePage(@PathVariable("pid") long pid, - @RequestParam(value = "count", required = false, defaultValue = "10") int count, - @RequestParam(value = "page", required = false, defaultValue = "1") int page) { - return ResponseUtil.success(commentService.retrievePageByPid(pid, page, count)); + public Response retrievePage(@PathVariable("pid") long pid) { + return ResponseUtil.success(commentService.retrievePageByPid(pid)); } /** diff --git a/src/main/java/cn/celess/blog/entity/model/CommentModel.java b/src/main/java/cn/celess/blog/entity/model/CommentModel.java index 93201db..1fa68d6 100644 --- a/src/main/java/cn/celess/blog/entity/model/CommentModel.java +++ b/src/main/java/cn/celess/blog/entity/model/CommentModel.java @@ -3,7 +3,7 @@ package cn.celess.blog.entity.model; import lombok.Getter; import lombok.Setter; -import java.util.Date; +import java.util.List; /** * @author : xiaohai @@ -53,5 +53,7 @@ public class CommentModel { */ private long pid = -1; + private List respComment; + } diff --git a/src/main/java/cn/celess/blog/service/CommentService.java b/src/main/java/cn/celess/blog/service/CommentService.java index b52a514..d8a6841 100644 --- a/src/main/java/cn/celess/blog/service/CommentService.java +++ b/src/main/java/cn/celess/blog/service/CommentService.java @@ -5,6 +5,8 @@ import cn.celess.blog.entity.request.CommentReq; import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; +import java.util.List; + /** * @author : xiaohai * @date : 2019/03/29 16:58 @@ -49,11 +51,9 @@ public interface CommentService { * 通过pid获取数据 * * @param pid 父id - * @param count 单页数据量 - * @param page 数据页 * @return 分页数据 */ - PageInfo retrievePageByPid(long pid, int page, int count); + List retrievePageByPid(long pid); /** diff --git a/src/main/java/cn/celess/blog/service/serviceimpl/CommentServiceImpl.java b/src/main/java/cn/celess/blog/service/serviceimpl/CommentServiceImpl.java index 8c00f7b..af9cedb 100644 --- a/src/main/java/cn/celess/blog/service/serviceimpl/CommentServiceImpl.java +++ b/src/main/java/cn/celess/blog/service/serviceimpl/CommentServiceImpl.java @@ -11,6 +11,7 @@ import cn.celess.blog.service.CommentService; import cn.celess.blog.service.UserService; import cn.celess.blog.util.DateFormatUtil; import cn.celess.blog.util.RedisUserUtil; +import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; @@ -112,45 +113,36 @@ public class CommentServiceImpl implements CommentService { public PageInfo retrievePage(Boolean isComment, int page, int count) { PageHelper.startPage(page, count); List commentList = commentMapper.findAllByType(isComment); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; + return pageTrans(commentList); } @Override - public PageInfo retrievePageByPid(long pid, int page, int count) { - PageHelper.startPage(page, count); + public List retrievePageByPid(long pid) { List commentList = commentMapper.findAllByPId(pid); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; + List modelList = new ArrayList<>(); + commentList.forEach(m -> modelList.add(trans(m))); + return modelList; } @Override public PageInfo retrievePageByArticle(long articleID, long pid, int page, int count) { PageHelper.startPage(page, count); List commentList = commentMapper.findAllByArticleIDAndPId(articleID, pid); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; + return pageTrans(commentList); } @Override public PageInfo retrievePageByTypeAndPid(Boolean isComment, int pid, int page, int count) { PageHelper.startPage(page, count); List commentList = commentMapper.findCommentsByTypeAndPId(isComment, pid); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; + return pageTrans(commentList); } @Override public PageInfo retrievePageByAuthor(Boolean isComment, int page, int count) { PageHelper.startPage(page, count); List commentList = commentMapper.findAllByAuthorIDAndType(redisUserUtil.get().getId(), isComment); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; + return pageTrans(commentList); } @@ -158,17 +150,7 @@ public class CommentServiceImpl implements CommentService { public PageInfo retrievePageByType(Boolean isComment, int page, int count) { PageHelper.startPage(page, count); List commentList = commentMapper.findAllByType(isComment); - PageInfo pageInfo = new PageInfo(commentList); - pageInfo.setList(list2List(commentList)); - return pageInfo; - } - - private List list2List(List commentList) { - List content = new ArrayList<>(); - for (Comment c : commentList) { - content.add(trans(c)); - } - return content; + return pageTrans(commentList); } private CommentModel trans(Comment comment) { @@ -189,4 +171,16 @@ public class CommentServiceImpl implements CommentService { return commentModel; } + private PageInfo pageTrans(List commentList) { + PageInfo p = new PageInfo(commentList); + List modelList = new ArrayList<>(); + + commentList.forEach(l -> { + CommentModel model = trans(l); + model.setRespComment(this.retrievePageByPid(model.getId())); + modelList.add(model); + }); + p.setList(modelList); + return p; + } } diff --git a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java index 7a1dd87..24b07d1 100644 --- a/src/test/java/cn/celess/blog/controller/CommentControllerTest.java +++ b/src/test/java/cn/celess/blog/controller/CommentControllerTest.java @@ -9,6 +9,7 @@ import cn.celess.blog.mapper.ArticleMapper; import cn.celess.blog.mapper.CommentMapper; import cn.celess.blog.mapper.UserMapper; import com.github.pagehelper.PageInfo; +import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -198,22 +199,17 @@ public class CommentControllerTest extends BaseTest { @Test public void retrievePage() throws Exception { - long pid = 17; - mockMvc.perform(get("/comment/pid/" + pid + "?articleId=3&page=1&count=10")).andDo(result -> { + long pid = -1; + mockMvc.perform(get("/comment/pid/" + pid)).andDo(result -> { JSONObject object = JSONObject.fromObject(result.getResponse().getContentAsString()); assertEquals(SUCCESS.getCode(), object.getInt(Code)); - PageInfo pageInfo = (PageInfo) JSONObject.toBean(object.getJSONObject(Result), PageInfo.class); - assertNotEquals(0, pageInfo.getStartRow()); - assertNotEquals(0, pageInfo.getEndRow()); - assertEquals(1, pageInfo.getPageNum()); - assertEquals(10, pageInfo.getPageSize()); - pageInfo.getList().forEach(o -> { + JSONArray jsonArray = object.getJSONArray(Result); + assertNotEquals(0, jsonArray.size()); + jsonArray.forEach(o -> { CommentModel model = (CommentModel) JSONObject.toBean(JSONObject.fromObject(o), CommentModel.class); - assertEquals(3, model.getArticleID()); assertNotNull(model.getDate()); assertNotNull(model.getAuthorName()); assertNotNull(model.getAuthorAvatarImgUrl()); - assertNotNull(model.getArticleTitle()); assertNotNull(model.getContent()); assertNotNull(model.getResponseId()); });