diff --git a/tone-page-server/src/blog/blog.controller.ts b/tone-page-server/src/blog/blog.controller.ts index 3b59255..56abd27 100644 --- a/tone-page-server/src/blog/blog.controller.ts +++ b/tone-page-server/src/blog/blog.controller.ts @@ -94,10 +94,10 @@ export class BlogController { const comment = { ...commentData, - blogId: id, - user: user, - ip: ip, - address: address, + blog, + user, + ip, + address, }; return await this.blogService.createComment(comment); diff --git a/tone-page-server/src/blog/blog.service.ts b/tone-page-server/src/blog/blog.service.ts index 1d3af3f..c403428 100644 --- a/tone-page-server/src/blog/blog.service.ts +++ b/tone-page-server/src/blog/blog.service.ts @@ -11,7 +11,7 @@ export class BlogService { private readonly blogRepository: Repository, @InjectRepository(BlogComment) private readonly blogCommentRepository: Repository, - ) {} + ) { } async list() { return this.blogRepository.find({ @@ -46,9 +46,14 @@ export class BlogService { await this.blogRepository.increment({ id }, 'viewCount', 1); } - async getComments(id: string) { + async getComments(blogId: string) { + const blog = await this.findById(blogId); + if (!blog) { + throw new Error('文章不存在'); + } + return this.blogCommentRepository.find({ - where: { blogId: id }, + where: { blog }, relations: ['user'], order: { createdAt: 'DESC', diff --git a/tone-page-server/src/blog/entity/BlogComment.ts b/tone-page-server/src/blog/entity/BlogComment.ts index 76a0b64..ad5f7dd 100644 --- a/tone-page-server/src/blog/entity/BlogComment.ts +++ b/tone-page-server/src/blog/entity/BlogComment.ts @@ -8,6 +8,7 @@ import { ManyToOne, PrimaryGeneratedColumn, } from 'typeorm'; +import { Blog } from './Blog.entity'; @Entity() export class BlogComment { @@ -33,8 +34,9 @@ export class BlogComment { @JoinColumn({ name: 'userId' }) user: User | null; - @Column({ type: 'uuid', nullable: true }) - blogId: string | null; + @ManyToOne(() => Blog) + @JoinColumn({ name: 'blogId' }) + blog: Blog | null; @Column({ type: 'uuid', nullable: true }) parentId: string | null;