Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.Models/Dto/UserAnswerTaskService/CatalogTreeOutput.cs

130 lines
3.3 KiB
C#
Raw Normal View History

2026-07-06 14:26:16 +08:00
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
/// <summary>
/// 目录树形结构输出(包含一级目录列表)
/// </summary>
public class CatalogTreeOutput
{
/// <summary>
/// 一级目录列表
/// </summary>
public List<FirstLevelCatalogItem> FirstLevelCatalogs { get; set; } = [];
}
/// <summary>
/// 一级目录项输出
/// </summary>
public class FirstLevelCatalogItem
{
/// <summary>
/// 一级目录ID
/// </summary>
public long CatalogId { get; set; }
/// <summary>
/// 一级目录名称
/// </summary>
public string CatalogName { get; set; }
/// <summary>
/// 文章篇数(来自二级目录对应的所有有题目的页面数总和)
/// </summary>
public int ArticleCount { get; set; }
/// <summary>
/// 任务数量来自二级目录对应的所有任务按GroupId去重后的总和
/// </summary>
public int TaskCount { get; set; }
/// <summary>
/// 二级目录列表
/// </summary>
public List<SecondLevelCatalogItem> Children { get; set; } = [];
}
/// <summary>
/// 二级目录项输出(含页码范围、任务数量、状态、总成长值、总积分及任务列表)
/// </summary>
public class SecondLevelCatalogItem
{
/// <summary>
/// 二级目录ID
/// </summary>
public long CatalogId { get; set; }
/// <summary>
/// 二级目录名称
/// </summary>
public string CatalogName { get; set; }
/// <summary>
/// 起始页码
/// </summary>
public int StartPage { get; set; }
/// <summary>
/// 结束页码
/// </summary>
public int EndPage { get; set; }
/// <summary>
/// 任务数量按GroupId去重后的数量
/// </summary>
public int TaskCount { get; set; }
/// <summary>
/// 状态格式如1/2 进行中、0/2 未开始、2/2 已完成)
/// </summary>
public string Status { get; set; }
/// <summary>
/// 总成长值该二级目录下所有任务的成长值总和按GroupId去重
/// </summary>
public int TotalGrowthPoints { get; set; }
/// <summary>
/// 总积分该二级目录下所有任务的积分总和按GroupId去重
/// </summary>
public int TotalPoints { get; set; }
/// <summary>
/// 任务列表(每个任务的详细信息)
/// </summary>
public List<CatalogTaskItem> Tasks { get; set; } = [];
}
/// <summary>
/// 目录任务项输出(任务详情)
/// </summary>
public class CatalogTaskItem
{
/// <summary>
/// 任务分组IDGroupId
/// </summary>
public long GroupId { get; set; }
/// <summary>
/// 任务名称取主任务的Task字段
/// </summary>
public string TaskName { get; set; }
/// <summary>
/// 任务状态(未开始、进行中、已完成)
/// </summary>
public string Status { get; set; }
/// <summary>
/// 成长值取主任务的GrowthPoint
/// </summary>
public int GrowthPoints { get; set; }
/// <summary>
/// 积分值取主任务的Points
/// </summary>
public int Points { get; set; }
/// <summary>
/// 答题时长分钟该GroupId下所有任务的AnswerSeconds累加后转换为分钟
/// </summary>
public double AnswerMinutes { get; set; }
}