feat: 完成宠物模块重构与社区功能开发

本次提交包含多项核心更新:
1.  重构宠物模块数据结构:拆分皮肤图片为独立表,优化Pet、PetEvolution实体,调整字段类型与冗余字段
2.  新增宠物皮肤图片管理表,支持多进化阶段多图片展示
3.  完善宠物DTO,新增当前形态名称、皮肤信息与图片序列返回
4.  新增社区功能模块:
    - 微信端社区Feed流、点赞/取消点赞接口
    - 后台社区消息管理接口与服务实现
5.  优化商城与背包模块,替换皮肤图片获取逻辑为从新表读取预览图
6.  重构勋章服务,新增规则校验逻辑
7.  调整命名规范,修复原有控制器命名问题
This commit is contained in:
glz
2026-06-05 17:15:30 +08:00
parent eab84747a5
commit 8291b82362
19 changed files with 1753 additions and 182 deletions

View File

@ -0,0 +1,288 @@
namespace QYZH.InteractiveMagazine.Models.Dto;
#region DTO
/// <summary>
/// 社区消息分页查询输入(后台)
/// </summary>
public class AdminMessageQueryInput : PageQueryModel
{
/// <summary>
/// 期刊ID
/// </summary>
public long? JournalId { get; set; }
/// <summary>
/// 消息类型: Article, Quote, Announcement
/// </summary>
public string? Type { get; set; }
/// <summary>
/// 状态: 0=审核中, 1=已通过, 2=已冻结
/// </summary>
public int? Status { get; set; }
/// <summary>
/// 是否精选: 0=否, 1=是
/// </summary>
public int? IsFeatured { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool? IsActive { get; set; }
/// <summary>
/// 内容关键词(模糊查询)
/// </summary>
public string? Keyword { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public long? UserId { get; set; }
}
/// <summary>
/// 社区消息详情输出(后台)
/// </summary>
public class AdminMessageDetailOutput
{
/// <summary>
/// 主键ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 期刊ID
/// </summary>
public long JournalId { get; set; }
/// <summary>
/// 用户ID
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 用户实例期刊ID
/// </summary>
public long UserJournalId { get; set; }
/// <summary>
/// 期刊任务ID
/// </summary>
public long JournalTaskId { get; set; }
/// <summary>
/// 用户期刊任务回答ID
/// </summary>
public long JournalTaskAnswerId { get; set; }
/// <summary>
/// 消息内容
/// </summary>
public string Content { get; set; } = string.Empty;
/// <summary>
/// 配图
/// </summary>
public string? ImageUrl { get; set; }
/// <summary>
/// 排序权重
/// </summary>
public int SortOrder { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsActive { get; set; }
/// <summary>
/// 消息类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 点赞数
/// </summary>
public int LikeCount { get; set; }
/// <summary>
/// 是否精选
/// </summary>
public int IsFeatured { get; set; }
/// <summary>
/// 状态: 0=审核中, 1=已通过, 2=已冻结
/// </summary>
public int Status { 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 class AdminSetFeaturedInput
{
/// <summary>
/// 是否精选: 0=否, 1=是
/// </summary>
public int IsFeatured { get; set; }
}
/// <summary>
/// 设置排序权重入参
/// </summary>
public class AdminSetSortOrderInput
{
/// <summary>
/// 排序权重
/// </summary>
public int SortOrder { get; set; }
}
/// <summary>
/// 冻结/解冻入参
/// </summary>
public class AdminFreezeInput
{
/// <summary>
/// 状态: 1=解冻(通过), 2=冻结
/// </summary>
public int Status { get; set; }
}
#endregion
#region DTO
/// <summary>
/// 微信端社区Feed消息输出
/// </summary>
public class WxFeedMessageOutput
{
/// <summary>
/// 消息ID
/// </summary>
public long Id { get; set; }
/// <summary>
/// 期刊ID
/// </summary>
public long JournalId { get; set; }
/// <summary>
/// 作者用户ID
/// </summary>
public long UserId { get; set; }
/// <summary>
/// 消息内容
/// </summary>
public string Content { get; set; } = string.Empty;
/// <summary>
/// 配图
/// </summary>
public string? ImageUrl { get; set; }
/// <summary>
/// 消息类型
/// </summary>
public string Type { get; set; } = string.Empty;
/// <summary>
/// 点赞数
/// </summary>
public int LikeCount { get; set; }
/// <summary>
/// 是否精选
/// </summary>
public int IsFeatured { get; set; }
/// <summary>
/// 当前用户是否已点赞
/// </summary>
public bool IsLiked { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreatedAt { get; set; }
}
/// <summary>
/// 微信端社区Feed输出含游标
/// </summary>
public class WxFeedOutput
{
/// <summary>
/// 消息列表
/// </summary>
public List<WxFeedMessageOutput> Messages { get; set; } = new();
/// <summary>
/// 下一页游标为null表示没有更多数据
/// </summary>
public long? NextCursor { get; set; }
/// <summary>
/// 是否还有更多数据
/// </summary>
public bool HasMore { get; set; }
}
/// <summary>
/// 微信端点赞入参
/// </summary>
public class WxLikeInput
{
/// <summary>
/// 消息ID
/// </summary>
public long MessageId { get; set; }
}
/// <summary>
/// 微信端点赞输出
/// </summary>
public class WxLikeOutput
{
/// <summary>
/// 消息ID
/// </summary>
public long MessageId { get; set; }
/// <summary>
/// 当前点赞数
/// </summary>
public int LikeCount { get; set; }
/// <summary>
/// 是否已点赞
/// </summary>
public bool IsLiked { get; set; }
}
#endregion