From b67cbb4f9e20e245524cb1ec0eb40b057bfdc245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A1=97=E5=A4=B4=E5=B0=8F=E8=B4=A9?= Date: Mon, 7 Dec 2020 16:59:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=9B=9E=E5=A4=8D=E5=90=8E?= =?UTF-8?q?=E8=B7=B3=E8=BD=AC=E7=9A=84=E8=BF=9E=E6=8E=A5=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thrones/controller/PostsController.java | 36 +++++++++++-------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/thrones/src/main/java/com/apobates/forum/thrones/controller/PostsController.java b/thrones/src/main/java/com/apobates/forum/thrones/controller/PostsController.java index 5937cfb8..b428c5df 100644 --- a/thrones/src/main/java/com/apobates/forum/thrones/controller/PostsController.java +++ b/thrones/src/main/java/com/apobates/forum/thrones/controller/PostsController.java @@ -4,7 +4,6 @@ import com.apobates.forum.core.ImageIOMeta; import com.apobates.forum.core.entity.BoardTopicCategoryIndex; import com.apobates.forum.core.entity.Posts; import com.apobates.forum.core.entity.Topic; -import com.apobates.forum.core.entity.TopicStats; import com.apobates.forum.core.entity.proxy.PostsReplica; import com.apobates.forum.core.entity.proxy.TopicReplica; import com.apobates.forum.core.security.exposure.impl.TopicDetectionStrategy; @@ -15,7 +14,6 @@ import com.apobates.forum.core.service.BoardService; import com.apobates.forum.core.service.BoardTopicCategoryIndexService; import com.apobates.forum.core.service.PostsService; import com.apobates.forum.core.service.TopicService; -import com.apobates.forum.core.service.TopicStatsService; import com.apobates.forum.event.elderly.ActionEventCulpritor; import com.apobates.forum.event.elderly.ForumActionEnum; import com.apobates.forum.member.MemberBaseProfile; @@ -61,8 +59,6 @@ public class PostsController { @Autowired private TopicService topicService; @Autowired - private TopicStatsService topicStatsService; - @Autowired private PostsService postsService; @Autowired private BoardTopicCategoryIndexService boardTopicCategoryIndexService; @@ -146,19 +142,13 @@ public class PostsController { long topicId = form.getLongTopic(); // if (boardId > 0 && volumesId >= 0 && topicId > 0) { - boolean data = postsService.create( - volumesId, - boardId, - topicId, - postsContent, - imageIOMeta, - aec)>0; - if (data) { + long postsId = postsService.create(volumesId, boardId, topicId, postsContent, imageIOMeta, aec); + if (postsId>0) { //---------------------------------- // 回复通知(tc.notify) //---------------------------------- - TopicStats topicStats = topicStatsService.getByTopic(topicId).orElse(new TopicStats(topicId, volumesId, boardId)); - return String.format("redirect:/topic/%s.xhtml?p=%d", TopicReplica.generateConnectString(topicId, boardId, volumesId), topicStats.getTopicPageSize(pageSize)); + long lastPostsPageNumber = calcPostsPageNumber(postsService.get(postsId), pageSize); + return String.format("redirect:/topic/%s.xhtml?p=%d", TopicReplica.generateConnectString(topicId, boardId, volumesId), lastPostsPageNumber); } } model.addAttribute("form", form); @@ -169,7 +159,23 @@ public class PostsController { model.addAttribute("topic", topic); return "default/posts/create"; } - + //计算指定回复所在页码值 + private long calcPostsPageNumber(Optional posts, int pageSize){ + if(!posts.isPresent()){ + return 1L; + } + long currentFloor = posts.get().getFloorNumber(); + if (currentFloor <= pageSize) { + return 1; + } + // 整除 + long t = currentFloor / pageSize; + // 不整除 + if (currentFloor % pageSize != 0) { + t += 1; + } + return t; + } // 编辑回复,只允许针对Posts.reply(回复的内容/非话题的内容/)的记录 @GetMapping(path = "/edit") @OnlineDescriptor(action=ForumActionEnum.POSTS_EDIT) -- GitLab