新增微信接口以及一些问天
This commit is contained in:
@ -0,0 +1,18 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService
|
||||
{
|
||||
/// <summary>
|
||||
/// 新增学生输入
|
||||
/// </summary>
|
||||
public class AddStudentInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址
|
||||
/// </summary>
|
||||
public string? AvatarUrl { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService
|
||||
{
|
||||
/// <summary>
|
||||
/// 新增学生输出
|
||||
/// </summary>
|
||||
public class AddStudentOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 学生Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联微信用户Id
|
||||
/// </summary>
|
||||
public long WxUserId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 昵称
|
||||
/// </summary>
|
||||
public string? Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 头像地址
|
||||
/// </summary>
|
||||
public string? AvatarUrl { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户类型
|
||||
/// </summary>
|
||||
public string Type { get; set; } = "Normal";
|
||||
|
||||
/// <summary>
|
||||
/// 当前成长值
|
||||
/// </summary>
|
||||
public int GrowthPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 积分余额
|
||||
/// </summary>
|
||||
public int Points { get; set; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,59 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 批量领取任务积分输入
|
||||
/// </summary>
|
||||
public class BatchClaimPointsInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务分组Id列表(JournalPageTaskGroupId)
|
||||
/// </summary>
|
||||
public List<long> GroupIds { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量领取任务积分输出
|
||||
/// </summary>
|
||||
public class BatchClaimPointsOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 成功领取数量
|
||||
/// </summary>
|
||||
public int SuccessCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 失败数量
|
||||
/// </summary>
|
||||
public int FailCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 累计获得积分
|
||||
/// </summary>
|
||||
public int TotalPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 领取后积分余额
|
||||
/// </summary>
|
||||
public int BalanceAfter { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 失败详情
|
||||
/// </summary>
|
||||
public List<BatchClaimFailItem> FailItems { get; set; } = new();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 批量领取失败项
|
||||
/// </summary>
|
||||
public class BatchClaimFailItem
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务分组Id
|
||||
/// </summary>
|
||||
public long GroupId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 失败原因
|
||||
/// </summary>
|
||||
public string Message { get; set; }
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 目录列表输出(按一级目录分组)
|
||||
/// </summary>
|
||||
public class CatalogListOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 一级目录ID
|
||||
/// </summary>
|
||||
public long CatalogId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 一级目录名称
|
||||
/// </summary>
|
||||
public string CatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 杂志名称
|
||||
/// </summary>
|
||||
public string JournalName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 文章篇数
|
||||
/// </summary>
|
||||
public int ArticleCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二级栏目列表
|
||||
/// </summary>
|
||||
public List<SecondCatalogOutput> Children { get; set; } = new();
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 一级目录概览输出(含二级目录详情列表)
|
||||
/// </summary>
|
||||
public class CatalogOverviewOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 一级目录ID
|
||||
/// </summary>
|
||||
public long CatalogId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 一级目录名称
|
||||
/// </summary>
|
||||
public string FirstLevelCatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 文章篇数(该一级目录下 JournalPage 的个数)
|
||||
/// </summary>
|
||||
public int PageCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总任务数(该一级目录下所有 JournalPageTask 的条数)
|
||||
/// </summary>
|
||||
public int TotalTaskCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二级目录详情列表
|
||||
/// </summary>
|
||||
public List<SubCatalogDetailOutput> SubCatalogs { get; set; } = new();
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 目录任务详情输出(含任务列表和徽章数)
|
||||
/// </summary>
|
||||
public class CatalogTaskDetailOutput
|
||||
{
|
||||
/// <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>
|
||||
/// 徽章个数
|
||||
/// </summary>
|
||||
public int MedalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务列表
|
||||
/// </summary>
|
||||
public List<TaskStatusOutput> Tasks { get; set; } = new();
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 领取任务积分输出
|
||||
/// </summary>
|
||||
public class ClaimTaskPointsOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 积分流水记录Id
|
||||
/// </summary>
|
||||
public long RecordId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作前积分余额
|
||||
/// </summary>
|
||||
public int PreviousBalance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作后积分余额
|
||||
/// </summary>
|
||||
public int NewBalance { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 实际增加数量
|
||||
/// </summary>
|
||||
public int AddedAmount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务名称
|
||||
/// </summary>
|
||||
public string TaskName { get; set; }
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 跨页题目详情输出
|
||||
/// </summary>
|
||||
public class CrossPageTaskOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 栏目名称
|
||||
/// </summary>
|
||||
public string CatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务名称
|
||||
/// </summary>
|
||||
public string TaskName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 图片数组(已答题用PageAnswerUrl,未答题用TaskUrl)
|
||||
/// </summary>
|
||||
public List<string> Images { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// 是否跨页题目
|
||||
/// </summary>
|
||||
public bool IsCrossPage { get; set; }
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 杂志列表输出
|
||||
/// </summary>
|
||||
public class JournalListOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 杂志Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 杂志名称
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 杂志标题
|
||||
/// </summary>
|
||||
public string Title { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 封面
|
||||
/// </summary>
|
||||
public string Cover { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 是否已绑定
|
||||
/// </summary>
|
||||
public bool IsBound { get; set; }
|
||||
}
|
||||
@ -0,0 +1,57 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 用户期刊学习进度输出(按期刊分组)
|
||||
/// </summary>
|
||||
public class JournalProgressOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 期刊ID
|
||||
/// </summary>
|
||||
public long JournalId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 期刊名称
|
||||
/// </summary>
|
||||
public string JournalName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 栏目数(一级目录个数)
|
||||
/// </summary>
|
||||
public int CatalogCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务总数(该期刊下 JournalPageTask 的条数)
|
||||
/// </summary>
|
||||
public int TotalTaskCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 已完成任务数(按 JournalPageTaskGroupId 去重,同一题跨页算1个)
|
||||
/// </summary>
|
||||
public int CompletedTaskCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 成长值(已完成任务的 GrowthPoint 累加)
|
||||
/// </summary>
|
||||
public int TotalGrowthPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 积分值(已完成任务的 Points 累加)
|
||||
/// </summary>
|
||||
public int TotalPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 进度百分比(已完成任务ID数 / 总任务数 × 100)
|
||||
/// </summary>
|
||||
public double Progress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 剩余篇数(该期刊总页数 - 用户已作答页数)
|
||||
/// </summary>
|
||||
public int RemainingPages { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 连续打卡天数
|
||||
/// </summary>
|
||||
public int ConsecutiveDays { get; set; }
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 二级栏目输出
|
||||
/// </summary>
|
||||
public class SecondCatalogOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 二级栏目ID
|
||||
/// </summary>
|
||||
public long CatalogId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二级栏目名称
|
||||
/// </summary>
|
||||
public string CatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总积分值
|
||||
/// </summary>
|
||||
public int TotalPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总成长值
|
||||
/// </summary>
|
||||
public int TotalGrowthPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态:未开始 / 进行中 / 已完成
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 二级目录详情输出(含页码范围、任务数、完成状态)
|
||||
/// </summary>
|
||||
public class SubCatalogDetailOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 二级目录ID
|
||||
/// </summary>
|
||||
public long CatalogId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 二级目录名字
|
||||
/// </summary>
|
||||
public string SecondLevelCatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 起始页码(杂志第几页开始)
|
||||
/// </summary>
|
||||
public int StartPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束页码(杂志第几页结束)
|
||||
/// </summary>
|
||||
public int EndPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务数量
|
||||
/// </summary>
|
||||
public int TaskCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 状态描述(格式如:1/2 进行中、2/2 已完成、0/2 未开始)
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态输出
|
||||
/// </summary>
|
||||
public class TaskStatusOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务ID
|
||||
/// </summary>
|
||||
public long TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务名字
|
||||
/// </summary>
|
||||
public string TaskName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态:未开始 / 进行中 / 已完成
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答题时间(分钟,由 AnswerSeconds 累加后转换)
|
||||
/// </summary>
|
||||
public double AnswerTime { get; set; }
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.UserAnswerTaskService;
|
||||
|
||||
/// <summary>
|
||||
/// 用户答题任务列表输出
|
||||
/// </summary>
|
||||
public class UserAnswerTaskListOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 目录名称
|
||||
/// </summary>
|
||||
public string CatalogName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开始页码
|
||||
/// </summary>
|
||||
public int StartPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 结束页码
|
||||
/// </summary>
|
||||
public int EndPage { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务名称列表
|
||||
/// </summary>
|
||||
public List<string> TaskNames { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// 任务状态(进行中、已完成、未开始)
|
||||
/// </summary>
|
||||
public string Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 答题时间(分钟)
|
||||
/// </summary>
|
||||
public double AnswerMinutes { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 徽章个数
|
||||
/// </summary>
|
||||
public int MedalCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总成长值
|
||||
/// </summary>
|
||||
public int TotalGrowthPoints { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 总积分
|
||||
/// </summary>
|
||||
public int TotalPoints { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user