|
@@ -1,4 +1,4 @@
|
|
|
-import { Injectable } from '@nestjs/common';
|
|
|
|
|
|
|
+import { forwardRef, Inject, Injectable } from '@nestjs/common';
|
|
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
import { InjectRepository } from '@nestjs/typeorm';
|
|
|
import { Category } from '../entity/category.entity';
|
|
import { Category } from '../entity/category.entity';
|
|
|
import { Repository } from 'typeorm';
|
|
import { Repository } from 'typeorm';
|
|
@@ -8,6 +8,7 @@ import { BizException } from '../../core/exception/biz.exception';
|
|
|
import { CategoryError } from '../error/category.error';
|
|
import { CategoryError } from '../error/category.error';
|
|
|
import { UpdateCategoryRequest } from '../dto/update-category.request';
|
|
import { UpdateCategoryRequest } from '../dto/update-category.request';
|
|
|
import { UserService } from '../../core/service/user.service';
|
|
import { UserService } from '../../core/service/user.service';
|
|
|
|
|
+import { ArticleService } from './article.service';
|
|
|
|
|
|
|
|
@Injectable()
|
|
@Injectable()
|
|
|
export class CategoryService {
|
|
export class CategoryService {
|
|
@@ -15,6 +16,8 @@ export class CategoryService {
|
|
|
@InjectRepository(Category)
|
|
@InjectRepository(Category)
|
|
|
private readonly categoryRepository: Repository<Category>,
|
|
private readonly categoryRepository: Repository<Category>,
|
|
|
private readonly userService: UserService,
|
|
private readonly userService: UserService,
|
|
|
|
|
+ @Inject(forwardRef(() => ArticleService))
|
|
|
|
|
+ private readonly articleService: ArticleService,
|
|
|
) {}
|
|
) {}
|
|
|
|
|
|
|
|
async create(createCategoryRequest: CreateCategoryRequest) {
|
|
async create(createCategoryRequest: CreateCategoryRequest) {
|
|
@@ -62,6 +65,10 @@ export class CategoryService {
|
|
|
if (!category) {
|
|
if (!category) {
|
|
|
throw new BizException(CategoryError.NOT_FOUND);
|
|
throw new BizException(CategoryError.NOT_FOUND);
|
|
|
}
|
|
}
|
|
|
|
|
+ const articleCount = await this.articleService.countByCategoryId(id);
|
|
|
|
|
+ if (articleCount > 0) {
|
|
|
|
|
+ throw new BizException(CategoryError.HAS_ARTICLE);
|
|
|
|
|
+ }
|
|
|
await this.categoryRepository.remove(category);
|
|
await this.categoryRepository.remove(category);
|
|
|
}
|
|
}
|
|
|
|
|
|