fix: 评论发表校验

This commit is contained in:
xiongxiaoyang 2022-05-20 09:53:56 +08:00
parent 339fcf6ddc
commit 85c6d9119d
4 changed files with 23 additions and 1 deletions
src/main/java/io/github/xxyopen/novel

@ -82,6 +82,16 @@ public enum ErrorCodeEnum {
* */
USER_UN_AUTH("A0301","访问未授权"),
/**
* 用户评论异常
* */
USER_COMMENT("A2000","用户评论异常"),
/**
* 用户评论异常
* */
USER_COMMENTED("A2001","用户已发表评论"),
/**
* 一级宏观错误码系统执行出错
* */

@ -136,6 +136,8 @@ public class DatabaseConsts {
public static final String COLUMN_BOOK_ID = "book_id";
public static final String COLUMN_USER_ID = "user_id";
}
/**

@ -1,6 +1,7 @@
package io.github.xxyopen.novel.dto.req;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
@ -14,7 +15,7 @@ public class UserCommentReqDto {
private Long userId;
@NotBlank(message="小说ID不能为空")
@NotNull(message="小说ID不能为空")
private Long bookId;
@NotBlank(message="评论不能为空!")

@ -2,6 +2,7 @@ package io.github.xxyopen.novel.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import io.github.xxyopen.novel.core.common.constant.ErrorCodeEnum;
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;
@ -206,6 +207,14 @@ public class BookServiceImpl implements BookService {
@Override
public RestResp<Void> saveComment(UserCommentReqDto dto) {
// 校验用户是否已发表评论
QueryWrapper<BookComment> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(DatabaseConsts.BookCommentTable.COLUMN_USER_ID,dto.getUserId())
.eq(DatabaseConsts.BookCommentTable.COLUMN_BOOK_ID,dto.getBookId());
if(bookCommentMapper.selectCount(queryWrapper) > 0){
// 用户已发表评论
return RestResp.fail(ErrorCodeEnum.USER_COMMENTED);
}
BookComment bookComment = new BookComment();
bookComment.setBookId(dto.getBookId());
bookComment.setUserId(dto.getUserId());