refactor(service): 补充期刊相关实体的关联删除与prompt字段映射

1. 为JournalPageTaskService新增BasePrompt和CustomPrompt字段的赋值映射
2. 为JournalService注入JournalPageTaskAnswerRepository并完善关联删除逻辑,先删除任务答案再删除任务本身
This commit is contained in:
glz
2026-06-23 17:55:48 +08:00
parent 16ad80f2a8
commit 28a0c3cfe4
2 changed files with 18 additions and 1 deletions

View File

@ -66,6 +66,8 @@ public class JournalPageTaskService(BaseRepository<Journal> 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();

View File

@ -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;
});