fix: 章节发布校验

This commit is contained in:
xiongxiaoyang 2022-05-29 19:48:47 +08:00
parent ad907063d9
commit 785646b4c4
3 changed files with 10 additions and 6 deletions

View File

@ -42,9 +42,9 @@ public class AuthorController {
/** /**
* 查询作家状态接口 * 查询作家状态接口
* */ */
@GetMapping("status") @GetMapping("status")
public RestResp<Integer> getStatus(){ public RestResp<Integer> getStatus() {
return authorService.getStatus(UserHolder.getUserId()); return authorService.getStatus(UserHolder.getUserId());
} }
@ -67,8 +67,9 @@ public class AuthorController {
/** /**
* 小说章节发布接口 * 小说章节发布接口
*/ */
@PostMapping("book/chapter") @PostMapping("book/chapter/{bookId}")
public RestResp<Void> publishBookChapter(@Valid @RequestBody ChapterAddReqDto dto) { public RestResp<Void> publishBookChapter(@PathVariable("bookId") Long bookId, @Valid @RequestBody ChapterAddReqDto dto) {
dto.setBookId(bookId);
return bookService.saveBookChapter(dto); return bookService.saveBookChapter(dto);
} }

View File

@ -17,7 +17,6 @@ public class ChapterAddReqDto {
/** /**
* 小说ID * 小说ID
*/ */
@NotNull
private Long bookId; private Long bookId;
/** /**

View File

@ -300,6 +300,11 @@ public class BookServiceImpl implements BookService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public RestResp<Void> saveBookChapter(ChapterAddReqDto dto) { public RestResp<Void> saveBookChapter(ChapterAddReqDto dto) {
// 校验该作品是否属于当前作家
BookInfoRespDto bookInfo = bookInfoCacheManager.getBookInfo(dto.getBookId());
if (!Objects.equals(bookInfo.getAuthorId(), UserHolder.getAuthorId())) {
return RestResp.fail(ErrorCodeEnum.USER_UN_AUTH);
}
// 1) 保存章节相关信息到小说章节表 // 1) 保存章节相关信息到小说章节表
// a) 查询最新章节号 // a) 查询最新章节号
int chapterNum = 0; int chapterNum = 0;
@ -332,7 +337,6 @@ public class BookServiceImpl implements BookService {
// 3) 更新小说表最新章节信息和小说总字数信息 // 3) 更新小说表最新章节信息和小说总字数信息
// a) 更新小说表关于最新章节的信息 // a) 更新小说表关于最新章节的信息
BookInfoRespDto bookInfo = bookInfoCacheManager.getBookInfo(dto.getBookId());
BookInfo newBookInfo = new BookInfo(); BookInfo newBookInfo = new BookInfo();
newBookInfo.setId(dto.getBookId()); newBookInfo.setId(dto.getBookId());
newBookInfo.setLastChapterId(newBookChapter.getId()); newBookInfo.setLastChapterId(newBookChapter.getId());