feat: 新增宠物封面图支持,优化补偿任务查询与宠物模板创建流程

1.  新增PetSkinImageTypeEnum.Cover枚举,添加封面图类型支持
2.  为PetSkin、PetTemplate实体添加封面图片地址字段
3.  新增补偿任务按用户ID筛选功能,优化UsersService查询逻辑
4.  重构宠物模板创建流程,支持批量创建进化链与图片
5.  移除PetEvolution实体的基础属性字段,简化进化形态结构
6.  新增OSS域名辅助工具与SDK注册扩展类
7.  优化宠物皮肤、进化阶段的DTO与服务层逻辑
This commit is contained in:
glz
2026-06-09 16:15:22 +08:00
parent eb8f40f2ab
commit badf68a8f8
13 changed files with 320 additions and 82 deletions

View File

@ -75,6 +75,11 @@ public class CompensationTaskOutput
/// </summary>
public class GetCompensationTasksInput
{
/// <summary>
/// 按用户Id筛选
/// </summary>
public long? UserId { get; set; }
/// <summary>
/// 按状态筛选
/// </summary>

View File

@ -36,6 +36,11 @@ public class PetSkinInput
/// 皮肤类型: Normal, Limited, Event
/// </summary>
public string Type { get; set; } = PetSkinTypeEnum.Normal.ToString();
/// <summary>
/// 封面图片地址
/// </summary>
public string? CoverImageUrl { get; set; }
}
/// <summary>
@ -50,6 +55,10 @@ public class PetSkinOutput
public string Rarity { get; set; } = string.Empty;
public int SortOrder { get; set; }
public string Type { get; set; } = string.Empty;
/// <summary>
/// 封面图片地址
/// </summary>
public string? CoverImageUrl { get; set; }
public string? CreatedBy { get; set; }
public DateTime CreatedAt { get; set; }
public string? UpdatedBy { get; set; }

View File

@ -3,7 +3,7 @@ using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Dto.Pet;
/// <summary>
/// 宠物模板创建/更新输入
/// 宠物模板创建/更新输入(包含进化链及图片)
/// </summary>
public class PetTemplateInput
{
@ -17,11 +17,6 @@ public class PetTemplateInput
/// </summary>
public string? Description { get; set; }
/// <summary>
/// 默认初始进化形态Id
/// </summary>
public long DefaultEvolutionId { get; set; }
/// <summary>
/// 模板图标地址
/// </summary>
@ -36,6 +31,63 @@ public class PetTemplateInput
/// 模板类型: Normal, Special, Limited
/// </summary>
public string Type { get; set; } = PetTemplateTypeEnum.Normal.ToString();
/// <summary>
/// 进化链列表(创建时一并传入,每个阶段含一组图片)
/// </summary>
public List<PetEvolutionStageInput>? Evolutions { get; set; }
}
/// <summary>
/// 进化阶段输入(含该阶段的图片列表,用于模板创建时一并提交)
/// </summary>
public class PetEvolutionStageInput
{
/// <summary>
/// 阶段名称
/// </summary>
public string StageName { get; set; } = string.Empty;
/// <summary>
/// 阶段等级
/// </summary>
public int StageLevel { get; set; }
/// <summary>
/// 进化所需成长值
/// </summary>
public int RequiredGrowth { get; set; }
/// <summary>
/// 进化类型: Normal, Special
/// </summary>
public string Type { get; set; } = PetEvolutionTypeEnum.Normal.ToString();
/// <summary>
/// 该阶段对应的默认皮肤图片列表(其中 Type="Cover" 的为封面图)
/// </summary>
public List<PetStageImageInput>? Images { get; set; }
}
/// <summary>
/// 进化阶段图片输入(创建模板时使用)
/// </summary>
public class PetStageImageInput
{
/// <summary>
/// 图片地址
/// </summary>
public string ImageUrl { get; set; } = string.Empty;
/// <summary>
/// 图片顺序(动画帧序号)
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// 图片类型: Normal=普通帧, Cover=封面图
/// </summary>
public string Type { get; set; } = PetSkinImageTypeEnum.Normal.ToString();
}
/// <summary>
@ -48,6 +100,10 @@ public class PetTemplateOutput
public string? Description { get; set; }
public long DefaultEvolutionId { get; set; }
public string? IconUrl { get; set; }
/// <summary>
/// 封面图片地址(默认取初始阶段封面图)
/// </summary>
public string? CoverImageUrl { get; set; }
public int SortOrder { get; set; }
public string Type { get; set; } = string.Empty;
public string Status { get; set; } = string.Empty;

View File

@ -46,34 +46,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// </summary>
public long? PreviousEvolutionId { get; set; }
/// <summary>
/// Desc:基础力量
/// Default:0
/// Nullable:False
/// </summary>
public int BaseStrength { get; set; }
/// <summary>
/// Desc:基础敏捷
/// Default:0
/// Nullable:False
/// </summary>
public int BaseAgility { get; set; }
/// <summary>
/// Desc:基础智力
/// Default:0
/// Nullable:False
/// </summary>
public int BaseIntelligence { get; set; }
/// <summary>
/// Desc:基础魅力
/// Default:0
/// Nullable:False
/// </summary>
public int BaseCharm { get; set; }
/// <summary>
/// Desc:进化类型: Normal, Special
/// Default:Normal

View File

@ -52,5 +52,12 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Nullable:False
/// </summary>
public PetSkinTypeEnum Type { get; set; }
/// <summary>
/// Desc:封面图片地址
/// Default:
/// Nullable:True
/// </summary>
public string? CoverImageUrl { get; set; }
}
}

View File

@ -53,5 +53,12 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// </summary>
public PetTemplateTypeEnum Type { get; set; }
/// <summary>
/// Desc:封面图片地址(默认取初始阶段封面图)
/// Default:
/// Nullable:True
/// </summary>
public string? CoverImageUrl { get; set; }
}
}

View File

@ -16,5 +16,10 @@ public enum PetSkinImageTypeEnum
/// 特殊图片
/// </summary>
[Description("特殊图片")]
Special = 2
Special = 2,
/// <summary>
/// 封面图
/// </summary>
[Description("封面图")]
Cover = 3
}