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 dbe95b2..935da7c 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 @@ -42,9 +42,9 @@ public class AuthorController { /** * 查询作家状态接口 - * */ + */ @GetMapping("status") - public RestResp getStatus(){ + public RestResp getStatus() { return authorService.getStatus(UserHolder.getUserId()); } @@ -67,8 +67,9 @@ public class AuthorController { /** * 小说章节发布接口 */ - @PostMapping("book/chapter") - public RestResp publishBookChapter(@Valid @RequestBody ChapterAddReqDto dto) { + @PostMapping("book/chapter/{bookId}") + public RestResp publishBookChapter(@PathVariable("bookId") Long bookId, @Valid @RequestBody ChapterAddReqDto dto) { + dto.setBookId(bookId); return bookService.saveBookChapter(dto); } diff --git a/src/main/java/io/github/xxyopen/novel/dto/req/ChapterAddReqDto.java b/src/main/java/io/github/xxyopen/novel/dto/req/ChapterAddReqDto.java index b7ec4ec..6505ace 100644 --- a/src/main/java/io/github/xxyopen/novel/dto/req/ChapterAddReqDto.java +++ b/src/main/java/io/github/xxyopen/novel/dto/req/ChapterAddReqDto.java @@ -17,7 +17,6 @@ public class ChapterAddReqDto { /** * 小说ID */ - @NotNull private Long bookId; /** 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 4a31b2e..8a7fa20 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 @@ -300,6 +300,11 @@ public class BookServiceImpl implements BookService { @Transactional(rollbackFor = Exception.class) @Override public RestResp saveBookChapter(ChapterAddReqDto dto) { + // 校验该作品是否属于当前作家 + BookInfoRespDto bookInfo = bookInfoCacheManager.getBookInfo(dto.getBookId()); + if (!Objects.equals(bookInfo.getAuthorId(), UserHolder.getAuthorId())) { + return RestResp.fail(ErrorCodeEnum.USER_UN_AUTH); + } // 1) 保存章节相关信息到小说章节表 // a) 查询最新章节号 int chapterNum = 0; @@ -332,7 +337,6 @@ public class BookServiceImpl implements BookService { // 3) 更新小说表最新章节信息和小说总字数信息 // a) 更新小说表关于最新章节的信息 - BookInfoRespDto bookInfo = bookInfoCacheManager.getBookInfo(dto.getBookId()); BookInfo newBookInfo = new BookInfo(); newBookInfo.setId(dto.getBookId()); newBookInfo.setLastChapterId(newBookChapter.getId());