1. 新增数据库脚本修改User表UserId字段为可空 2. 新增期刊二维码CRUD接口与控制器 3. 重构绑定期刊逻辑,优化重复绑定校验 4. 删除冗余的JwtHelper重载方法
227 lines
4.7 KiB
C#
227 lines
4.7 KiB
C#
using QYZH.InteractiveMagazine.Models.Enum;
|
||
|
||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||
|
||
/// <summary>
|
||
/// 绑定期刊输入DTO
|
||
/// </summary>
|
||
public class BindJournalInput
|
||
{
|
||
/// <summary>
|
||
/// 期刊模板Id(扫码解析的期刊定义Id)
|
||
/// </summary>
|
||
public long JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实例化期刊Id(扫码解析的具体期刊实例Id,可选)
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 关联类型: Read(已读), Favorite(收藏), Subscribe(订阅),默认 Subscribe
|
||
/// </summary>
|
||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定期刊输出DTO
|
||
/// </summary>
|
||
public class BindJournalOutput
|
||
{
|
||
/// <summary>
|
||
/// 绑定记录Id
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户Id
|
||
/// </summary>
|
||
public long UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊模板Id
|
||
/// </summary>
|
||
public long JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 关联类型
|
||
/// </summary>
|
||
public string Type { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 状态
|
||
/// </summary>
|
||
public string Status { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 绑定时间
|
||
/// </summary>
|
||
public DateTime CreatedAt { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 用户绑定期刊消息
|
||
/// </summary>
|
||
public class BindJournalMessage
|
||
{
|
||
/// <summary>
|
||
/// 用户Id
|
||
/// </summary>
|
||
public long UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊Id
|
||
/// </summary>
|
||
public long JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊开始时间
|
||
/// </summary>
|
||
public DateTime? StartTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊结束时间
|
||
/// </summary>
|
||
public DateTime? EndTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户作答信息上传地址
|
||
/// </summary>
|
||
public string UploadDomain { get; set; } = string.Empty;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 用户期刊关联查询输入DTO
|
||
/// </summary>
|
||
public class UserJournalQueryInput : PageQueryModel
|
||
{
|
||
/// <summary>
|
||
/// 期刊模板Id
|
||
/// </summary>
|
||
public long? JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 实例化期刊Id
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 关联类型: Read, Favorite, Subscribe
|
||
/// </summary>
|
||
public string? Type { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 生成期刊二维码输入DTO
|
||
/// </summary>
|
||
public class CreateUserJournalQrCodeInput
|
||
{
|
||
/// <summary>
|
||
/// 期刊Id
|
||
/// </summary>
|
||
public long JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 关联类型: Read, Favorite, Subscribe,默认 Subscribe
|
||
/// </summary>
|
||
public string Type { get; set; } = UserJournalTypeEnum.Subscribe.ToString();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 期刊二维码查询输入DTO
|
||
/// </summary>
|
||
public class UserJournalQrCodeQueryInput : PageQueryModel
|
||
{
|
||
/// <summary>
|
||
/// 期刊Id
|
||
/// </summary>
|
||
public long? JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户Id
|
||
/// </summary>
|
||
public long? UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否已绑定用户
|
||
/// </summary>
|
||
public bool? IsBound { get; set; }
|
||
|
||
/// <summary>
|
||
/// 状态
|
||
/// </summary>
|
||
public int? Status { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 期刊二维码输出DTO
|
||
/// </summary>
|
||
public class UserJournalQrCodeOutput
|
||
{
|
||
/// <summary>
|
||
/// 二维码记录Id
|
||
/// </summary>
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊Id
|
||
/// </summary>
|
||
public long JournalId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 期刊名称
|
||
/// </summary>
|
||
public string JournalName { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 用户Id
|
||
/// </summary>
|
||
public long? UserId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 用户昵称
|
||
/// </summary>
|
||
public string? UserName { get; set; }
|
||
|
||
/// <summary>
|
||
/// 关联类型
|
||
/// </summary>
|
||
public string Type { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 状态
|
||
/// </summary>
|
||
public string Status { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 是否已绑定用户
|
||
/// </summary>
|
||
public bool IsBound { get; set; }
|
||
|
||
/// <summary>
|
||
/// 二维码内容
|
||
/// </summary>
|
||
public string QrCodeContent { get; set; } = string.Empty;
|
||
|
||
/// <summary>
|
||
/// 创建时间
|
||
/// </summary>
|
||
public DateTime CreatedAt { get; set; }
|
||
|
||
/// <summary>
|
||
/// 绑定时间
|
||
/// </summary>
|
||
public DateTime? BoundAt { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除期刊二维码输入DTO
|
||
/// </summary>
|
||
public class DeleteUserJournalQrCodeInput
|
||
{
|
||
/// <summary>
|
||
/// 二维码记录Id列表
|
||
/// </summary>
|
||
public List<long> Ids { get; set; } = [];
|
||
}
|