refactor(service): 补充期刊相关实体的关联删除与prompt字段映射
1. 为JournalPageTaskService新增BasePrompt和CustomPrompt字段的赋值映射 2. 为JournalService注入JournalPageTaskAnswerRepository并完善关联删除逻辑,先删除任务答案再删除任务本身
This commit is contained in:
@ -66,6 +66,8 @@ public class JournalPageTaskService(BaseRepository<Journal> journalRepository, O
|
|||||||
task.Expression = input.Expression;
|
task.Expression = input.Expression;
|
||||||
task.Persuasiveness = input.Persuasiveness;
|
task.Persuasiveness = input.Persuasiveness;
|
||||||
task.AnswerTime = input.AnswerTime;
|
task.AnswerTime = input.AnswerTime;
|
||||||
|
task.BasePrompt = input.BasePrompt;
|
||||||
|
task.CustomPrompt = input.CustomPrompt;
|
||||||
|
|
||||||
|
|
||||||
var no = input.No.Split('-').Select(int.Parse).ToArray();
|
var no = input.No.Split('-').Select(int.Parse).ToArray();
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
using Mapster;
|
using Mapster;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using QYZH.InteractiveMagazine.Common.Extensions;
|
using QYZH.InteractiveMagazine.Common.Extensions;
|
||||||
using QYZH.InteractiveMagazine.Infrastructure.OSS;
|
using QYZH.InteractiveMagazine.Infrastructure.OSS;
|
||||||
@ -18,6 +18,7 @@ namespace QYZH.InteractiveMagazine.Service;
|
|||||||
|
|
||||||
public class JournalService(BaseRepository<JournalPage> JournalPageRepository,
|
public class JournalService(BaseRepository<JournalPage> JournalPageRepository,
|
||||||
BaseRepository<JournalPageTask> JournalPageTaskRepository,
|
BaseRepository<JournalPageTask> JournalPageTaskRepository,
|
||||||
|
BaseRepository<JournalPageTaskAnswer> JournalPageTaskAnswerRepository,
|
||||||
BaseRepository<JournalCatalog> JournalCatalogRepository,
|
BaseRepository<JournalCatalog> JournalCatalogRepository,
|
||||||
BaseRepository<DotFile> dotFileRepository,
|
BaseRepository<DotFile> dotFileRepository,
|
||||||
BaseRepository<DotFileDetail> dotFileDetailRepository, OssService ossService, ILogger<JournalService> logger) : BaseRepository<Journal>, IJournalService
|
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 base.DeleteAsync(d => ids.Contains(d.Id));
|
||||||
await JournalPageRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
await JournalPageRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
||||||
await JournalCatalogRepository.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));
|
await JournalPageTaskRepository.DeleteAsync(d => ids.Contains(d.JournalId));
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user