refactor: 完善枚举系统与状态类型转换,新增枚举管理接口
1. 为所有枚举添加Description特性用于中文描述 2. 移除实体类中冗余的状态字段注释与定义 3. 将所有枚举状态参数改为int类型转换,统一数据交互格式 4. 新增系统管理枚举查询接口与实现,支持获取所有枚举元数据 5. 调整宠物服务模板状态更新接口参数类型
This commit is contained in:
73
QYZH.InteractiveMagazine.Service/SystemManagementService.cs
Normal file
73
QYZH.InteractiveMagazine.Service/SystemManagementService.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.ComponentModel;
|
||||
using System.Reflection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using QYZH.InteractiveMagazine.IService;
|
||||
using QYZH.InteractiveMagazine.Models.Dto.SystemManagement;
|
||||
|
||||
namespace QYZH.InteractiveMagazine.Service;
|
||||
|
||||
/// <summary>
|
||||
/// 系统管理服务实现
|
||||
/// </summary>
|
||||
public class SystemManagementService : ISystemManagementService
|
||||
{
|
||||
private readonly ILogger<SystemManagementService> _logger;
|
||||
|
||||
public SystemManagementService(ILogger<SystemManagementService> logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
public Task<List<EnumInfoOutput>> GetAllEnumsAsync()
|
||||
{
|
||||
_logger.LogInformation("开始获取所有枚举信息");
|
||||
|
||||
var enumAssembly = typeof(QYZH.InteractiveMagazine.Models.Enum.AdminUserStatusEnum).Assembly;
|
||||
var enumNamespace = "QYZH.InteractiveMagazine.Models.Enum";
|
||||
|
||||
var enumTypes = enumAssembly.GetTypes()
|
||||
.Where(t => t.IsEnum && t.Namespace == enumNamespace)
|
||||
.OrderBy(t => t.Name)
|
||||
.ToList();
|
||||
|
||||
var result = new List<EnumInfoOutput>();
|
||||
|
||||
foreach (var enumType in enumTypes)
|
||||
{
|
||||
var enumInfo = new EnumInfoOutput
|
||||
{
|
||||
EnumName = enumType.Name
|
||||
};
|
||||
|
||||
var fields = Enum.GetValues(enumType)
|
||||
.Cast<object>()
|
||||
.Select(value => new
|
||||
{
|
||||
Name = Enum.GetName(enumType, value),
|
||||
Value = Convert.ToInt32(value),
|
||||
Field = enumType.GetField(value.ToString()!)
|
||||
})
|
||||
.ToList();
|
||||
|
||||
foreach (var field in fields)
|
||||
{
|
||||
var description = field.Field?
|
||||
.GetCustomAttribute<DescriptionAttribute>()?
|
||||
.Description;
|
||||
|
||||
enumInfo.Items.Add(new EnumItemDto
|
||||
{
|
||||
Name = field.Name!,
|
||||
Value = field.Value,
|
||||
Description = description
|
||||
});
|
||||
}
|
||||
|
||||
result.Add(enumInfo);
|
||||
}
|
||||
|
||||
_logger.LogInformation("获取枚举信息完成,共 {Count} 个枚举", result.Count);
|
||||
|
||||
return Task.FromResult(result);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user