diff --git a/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs b/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs index 6eaac9f..e4d55ae 100644 --- a/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs +++ b/QYZH.InteractiveMagazine.Service/JournalPageTaskService.cs @@ -66,6 +66,8 @@ public class JournalPageTaskService(BaseRepository journalRepository, O task.Expression = input.Expression; task.Persuasiveness = input.Persuasiveness; task.AnswerTime = input.AnswerTime; + task.BasePrompt = input.BasePrompt; + task.CustomPrompt = input.CustomPrompt; var no = input.No.Split('-').Select(int.Parse).ToArray(); diff --git a/QYZH.InteractiveMagazine.Service/JournalService.cs b/QYZH.InteractiveMagazine.Service/JournalService.cs index 25dedce..129a5dc 100644 --- a/QYZH.InteractiveMagazine.Service/JournalService.cs +++ b/QYZH.InteractiveMagazine.Service/JournalService.cs @@ -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 JournalPageRepository, BaseRepository JournalPageTaskRepository, + BaseRepository JournalPageTaskAnswerRepository, BaseRepository JournalCatalogRepository, BaseRepository dotFileRepository, BaseRepository dotFileDetailRepository, OssService ossService, ILogger logger) : BaseRepository, IJournalService @@ -210,6 +211,20 @@ public class JournalService(BaseRepository 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; });