diff --git a/src/main/java/io/github/xxyopen/novel/controller/author/AuthorController.java b/src/main/java/io/github/xxyopen/novel/controller/author/AuthorController.java index c215395..38dea2c 100644 --- a/src/main/java/io/github/xxyopen/novel/controller/author/AuthorController.java +++ b/src/main/java/io/github/xxyopen/novel/controller/author/AuthorController.java @@ -8,6 +8,7 @@ import io.github.xxyopen.novel.core.constant.ApiRouterConsts; import io.github.xxyopen.novel.dto.req.AuthorRegisterReqDto; import io.github.xxyopen.novel.dto.req.BookAddReqDto; import io.github.xxyopen.novel.dto.req.ChapterAddReqDto; +import io.github.xxyopen.novel.dto.resp.BookChapterRespDto; import io.github.xxyopen.novel.dto.resp.BookInfoRespDto; import io.github.xxyopen.novel.service.AuthorService; import io.github.xxyopen.novel.service.BookService; @@ -63,4 +64,12 @@ public class AuthorController { return bookService.saveBookChapter(dto); } + /** + * 小说发布章节列表查询接口 + */ + @GetMapping("book/chapters/{bookId}") + public RestResp> listBookChapters(@PathVariable("bookId") Long bookId, PageReqDto dto) { + return bookService.listBookChapters(bookId, dto); + } + } diff --git a/src/main/java/io/github/xxyopen/novel/service/BookService.java b/src/main/java/io/github/xxyopen/novel/service/BookService.java index 916391a..4779dc1 100644 --- a/src/main/java/io/github/xxyopen/novel/service/BookService.java +++ b/src/main/java/io/github/xxyopen/novel/service/BookService.java @@ -170,4 +170,13 @@ public interface BookService { * @return 小说分页列表数据 */ RestResp> listAuthorBooks(PageReqDto dto); + + /** + * 查询小说发布章节列表 + * + * @param bookId 小说ID + * @param dto 分页请求参数 + * @return 章节分页列表数据 + */ + RestResp> listBookChapters(Long bookId, PageReqDto dto); } diff --git a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java index 82fe2e5..87f9a13 100644 --- a/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java +++ b/src/main/java/io/github/xxyopen/novel/service/impl/BookServiceImpl.java @@ -370,6 +370,23 @@ public class BookServiceImpl implements BookService { .build()).toList())); } + @Override + public RestResp> listBookChapters(Long bookId, PageReqDto dto) { + IPage page = new Page<>(); + page.setCurrent(dto.getPageNum()); + page.setSize(dto.getPageSize()); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(DatabaseConsts.BookChapterTable.COLUMN_BOOK_ID, bookId) + .orderByDesc(DatabaseConsts.BookChapterTable.COLUMN_CHAPTER_NUM); + IPage bookChapterPage = bookChapterMapper.selectPage(page, queryWrapper); + return RestResp.ok(PageRespDto.of(dto.getPageNum(), dto.getPageSize(), page.getTotal(), + bookChapterPage.getRecords().stream().map(v -> BookChapterRespDto.builder() + .id(v.getId()) + .chapterName(v.getChapterName()) + .chapterUpdateTime(v.getUpdateTime()) + .build()).toList())); + } + @Override public RestResp getBookContentAbout(Long chapterId) { log.debug("userId:{}", UserHolder.getUserId());