feat: add wechat mini program mall, check-in supplement and pet skin system
This commit implements a complete WeChat mini program mall and related features: 1. Add pet skin entity and backpack item type support 2. Add make-up check-in and missed date query functions 3. Implement mall product browsing, exchange and record query 4. Add backpack management and item usage (make-up card) 5. Add pet skin equipping function 6. Fix UserBag ItemId type from int to long 7. Adjust Dockerfile exposed port to 8080 8. Fix session cookie unprotect warning
This commit is contained in:
87
QYZH.InteractiveMagazine.Models/Dto/Bag/UserBagDto.cs
Normal file
87
QYZH.InteractiveMagazine.Models/Dto/Bag/UserBagDto.cs
Normal file
@ -0,0 +1,87 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Bag;
|
||||
|
||||
/// <summary>
|
||||
/// 背包物品输出
|
||||
/// </summary>
|
||||
public class UserBagOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long ItemId { get; set; }
|
||||
public string ItemType { get; set; } = string.Empty;
|
||||
public int Quantity { get; set; }
|
||||
public string Status { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 关联商品信息(如果有)
|
||||
/// </summary>
|
||||
public BagProductBrief? Product { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 关联皮肤信息(PetBg 类型时)
|
||||
/// </summary>
|
||||
public BagSkinBrief? Skin { get; set; }
|
||||
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 背包中的商品简要
|
||||
/// </summary>
|
||||
public class BagProductBrief
|
||||
{
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? ImageUrl { get; set; }
|
||||
public string? Description { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 背包中的皮肤简要
|
||||
/// </summary>
|
||||
public class BagSkinBrief
|
||||
{
|
||||
public long SkinId { get; set; }
|
||||
public string SkinName { get; set; } = string.Empty;
|
||||
public string? SkinImage { get; set; }
|
||||
public string Rarity { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用物品输入(补签卡)
|
||||
/// </summary>
|
||||
public class UseItemInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 背包物品Id
|
||||
/// </summary>
|
||||
public long BagItemId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 补签目标日期(yyyy-MM-dd,仅补签卡使用)
|
||||
/// </summary>
|
||||
public string? TargetDate { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 换肤输入
|
||||
/// </summary>
|
||||
public class EquipSkinInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 皮肤Id(传0则恢复默认皮肤)
|
||||
/// </summary>
|
||||
public long SkinId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 使用物品输出
|
||||
/// </summary>
|
||||
public class UseItemOutput
|
||||
{
|
||||
public bool IsSuccess { get; set; }
|
||||
public string Message { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 补签时返回的签到结果
|
||||
/// </summary>
|
||||
public object? Extra { get; set; }
|
||||
}
|
||||
80
QYZH.InteractiveMagazine.Models/Dto/Mall/WxMallDto.cs
Normal file
80
QYZH.InteractiveMagazine.Models/Dto/Mall/WxMallDto.cs
Normal file
@ -0,0 +1,80 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto.Mall;
|
||||
|
||||
/// <summary>
|
||||
/// 小程序商品展示输出
|
||||
/// </summary>
|
||||
public class WxProductOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public string Name { get; set; } = string.Empty;
|
||||
public string? Description { get; set; }
|
||||
public string? ImageUrl { get; set; }
|
||||
public int Price { get; set; }
|
||||
public string Type { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 皮肤信息(仅 PetBg 类型有值)
|
||||
/// </summary>
|
||||
public PetSkinBrief? Skin { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户是否已拥有(PetBg 类型时判断背包中是否有)
|
||||
/// </summary>
|
||||
public bool Owned { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 皮肤简要信息
|
||||
/// </summary>
|
||||
public class PetSkinBrief
|
||||
{
|
||||
public long SkinId { get; set; }
|
||||
public string SkinName { get; set; } = string.Empty;
|
||||
public string? SkinImage { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public string Rarity { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 兑换输入
|
||||
/// </summary>
|
||||
public class ExchangeInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 商品Id
|
||||
/// </summary>
|
||||
public long ProductId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 兑换数量(默认1)
|
||||
/// </summary>
|
||||
public int Quantity { get; set; } = 1;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 兑换输出
|
||||
/// </summary>
|
||||
public class ExchangeOutput
|
||||
{
|
||||
public long RecordId { get; set; }
|
||||
public string ProductName { get; set; } = string.Empty;
|
||||
public int PointsCost { get; set; }
|
||||
public int PointsBalance { get; set; }
|
||||
public string Message { get; set; } = string.Empty;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 兑换记录输出
|
||||
/// </summary>
|
||||
public class ExchangeRecordOutput
|
||||
{
|
||||
public long Id { get; set; }
|
||||
public long ProductId { get; set; }
|
||||
public string ProductName { get; set; } = string.Empty;
|
||||
public string ProductType { get; set; } = string.Empty;
|
||||
public int PointsCost { get; set; }
|
||||
public int PointsBalance { get; set; }
|
||||
public int Quantity { get; set; }
|
||||
public string Status { get; set; } = string.Empty;
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user