Files
QYZH.InteractiveMagazine/QYZH.InteractiveMagazine.Models/Dto/Mall/ProductDto.cs
glz ae4cd627df feat: 完成多模块功能迭代与优化
1.  新增宠物皮肤初始枚举值、下拉列表接口及相关DTO
2.  完善商品实体与DTO,新增虚拟商品标记和类型ID字段
3.  重构用户认证体系,支持多用户切换并重新生成JWT令牌
4.  新增签到配置管理全套功能,包括增删改查和状态管理
5.  优化模型验证过滤器和基础响应类的命名规范
6.  新增补签功能,完善签到服务逻辑
7.  拆分用户详情DTO,新增各子数据分页查询接口
8.  重构微信控制器的用户ID获取逻辑,统一使用激活用户ID
9.  修复背包服务中补签卡的扣减逻辑
10. 新增家长姓名修改接口和相关服务实现
2026-06-10 17:53:38 +08:00

178 lines
3.6 KiB
C#

using QYZH.InteractiveMagazine.Models.Dto;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Dto;
/// <summary>
/// 商品创建/更新输入
/// </summary>
public class ProductInput
{
/// <summary>
/// 商品名称
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 描述
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 商品图片
/// </summary>
public string? ImageUrl { get; set; }
/// <summary>
/// 所需积分
/// </summary>
public int Price { get; set; }
/// <summary>
/// 商品类型: MakeUpCard, PetBg
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 售卖状态: OnSale, OffSale
/// </summary>
public ProductStatusEnum Status { get; set; } = ProductStatusEnum.OnSale;
/// <summary>
/// 扩展数据
/// </summary>
public string? MetaData { get; set; }
/// <summary>
/// 是否上架
/// </summary>
public bool IsActive { get; set; } = true;
/// <summary>
/// 库存(-1无限)
/// </summary>
public int Stock { get; set; } = -1;
/// <summary>
/// 是否是虚拟商品
/// </summary>
public bool IsVirtual { get; set; }
/// <summary>
/// Type对应的Id
/// </summary>
public long TypeId { get; set; }
}
/// <summary>
/// 商品输出
/// </summary>
public class ProductOutput
{
/// <summary>
/// 主键ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 商品名称
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// 描述
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 商品图片
/// </summary>
public string? ImageUrl { get; set; }
/// <summary>
/// 所需积分
/// </summary>
public int Price { get; set; }
/// <summary>
/// 商品类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 状态
/// </summary>
public string Status { get; set; } = string.Empty;
/// <summary>
/// 扩展数据
/// </summary>
public string? MetaData { get; set; }
/// <summary>
/// 是否上架
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 库存(-1无限)
/// </summary>
public int Stock { get; set; }
/// <summary>
/// 创建人
/// </summary>
public string? CreatedBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
/// <summary>
/// 更新人
/// </summary>
public string? UpdatedBy { get; set; }
/// <summary>
/// 更新时间
/// </summary>
public DateTime? UpdatedAt { get; set; }
/// <summary>
/// 是否是虚拟商品
/// </summary>
public bool IsVirtual { get; set; }
/// <summary>
/// Type对应的Id
/// </summary>
public long TypeId { get; set; }
}
/// <summary>
/// 商品分页查询输入
/// </summary>
public class ProductQueryInput : PageQueryModel
{
/// <summary>
/// 商品名称(模糊查询)
/// </summary>
public string? Name { get; set; }
/// <summary>
/// 商品类型
/// </summary>
public string? Type { get; set; }
/// <summary>
/// 售卖状态
/// </summary>
public ProductStatusEnum? Status { get; set; }
/// <summary>
/// 是否上架
/// </summary>
public bool? IsActive { get; set; }
}