This commit is contained in:
2025-05-13 11:27:58 +08:00
parent 4d83091c5c
commit c81f267ecc
8 changed files with 9 additions and 9 deletions

View File

@@ -8,7 +8,7 @@ namespace Yes.Application.Admins.Articles
private readonly BlogDbContext _db = db;
public async Task<bool> IsSlugInUse(string slug)
{
return await _db.Articles.AnyAsync(x => x.Slug == slug);
return await _db.Articles.AnyAsync(x => x.Slug == slug && x.Status!= ArticleStatusEnum.Deleted);
}
public async Task<string> CreateUniqueSlug()

View File

@@ -14,7 +14,7 @@
public async Task<DeleteArticleCommandResponse> Handle(DeleteArticleCommand request, CancellationToken cancellationToken)
{
var article = await _db.Articles.FindAsync(request.Id);
if (article != null)
if (article != null && article.Status!= ArticleStatusEnum.Deleted)
{
var identityUser = await _db.Users.FindAsync(_identity.Id);
if (identityUser == null)

View File

@@ -15,7 +15,7 @@
private readonly BlogDbContext _db = db;
public async Task<List<GetLatestArticlesQueryResponse>> Handle(GetLatestArticlesQuery request, CancellationToken cancellationToken)
{
var query = _db.Articles.AsNoTracking().Where(x=>x.Type==ArticleTypeEnum.Article x.Status != ArticleStatusEnum.Deleted).OrderByDescending(x => x.Id).Select(article =>
var query = _db.Articles.AsNoTracking().Where(x=>x.Type==ArticleTypeEnum.Article && x.Status != ArticleStatusEnum.Deleted).OrderByDescending(x => x.Id).Select(article =>
new GetLatestArticlesQueryResponse(
article.Id,
article.Title,

View File

@@ -36,7 +36,7 @@
var categoryObject = ValueObject<CategoryEntity>.Create(request.CategoryId, category);
var article = await _db.Articles.FindAsync(request.Id);
if (article == null)
if (article == null|| article.Status == ArticleStatusEnum.Deleted)
{
throw new ArticleNotExistsException(request.Id);
}

View File

@@ -30,7 +30,7 @@
var categoryObject = ValueObject<CategoryEntity>.Create(request.CategoryId, category);
var article = await _db.Articles.FindAsync(request.Id);
if (article == null)
if (article == null || article.Status == ArticleStatusEnum.Deleted)
{
throw new ArticleNotExistsException(request.Id);
}

View File

@@ -8,7 +8,7 @@ namespace Yes.Application.Admins.Categories
private readonly BlogDbContext _db = db;
public async Task<bool> IsSlugInUse(string slug)
{
return await _db.Articles.AnyAsync(x => x.Slug == slug);
return await _db.Articles.AnyAsync(x => x.Slug == slug && x.Status != ArticleStatusEnum.Deleted);
}
public async Task<string> EnsureSlug()

View File

@@ -22,7 +22,7 @@
throw new AccessDeniedException();
}
var hasArticlesInCategory = await _db.Articles.AnyAsync(x => x.CategoryId == request.Id, cancellationToken);
var hasArticlesInCategory = await _db.Articles.AnyAsync(x => x.CategoryId == request.Id && x.Status!= ArticleStatusEnum.Deleted, cancellationToken);
if (hasArticlesInCategory)
{
throw new DeleteCategoryException("分类下还有文章,无法删除!");

View File

@@ -422,7 +422,7 @@
{
x.AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10);
var articles = _db.Articles.Where(x => x.Type == ArticleTypeEnum.Page).OrderByDescending(x => x.Sort).Take(top).Select(x => x.ArticleEntityToSinglePage()).ToList();
var articles = _db.Articles.Where(x => x.Type == ArticleTypeEnum.Page && x.Status != ArticleStatusEnum.Deleted).OrderByDescending(x => x.Sort).Take(top).Select(x => x.ArticleEntityToSinglePage()).ToList();
articles.ForEach(x =>
{
@@ -441,7 +441,7 @@
{
articleEntity = await _db.Articles.FirstOrDefaultAsync(x => x.Slug == slug);
}
if (articleEntity == null)
if (articleEntity == null || articleEntity.Status == ArticleStatusEnum.Deleted)
{
throw new PageNotFoundException();
}