refactor(journal task): 重构期刊任务模块,优化答案数据结构与流程
1. 移除废弃的KeywordAnalysis相关接口与代码 2. 重构任务答案存储逻辑,改用一对多关联存储多组答案 3. 调整实体与DTO字段,统一评分、时长等任务配置字段位置 4. 优化任务查询与返回结构,使用列表统一管理答案数据 5. 修复微信授权控制器默认返回逻辑
This commit is contained in:
@ -143,20 +143,33 @@ public class JournalPageService(BaseRepository<Journal> JournalRepository,
|
||||
|
||||
if (output != null)
|
||||
{
|
||||
output.Tasks = await JournalPageTaskRepository.Queryable()
|
||||
.LeftJoin<JournalPageTaskAnswer>((a, ans) => ans.JournalPageTaskId == a.Id)
|
||||
.Where((a, ans) => a.JournalPageId == output.JournalPageId)
|
||||
.Select((a, ans) => new JournalPageTaskV2Output
|
||||
{
|
||||
Id = a.Id,
|
||||
GroupId = a.GroupId,
|
||||
No = a.No,
|
||||
Type = (TaskBankTypeEnum)a.Type,
|
||||
Options = a.Options,
|
||||
Answers = ans.Answer,
|
||||
Analysis = ans.Analysis,
|
||||
})
|
||||
var tasks = await JournalPageTaskRepository.Queryable()
|
||||
.Where(a => a.JournalPageId == output.JournalPageId)
|
||||
.ToListAsync();
|
||||
|
||||
if (tasks.Count > 0)
|
||||
{
|
||||
var taskIds = tasks.Select(t => t.Id).ToList();
|
||||
var allAnswers = await JournalPageTaskAnswerRepository.Queryable()
|
||||
.Where(a => taskIds.Contains(a.JournalPageTaskId))
|
||||
.ToListAsync();
|
||||
|
||||
output.Tasks = tasks.Select(t => new JournalPageTaskV2Output
|
||||
{
|
||||
Id = t.Id,
|
||||
GroupId = t.GroupId,
|
||||
No = t.No,
|
||||
Type = t.Type,
|
||||
Answers = allAnswers
|
||||
.Where(a => a.JournalPageTaskId == t.Id)
|
||||
.Select(a => new JournalTaskAnswerOutput
|
||||
{
|
||||
Id = a.Id,
|
||||
Answer = a.Answer,
|
||||
AnswerUrl = a.AnswerUrL
|
||||
}).ToList()
|
||||
}).ToList();
|
||||
}
|
||||
}
|
||||
//if (output?.Areas != null)
|
||||
// output.Areas = await _JournalPageOtherRepository.Queryable().Where(w => w.JournalPageId == output.JournalPageId).Select<JournalPageOtherOutput>().ToListAsync();
|
||||
|
||||
Reference in New Issue
Block a user