mirror of
https://github.com/201206030/novel.git
synced 2025-04-26 23:20:51 +00:00
feat: 查询会员评论列表接口
This commit is contained in:
parent
90f5780796
commit
1f2d8dc49a
@ -1,6 +1,8 @@
|
||||
package io.github.xxyopen.novel.controller.front;
|
||||
|
||||
import io.github.xxyopen.novel.core.auth.UserHolder;
|
||||
import io.github.xxyopen.novel.core.common.req.PageReqDto;
|
||||
import io.github.xxyopen.novel.core.common.resp.PageRespDto;
|
||||
import io.github.xxyopen.novel.core.common.resp.RestResp;
|
||||
import io.github.xxyopen.novel.core.constant.ApiRouterConsts;
|
||||
import io.github.xxyopen.novel.core.constant.SystemConfigConsts;
|
||||
@ -8,6 +10,7 @@ import io.github.xxyopen.novel.dto.req.UserCommentReqDto;
|
||||
import io.github.xxyopen.novel.dto.req.UserInfoUptReqDto;
|
||||
import io.github.xxyopen.novel.dto.req.UserLoginReqDto;
|
||||
import io.github.xxyopen.novel.dto.req.UserRegisterReqDto;
|
||||
import io.github.xxyopen.novel.dto.resp.UserCommentRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.UserInfoRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.UserLoginRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.UserRegisterRespDto;
|
||||
@ -19,14 +22,7 @@ import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.PutMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 前台门户-会员模块 API 控制器
|
||||
@ -138,4 +134,13 @@ public class UserController {
|
||||
return userService.getBookshelfStatus(UserHolder.getUserId(), bookId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页查询评论
|
||||
*/
|
||||
@Operation(summary = "查询会员评论列表接口")
|
||||
@GetMapping("comments")
|
||||
public RestResp<PageRespDto<UserCommentRespDto>> listComments(PageReqDto pageReqDto) {
|
||||
return bookService.listComments(UserHolder.getUserId(), pageReqDto);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,33 @@
|
||||
package io.github.xxyopen.novel.dto.resp;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户评论响应 Dto
|
||||
*
|
||||
* @author xiongxiaoyang
|
||||
* @date 2023/4/25
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
public class UserCommentRespDto {
|
||||
|
||||
@Schema(description = "评论内容")
|
||||
private String commentContent;
|
||||
|
||||
@Schema(description = "评论小说封面")
|
||||
private String commentBookPic;
|
||||
|
||||
@Schema(description = "评论小说")
|
||||
private String commentBook;
|
||||
|
||||
@Schema(description = "评论时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime commentTime;
|
||||
|
||||
}
|
@ -179,4 +179,14 @@ public interface BookService {
|
||||
* @return 章节分页列表数据
|
||||
*/
|
||||
RestResp<PageRespDto<BookChapterRespDto>> listBookChapters(Long bookId, PageReqDto dto);
|
||||
|
||||
/**
|
||||
* 分页查询评论
|
||||
*
|
||||
* @param userId 会员ID
|
||||
* @param pageReqDto 分页参数
|
||||
* @return 评论分页列表数据
|
||||
*/
|
||||
RestResp<PageRespDto<UserCommentRespDto>> listComments(Long userId, PageReqDto pageReqDto);
|
||||
|
||||
}
|
||||
|
@ -11,11 +11,7 @@ import io.github.xxyopen.novel.core.common.req.PageReqDto;
|
||||
import io.github.xxyopen.novel.core.common.resp.PageRespDto;
|
||||
import io.github.xxyopen.novel.core.common.resp.RestResp;
|
||||
import io.github.xxyopen.novel.core.constant.DatabaseConsts;
|
||||
import io.github.xxyopen.novel.dao.entity.BookChapter;
|
||||
import io.github.xxyopen.novel.dao.entity.BookComment;
|
||||
import io.github.xxyopen.novel.dao.entity.BookContent;
|
||||
import io.github.xxyopen.novel.dao.entity.BookInfo;
|
||||
import io.github.xxyopen.novel.dao.entity.UserInfo;
|
||||
import io.github.xxyopen.novel.dao.entity.*;
|
||||
import io.github.xxyopen.novel.dao.mapper.BookChapterMapper;
|
||||
import io.github.xxyopen.novel.dao.mapper.BookCommentMapper;
|
||||
import io.github.xxyopen.novel.dao.mapper.BookContentMapper;
|
||||
@ -24,38 +20,23 @@ import io.github.xxyopen.novel.dto.AuthorInfoDto;
|
||||
import io.github.xxyopen.novel.dto.req.BookAddReqDto;
|
||||
import io.github.xxyopen.novel.dto.req.ChapterAddReqDto;
|
||||
import io.github.xxyopen.novel.dto.req.UserCommentReqDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookCategoryRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookChapterAboutRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookChapterRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookCommentRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookContentAboutRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookInfoRespDto;
|
||||
import io.github.xxyopen.novel.dto.resp.BookRankRespDto;
|
||||
import io.github.xxyopen.novel.manager.cache.AuthorInfoCacheManager;
|
||||
import io.github.xxyopen.novel.manager.cache.BookCategoryCacheManager;
|
||||
import io.github.xxyopen.novel.manager.cache.BookChapterCacheManager;
|
||||
import io.github.xxyopen.novel.manager.cache.BookContentCacheManager;
|
||||
import io.github.xxyopen.novel.manager.cache.BookInfoCacheManager;
|
||||
import io.github.xxyopen.novel.manager.cache.BookRankCacheManager;
|
||||
import io.github.xxyopen.novel.dto.resp.*;
|
||||
import io.github.xxyopen.novel.manager.cache.*;
|
||||
import io.github.xxyopen.novel.manager.dao.UserDaoManager;
|
||||
import io.github.xxyopen.novel.manager.mq.AmqpMsgManager;
|
||||
import io.github.xxyopen.novel.service.BookService;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Random;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.SecureRandom;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 小说模块 服务实现类
|
||||
@ -427,6 +408,35 @@ public class BookServiceImpl implements BookService {
|
||||
.build()).toList()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestResp<PageRespDto<UserCommentRespDto>> listComments(Long userId, PageReqDto pageReqDto) {
|
||||
IPage<BookComment> page = new Page<>();
|
||||
page.setCurrent(pageReqDto.getPageNum());
|
||||
page.setSize(pageReqDto.getPageSize());
|
||||
QueryWrapper<BookComment> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq(DatabaseConsts.BookCommentTable.COLUMN_USER_ID, userId)
|
||||
.orderByDesc(DatabaseConsts.CommonColumnEnum.UPDATE_TIME.getName());
|
||||
IPage<BookComment> bookCommentPage = bookCommentMapper.selectPage(page, queryWrapper);
|
||||
List<BookComment> comments = bookCommentPage.getRecords();
|
||||
if (!CollectionUtils.isEmpty(comments)) {
|
||||
List<Long> bookIds = comments.stream().map(BookComment::getBookId).toList();
|
||||
QueryWrapper<BookInfo> bookInfoQueryWrapper = new QueryWrapper<>();
|
||||
bookInfoQueryWrapper.in(DatabaseConsts.CommonColumnEnum.ID.getName(), bookIds);
|
||||
Map<Long, BookInfo> bookInfoMap = bookInfoMapper.selectList(bookInfoQueryWrapper).stream()
|
||||
.collect(Collectors.toMap(BookInfo::getId, Function.identity()));
|
||||
return RestResp.ok(PageRespDto.of(pageReqDto.getPageNum(), pageReqDto.getPageSize(), page.getTotal(),
|
||||
comments.stream().map(v -> UserCommentRespDto.builder()
|
||||
.commentContent(v.getCommentContent())
|
||||
.commentBook(bookInfoMap.get(v.getBookId()).getBookName())
|
||||
.commentBookPic(bookInfoMap.get(v.getBookId()).getPicUrl())
|
||||
.commentTime(v.getCreateTime())
|
||||
.build()).toList()));
|
||||
|
||||
}
|
||||
return RestResp.ok(PageRespDto.of(pageReqDto.getPageNum(), pageReqDto.getPageSize(), page.getTotal(),
|
||||
Collections.emptyList()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RestResp<BookContentAboutRespDto> getBookContentAbout(Long chapterId) {
|
||||
log.debug("userId:{}", UserHolder.getUserId());
|
||||
|
Loading…
x
Reference in New Issue
Block a user