refactor: 批量新增枚举类型并完成实体、DTO、服务层枚举替换
- 新增30+业务枚举类型覆盖用户、宠物、商城、社区、积分等模块 - 完成实体类、DTO、服务层的字符串枚举替换为强类型枚举 - 修复用户状态枚举名称变更,将Frozen改为Disabled - 新增批量发布社区消息接口与控制器实现 - 新增操作日志、积分管理、补偿任务相关服务与DTO
This commit is contained in:
201
QYZH.InteractiveMagazine.Models/Dto/OperationLogDto.cs
Normal file
201
QYZH.InteractiveMagazine.Models/Dto/OperationLogDto.cs
Normal file
@ -0,0 +1,201 @@
|
||||
namespace QYZH.InteractiveMagazine.Models.Dto;
|
||||
|
||||
/// <summary>
|
||||
/// 操作类型常量
|
||||
/// </summary>
|
||||
public static class OperationLogActionType
|
||||
{
|
||||
/// <summary>
|
||||
/// 手动增加积分
|
||||
/// </summary>
|
||||
public const string ManualAddPoints = "ManualAddPoints";
|
||||
|
||||
/// <summary>
|
||||
/// 手动扣除积分
|
||||
/// </summary>
|
||||
public const string ManualDeductPoints = "ManualDeductPoints";
|
||||
|
||||
/// <summary>
|
||||
/// 补偿任务手动重试
|
||||
/// </summary>
|
||||
public const string CompensationRetry = "CompensationRetry";
|
||||
|
||||
/// <summary>
|
||||
/// 补偿任务标记已解决
|
||||
/// </summary>
|
||||
public const string CompensationResolve = "CompensationResolve";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 目标类型常量
|
||||
/// </summary>
|
||||
public static class OperationLogTargetType
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户
|
||||
/// </summary>
|
||||
public const string User = "User";
|
||||
|
||||
/// <summary>
|
||||
/// 补偿任务
|
||||
/// </summary>
|
||||
public const string CompensationTask = "CompensationTask";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作日志分页查询输入
|
||||
/// </summary>
|
||||
public class OperationLogQueryInput : PageQueryModel
|
||||
{
|
||||
/// <summary>
|
||||
/// 按操作人用户名筛选(模糊查询)
|
||||
/// </summary>
|
||||
public string? OperatorName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 按操作类型筛选
|
||||
/// </summary>
|
||||
public string? ActionType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 按目标类型筛选
|
||||
/// </summary>
|
||||
public string? TargetType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 按目标记录Id筛选
|
||||
/// </summary>
|
||||
public long? TargetId { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作日志输出
|
||||
/// </summary>
|
||||
public class OperationLogOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 记录Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人Id
|
||||
/// </summary>
|
||||
public long OperatorId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人用户名
|
||||
/// </summary>
|
||||
public string OperatorName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 操作类型
|
||||
/// </summary>
|
||||
public string ActionType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 目标类型
|
||||
/// </summary>
|
||||
public string TargetType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 目标记录Id
|
||||
/// </summary>
|
||||
public long TargetId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标名称
|
||||
/// </summary>
|
||||
public string? TargetName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作详情
|
||||
/// </summary>
|
||||
public string? Detail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IP地址
|
||||
/// </summary>
|
||||
public string? IpAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 操作日志详情输出
|
||||
/// </summary>
|
||||
public class OperationLogDetailOutput
|
||||
{
|
||||
/// <summary>
|
||||
/// 记录Id
|
||||
/// </summary>
|
||||
public long Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作类型
|
||||
/// </summary>
|
||||
public string ActionType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 目标类型
|
||||
/// </summary>
|
||||
public string TargetType { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 目标记录Id
|
||||
/// </summary>
|
||||
public long TargetId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 目标名称
|
||||
/// </summary>
|
||||
public string? TargetName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作详情
|
||||
/// </summary>
|
||||
public string? Detail { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// IP地址
|
||||
/// </summary>
|
||||
public string? IpAddress { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作时间
|
||||
/// </summary>
|
||||
public DateTime CreatedAt { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人用户名
|
||||
/// </summary>
|
||||
public string OperatorName { get; set; } = string.Empty;
|
||||
|
||||
/// <summary>
|
||||
/// 操作人手机号(管理员表无此字段时可为空)
|
||||
/// </summary>
|
||||
public string? OperatorPhone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 操作人角色/类型
|
||||
/// </summary>
|
||||
public string? OperatorRole { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 被操作人用户名(当 TargetType 为 User 时)
|
||||
/// </summary>
|
||||
public string? TargetUserName { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 被操作人手机号(当 TargetType 为 User 时)
|
||||
/// </summary>
|
||||
public string? TargetUserPhone { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 被操作人头像(当 TargetType 为 User 时)
|
||||
/// </summary>
|
||||
public string? TargetUserAvatar { get; set; }
|
||||
}
|
||||
Reference in New Issue
Block a user