refactor(service): 补充期刊相关实体的关联删除与prompt字段映射
1. 为JournalPageTaskService新增BasePrompt和CustomPrompt字段的赋值映射 2. 为JournalService注入JournalPageTaskAnswerRepository并完善关联删除逻辑,先删除任务答案再删除任务本身
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
using Mapster;
|
||||
using Mapster;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||
using QYZH.InteractiveMagazine.Infrastructure.OSS;
|
||||
@ -18,6 +18,7 @@ namespace QYZH.InteractiveMagazine.Service;
|
||||
|
||||
public class JournalService(BaseRepository<JournalPage> JournalPageRepository,
|
||||
BaseRepository<JournalPageTask> JournalPageTaskRepository,
|
||||
BaseRepository<JournalPageTaskAnswer> JournalPageTaskAnswerRepository,
|
||||
BaseRepository<JournalCatalog> JournalCatalogRepository,
|
||||
BaseRepository<DotFile> dotFileRepository,
|
||||
BaseRepository<DotFileDetail> dotFileDetailRepository, OssService ossService, ILogger<JournalService> logger) : BaseRepository<Journal>, IJournalService
|
||||
@ -210,6 +211,20 @@ public class JournalService(BaseRepository<JournalPage> JournalPageRepository,
|
||||
await base.DeleteAsync(d => ids.Contains(d.Id));
|
||||
await JournalPageRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
||||
await JournalCatalogRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
||||
|
||||
// 先查询要删除的 JournalPageTask Id 列表
|
||||
var taskIds = await JournalPageTaskRepository.Queryable()
|
||||
.Where(d => ids.Contains(d.JournalId))
|
||||
.Select(d => d.Id)
|
||||
.ToListAsync();
|
||||
|
||||
// 删除 JournalPageTaskAnswer
|
||||
if (taskIds.Any())
|
||||
{
|
||||
await JournalPageTaskAnswerRepository.DeleteAsync(d => taskIds.Contains(d.JournalPageTaskId));
|
||||
}
|
||||
|
||||
// 再删除 JournalPageTask
|
||||
await JournalPageTaskRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
||||
return true;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user