refactor: 批量新增枚举类型并完成实体、DTO、服务层枚举替换

- 新增30+业务枚举类型覆盖用户、宠物、商城、社区、积分等模块
- 完成实体类、DTO、服务层的字符串枚举替换为强类型枚举
- 修复用户状态枚举名称变更,将Frozen改为Disabled
- 新增批量发布社区消息接口与控制器实现
- 新增操作日志、积分管理、补偿任务相关服务与DTO
This commit is contained in:
glz
2026-06-08 16:57:44 +08:00
parent 698c404b72
commit 78b686f9e5
116 changed files with 4861 additions and 307 deletions

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -32,7 +33,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Editor
/// Nullable:False
/// </summary>
public string Type {get;set;}
public AdminUserTypeEnum Type {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -40,13 +41,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Daily
/// Nullable:False
/// </summary>
public string Type {get;set;}
public CheckInConfigTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public string Status {get;set;}
public CheckInConfigStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -52,13 +53,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type {get;set;}
/// <summary>
/// Desc:状态: Success
/// Default:Success
/// Nullable:False
/// </summary>
public string Status {get;set;}
public CheckInRecordTypeEnum Type { get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -79,7 +80,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Article
/// Nullable:False
/// </summary>
public string Type { get; set; }
public MessageTypeEnum Type { get; set; }
/// <summary>
/// Desc:点赞数

View File

@ -1,11 +1,12 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
///<summary>
///模板评论表
///</summary>
[SugarTable("MessageComment")]
[SugarTable("CommunityMessageComment")]
public partial class CommunityMessageComment : SqlSugarBaseEntity
{
public CommunityMessageComment(){
@ -39,13 +40,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:TemplateComment
/// Nullable:False
/// </summary>
public string Type {get;set;}
public CommunityMessageCommentTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Published, Hidden
/// Default:Published
/// Nullable:False
/// </summary>
public string Status {get;set;}
public CommunityMessageCommentStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -32,7 +33,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Like
/// Nullable:False
/// </summary>
public string Type { get; set; }
public CommunityMessageLikeTypeEnum Type { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -33,13 +34,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Neutral
/// Nullable:False
/// </summary>
public string Type {get;set;}
public CommunityTemplateSentenceTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public string Status {get;set;}
public CommunityTemplateSentenceStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -19,7 +20,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:False
/// </summary>
public string TaskType { get; set; }
public int TaskType { get; set; }
/// <summary>
/// Desc:业务来源(如 CheckIn、Purchase、Activity
@ -82,7 +83,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Pending
/// Nullable:False
/// </summary>
public new string Status { get; set; }
public CompensationTaskStatusEnum Status { get; set; }
/// <summary>
/// Desc:最后处理时间

View File

@ -2,6 +2,7 @@
using System.Linq;
using System.Text;
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -98,7 +99,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Pending
/// Nullable:False
/// </summary>
public string Status {get;set;}
public DotFileStatusEnum Status {get;set;}
/// <summary>
/// Desc:

View File

@ -2,6 +2,7 @@
using System.Linq;
using System.Text;
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -63,7 +64,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Pending
/// Nullable:False
/// </summary>
public string Status {get;set;}
public DotFileDetailStatusEnum Status {get;set;}
/// <summary>
/// Desc:

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -64,6 +65,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Success
/// Nullable:False
/// </summary>
public new string Status { get; set; }
public ExchangeRecordStatusEnum Status { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -80,13 +81,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type {get;set;}
public JournalTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Draft, Published, Archived
/// Default:Draft
/// Nullable:False
/// </summary>
public string Status {get;set;}
public JournalStatusEnum Status {get;set;}
}
}

View File

@ -1,7 +1,8 @@
using System;
using QYZH.InteractiveMagazine.Models.Enum;
using SqlSugar;
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -64,7 +65,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:0
/// Nullable:False
/// </summary>
public int Type {get;set;}
public JournalCatalogTypeEnum Type {get;set;}
}

View File

@ -1,7 +1,8 @@
using System;
using QYZH.InteractiveMagazine.Models.Enum;
using SqlSugar;
using System;
using System.Linq;
using System.Text;
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -42,7 +43,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:False
/// </summary>
public int Type {get;set;}
public JournalPageTaskTypeEnum Type {get;set;}
/// <summary>
/// Desc:任务

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -47,7 +48,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Pet
/// Nullable:False
/// </summary>
public string Type { get; set; }
public MedalTypeEnum Type { get; set; }
/// <summary>
/// Desc:书id

View File

@ -0,0 +1,68 @@
using SqlSugar;
namespace QYZH.InteractiveMagazine.Models.Entity;
/// <summary>
/// 操作日志表 — 记录后台管理员的所有手动操作
/// </summary>
[SugarTable("OperationLog")]
public partial class OperationLog : SqlSugarBaseEntity
{
public OperationLog() { }
/// <summary>
/// Desc:操作人Id管理员Id
/// Default:
/// Nullable:False
/// </summary>
public long OperatorId { get; set; }
/// <summary>
/// Desc:操作人用户名
/// Default:
/// Nullable:False
/// </summary>
public string OperatorName { get; set; }
/// <summary>
/// Desc:操作类型ManualAddPoints/ManualDeductPoints/CompensationRetry/CompensationResolve
/// Default:
/// Nullable:False
/// </summary>
public string ActionType { get; set; }
/// <summary>
/// Desc:目标类型User/CompensationTask
/// Default:
/// Nullable:False
/// </summary>
public string TargetType { get; set; }
/// <summary>
/// Desc:目标记录Id
/// Default:
/// Nullable:False
/// </summary>
public long TargetId { get; set; }
/// <summary>
/// Desc:目标名称(用户昵称/任务描述等,便于展示)
/// Default:
/// Nullable:True
/// </summary>
public string? TargetName { get; set; }
/// <summary>
/// Desc:操作详情JSON格式记录操作参数和结果
/// Default:
/// Nullable:True
/// </summary>
public string? Detail { get; set; }
/// <summary>
/// Desc:操作IP地址
/// Default:
/// Nullable:True
/// </summary>
public string? IpAddress { get; set; }
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -78,13 +79,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public PetEvolutionTypeEnum Type { get; set; }
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public new string Status { get; set; }
public PetEvolutionStatusEnum Status { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -60,13 +61,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type {get;set;}
public PetFeedingRecordTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态
/// Default:Success
/// Nullable:False
/// </summary>
public string Status {get;set;}
public PetFeedingRecordStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -50,6 +51,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public PetSkinTypeEnum Type { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -43,6 +44,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public PetSkinImageTypeEnum Type { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -50,13 +51,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public PetTemplateTypeEnum Type { get; set; }
/// <summary>
/// Desc:状态: Active, Inactive
/// Default:Active
/// Nullable:False
/// </summary>
public new string Status { get; set; }
public PetTemplateStatusEnum Status { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -60,13 +61,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:True
/// </summary>
public string Type {get;set;}
public PointsFlowTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Success, Failed, Pending
/// Default:Success
/// Nullable:False
/// </summary>
public string Status {get;set;}
public PointsRecordStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -46,7 +47,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:False
/// </summary>
public string Type {get;set;}
public ProductTypeEnum Type {get;set;}
/// <summary>
/// Desc:售卖状态: OnSale, OffSale

View File

@ -14,7 +14,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
[SugarColumn(IsPrimaryKey = true, ColumnName = "Id")]
public long Id { get; set; } = YitIdHelper.NextId();
/// <summary>
/// Desc:状态 0禁用 1启用
/// Desc:
/// Default:1
/// Nullable:False
/// </summary>

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -52,13 +53,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:True
/// </summary>
public string Type {get;set;}
public UserBagTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Available, Expired
/// Default:Available
/// Nullable:False
/// </summary>
public string Status {get;set;}
public UserBagStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -35,7 +36,7 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "Type")]
public string Type { get; set; }
public UserJournalTypeEnum Type { get; set; }
/// <summary>
/// Desc:状态: Active(正常), Inactive(失效)
@ -43,6 +44,6 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Nullable:False
/// </summary>
[SugarColumn(ColumnName = "Status")]
public new string Status { get; set; }
public UserJournalStatusEnum Status { get; set; }
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -38,13 +39,13 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:
/// Nullable:True
/// </summary>
public string Type {get;set;}
public UserMedalTypeEnum Type {get;set;}
/// <summary>
/// Desc:状态: Awarded, Revoked
/// Default:Awarded
/// Nullable:False
/// </summary>
public string Status {get;set;}
public UserMedalStatusEnum Status {get;set;}
}
}

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -67,14 +68,14 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public UserPetTypeEnum Type { get; set; }
/// <summary>
/// Desc:状态: Inactive, Active, Sleeping
/// Default:Inactive
/// Nullable:False
/// </summary>
public new string Status { get; set; }
public UserPetStatusEnum Status { get; set; }
/// <summary>
/// 理解力

View File

@ -1,4 +1,5 @@
using SqlSugar;
using QYZH.InteractiveMagazine.Models.Enum;
namespace QYZH.InteractiveMagazine.Models.Entity
{
@ -39,14 +40,14 @@ namespace QYZH.InteractiveMagazine.Models.Entity
/// Default:Normal
/// Nullable:False
/// </summary>
public string Type { get; set; }
public UsersTypeEnum Type { get; set; }
/// <summary>
/// Desc:状态: Active, Disabled
/// Default:Active
/// Nullable:False
/// </summary>
public string Status { get; set; }
public UserStatusEnum Status { get; set; }
/// <summary>
/// Desc:微信OpenId
/// Default: