|
@@ -73,20 +73,32 @@ public class OpenTopicController {
|
|
|
|
|
|
@LoginValid
|
|
|
@PostMapping("/detail/{topicId}")
|
|
|
- public void detail(@RequestBody TopicRepliesDto topicRepliesDto, @PathVariable Long topicId) {
|
|
|
+ public OpenTopicContentVO detail(@RequestBody TopicRepliesSelectDto topicRepliesSelectDto, @PathVariable Long topicId) {
|
|
|
TopicContent topicContent = topicContentService.getById(topicId);
|
|
|
if (ObjectUtil.isNull(topicContent)) {
|
|
|
throw new RuntimeException("主题不存在");
|
|
|
}
|
|
|
OpenTopicContentVO openTopicContentVO = BeanUtil.copyProperties(topicContent, OpenTopicContentVO.class);
|
|
|
+ openTopicContentVO.setAuthorName(getAuthorName(topicContent.getAuthor()));
|
|
|
//分页查出楼层回复
|
|
|
TopicRepliesSelectDto dto = new TopicRepliesSelectDto();
|
|
|
Page<TopicRepliesVo> page = topicRepliesService.getPageByOpen(dto);
|
|
|
+ List<TopicRepliesVo> records = page.getRecords();
|
|
|
+ records.forEach(topicRepliesVo -> {
|
|
|
+ topicRepliesVo.setAuthorName(getAuthorName(topicRepliesVo.getAuthor()));
|
|
|
+ dto.setFloorId(topicRepliesVo.getId());
|
|
|
+ Page<TopicRepliesVo> floorPage = topicRepliesService.getPageByOpen(dto);
|
|
|
+ topicRepliesVo.setFloorPage(floorPage);
|
|
|
+ });
|
|
|
|
|
|
- validateReply(topicRepliesDto, topicId);
|
|
|
- WebsiteUsers loginWebsiteUser = WebsiteUserUtil.getLoginWebsiteUser();
|
|
|
- topicRepliesDto.setAuthor(loginWebsiteUser.getId());
|
|
|
- topicRepliesService.add(topicRepliesDto);
|
|
|
+ openTopicContentVO.setRepliesPage(page);
|
|
|
+
|
|
|
+ return openTopicContentVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ private String getAuthorName(Long author) {
|
|
|
+ WebsiteUsers websiteUsers = websiteUsersService.getById(author);
|
|
|
+ return ObjectUtil.isNull(websiteUsers) ? "匿名" : websiteUsers.getUserName();
|
|
|
}
|
|
|
|
|
|
@LoginValid
|