2026-04-21 23:56:08 +08:00

360 lines
7.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System.ComponentModel.DataAnnotations;
using YD_Event.Core.Enum;
using MiniExcelLibs.Attributes;
namespace YD_Event.Application.Event.Dtos;
/// <summary>
/// 成绩查询输入
/// </summary>
public class ScoreQueryInput : Pagination
{
/// <summary>
/// 赛事ID
/// </summary>
public long EventId { get; set; }
/// <summary>
/// 项目ID
/// </summary>
public long? ProjectId { get; set; }
/// <summary>
/// 赛事项目组别ID (优先使用)
/// </summary>
public long? EventProjectGroupId { get; set; }
/// <summary>
/// 组别名称 (备用,当没有EventProjectGroupId时使用)
/// </summary>
public string? GroupName { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 单位名称
/// </summary>
public string? UnitName { get; set; }
/// <summary>
/// 性别
/// </summary>
public Gender? Gender { get; set; }
}
/// <summary>
/// 成绩列表输出
/// </summary>
public class ScoreListOutput
{
/// <summary>
/// 报名人员ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 成绩
/// </summary>
public string Score { get; set; }
/// <summary>
/// 单位名称
/// </summary>
public string UnitName { get; set; }
/// <summary>
/// 名次(数字)
/// </summary>
public int Rank { get; set; }
/// <summary>
/// 名次(汉字)
/// </summary>
public string RankText { get; set; }
/// <summary>
/// 性别
/// </summary>
public int Gender { get; set; }
/// <summary>
/// 成绩ID
/// </summary>
public long ResultId { get; set; }
/// <summary>
/// 证书ID
/// </summary>
public long CertificateId { get; set; }
}
/// <summary>
/// 教练/领队查询输入
/// </summary>
public class CoachLeaderQueryInput : Pagination
{
/// <summary>
/// 赛事ID
/// </summary>
public long EventId { get; set; }
/// <summary>
/// 人员类型 (2-教练, 3-领队)
/// </summary>
public PersonType PersonType { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 电话
/// </summary>
public string? Mobile { get; set; }
/// <summary>
/// 性别
/// </summary>
public Gender? Gender { get; set; }
}
/// <summary>
/// 教练/领队列表输出
/// </summary>
public class CoachLeaderListOutput
{
/// <summary>
/// 报名人员ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 姓名
/// </summary>
public string Name { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int? Age { get; set; }
/// <summary>
/// 性别
/// </summary>
public int Gender { get; set; }
/// <summary>
/// 出生日期
/// </summary>
public DateTime? BirthDate { get; set; }
/// <summary>
/// 身份证号
/// </summary>
public string? IdCardNumber { get; set; }
/// <summary>
/// 身份证正面图片URL
/// </summary>
public string? IdCardImageUrl { get; set; }
/// <summary>
/// 身份证背面图片URL
/// </summary>
public string? IdCardBackImageUrl { get; set; }
/// <summary>
/// 电话
/// </summary>
public string Mobile { get; set; }
/// <summary>
/// 证书ID
/// </summary>
public long CertificateId { get; set; }
}
/// <summary>
/// 发放证书输入
/// </summary>
public class IssueCertificateInput
{
/// <summary>
/// 人员ID列表
/// </summary>
public List<long> PersonIds { get; set; }
/// <summary>
/// 赛事ID
/// </summary>
public long EventId { get; set; }
/// <summary>
/// 证书ID(必选)
/// </summary>
[Required(ErrorMessage = "请选择证书")]
public long CertificateId { get; set; }
/// <summary>
/// 页面类型:1-运动员页面,2-教练页面,3-领队页面
/// 用于明确区分不同角色页面的证书生成逻辑
/// </summary>
public int PageType { get; set; }
}
/// <summary>
/// 发放证书结果
/// </summary>
public class IssueCertificateResult
{
/// <summary>
/// 成功数量
/// </summary>
public int SuccessCount { get; set; }
/// <summary>
/// 失败数量
/// </summary>
public int FailCount { get; set; }
/// <summary>
/// 失败详情
/// </summary>
public List<string> FailDetails { get; set; } = new List<string>();
}
/// <summary>
/// 成绩导入DTO
/// </summary>
public class ScoreImportDto
{
/// <summary>
/// 报名项目唯一码(唯一标识符)
/// </summary>
[ExcelColumnName("报名项目唯一码")]
public long? RegistrationItemId { get; set; }
/// <summary>
/// 赛事地址
/// </summary>
[ExcelColumnName("赛事地址")]
public string EventAddress { get; set; }
/// <summary>
/// 项目名称
/// </summary>
[ExcelColumnName("项目")]
public string ProjectName { get; set; }
/// <summary>
/// 组别名称
/// </summary>
[ExcelColumnName("组别")]
public string GroupName { get; set; }
/// <summary>
/// 姓名
/// </summary>
[ExcelColumnName("姓名")]
public string Name { get; set; }
/// <summary>
/// 联系方式
/// </summary>
[ExcelColumnName("联系方式")]
public string Contact { get; set; }
/// <summary>
/// 单位名称
/// </summary>
[ExcelColumnName("单位")]
public string UnitName { get; set; }
/// <summary>
/// 成绩
/// </summary>
[ExcelColumnName("成绩")]
public string Score { get; set; }
/// <summary>
/// 名次(数字)
/// </summary>
[ExcelColumnName("名次(数字)")]
public int Rank { get; set; }
/// <summary>
/// 名次(汉字)
/// </summary>
[ExcelColumnName("名次(汉字)")]
public string RankText { get; set; }
}
/// <summary>
/// 证书导出DTO
/// </summary>
public class CertificateExportDto
{
/// <summary>
/// 证书编号
/// </summary>
[ExcelColumnName("证书编号")]
public string CertificateNo { get; set; }
/// <summary>
/// 姓名
/// </summary>
[ExcelColumnName("姓名")]
public string ParticipantName { get; set; }
/// <summary>
/// 项目名称
/// </summary>
[ExcelColumnName("项目")]
public string ProjectName { get; set; }
/// <summary>
/// 组别名称
/// </summary>
[ExcelColumnName("组别")]
public string GroupName { get; set; }
/// <summary>
/// 单位名称
/// </summary>
[ExcelColumnName("单位")]
public string UnitName { get; set; }
/// <summary>
/// 成绩
/// </summary>
[ExcelColumnName("成绩")]
public string Score { get; set; }
/// <summary>
/// 名次
/// </summary>
[ExcelColumnName("名次")]
public int Rank { get; set; }
/// <summary>
/// 证书类型
/// </summary>
[ExcelColumnName("证书类型")]
public string CertificateType { get; set; }
/// <summary>
/// 发放时间
/// </summary>
[ExcelColumnName("发放时间")]
public DateTime? IssuedTime { get; set; }
}