|
|
@@ -3,7 +3,7 @@
|
|
|
/// <summary>
|
|
|
/// 枚举值服务
|
|
|
/// </summary>
|
|
|
-[ApiDescriptionSettings(Name = "SysEnumData", Order = 1000)]
|
|
|
+[ApiDescriptionSettings(Order = 1000)]
|
|
|
[AllowAnonymous]
|
|
|
public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
{
|
|
|
@@ -18,11 +18,11 @@ public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
/// 获取所有枚举值
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- [HttpGet("/sysEnumData/enumTypeList")]
|
|
|
- public dynamic GetEnumTypeList()
|
|
|
+ [HttpGet]
|
|
|
+ public List<EnumTypeOutput> GetEnumTypeList()
|
|
|
{
|
|
|
|
|
|
- List<dynamic> result = new List<dynamic>();
|
|
|
+ List<EnumTypeOutput> result = new List<EnumTypeOutput>();
|
|
|
var enumTypeList = App.EffectiveTypes.Where(t => t.IsEnum && _enumOptions.EntityAssemblyNames.Contains(t.Assembly.GetName().Name)).ToList();
|
|
|
|
|
|
foreach (var item in enumTypeList)
|
|
|
@@ -32,7 +32,7 @@ public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- private dynamic GetEnumDescription(Type type)
|
|
|
+ private EnumTypeOutput GetEnumDescription(Type type)
|
|
|
{
|
|
|
|
|
|
string description = type.Name;
|
|
|
@@ -43,12 +43,11 @@ public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
var att = ((DescriptionAttribute[])attrs)[0];
|
|
|
description = att.Description;
|
|
|
}
|
|
|
- return new
|
|
|
+ return new EnumTypeOutput
|
|
|
{
|
|
|
- Name = description,
|
|
|
- Code = type.Name,
|
|
|
- Sort = 100,
|
|
|
- Remark = description
|
|
|
+ TypeDescribe = description,
|
|
|
+ TypeName = type.Name,
|
|
|
+ TypeRemark = description
|
|
|
};
|
|
|
}
|
|
|
|
|
|
@@ -57,22 +56,15 @@ public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
/// </summary>
|
|
|
/// <param name="input"></param>
|
|
|
/// <returns></returns>
|
|
|
- [HttpGet("/sysEnumData/list")]
|
|
|
- public async Task<dynamic> GetEnumDataList([FromQuery] EnumDataInput input)
|
|
|
+ [HttpGet]
|
|
|
+ public List<EnumEntity> GetEnumDataList([FromQuery] EnumDataInput input)
|
|
|
{
|
|
|
// 查找枚举
|
|
|
var enumType = App.EffectiveTypes.FirstOrDefault(t => t.IsEnum && t.Name == input.EnumName);
|
|
|
- if (enumType == null)
|
|
|
- throw Oops.Oh(ErrorCodeEnum.D1502).StatusCode(405);
|
|
|
+ if (enumType is not { IsEnum: true })
|
|
|
+ throw Oops.Oh(ErrorCodeEnum.D1503);
|
|
|
|
|
|
- //// 获取枚举的Key和描述
|
|
|
- return await Task.Run(() =>
|
|
|
- EnumExtension.GetEnumDescDictionary(enumType)
|
|
|
- .Select(x => new EnumDataOutput
|
|
|
- {
|
|
|
- Code = x.Key,
|
|
|
- Value = x.Value
|
|
|
- }));
|
|
|
+ return enumType.EnumToList();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -80,33 +72,18 @@ public class SysEnumDataService : IDynamicApiController, ITransient
|
|
|
/// </summary>
|
|
|
/// <param name="input"></param>
|
|
|
/// <returns></returns>
|
|
|
- [HttpGet("/sysEnumData/listByFiled")]
|
|
|
- public async Task<dynamic> GetEnumDataListByField([FromQuery] QueryEnumDataInput input)
|
|
|
+ [HttpGet]
|
|
|
+ public List<EnumEntity> GetEnumDataListByField([FromQuery] QueryEnumDataInput input)
|
|
|
{
|
|
|
|
|
|
// 获取实体类型属性
|
|
|
- Type entityType = null;
|
|
|
-
|
|
|
- foreach (var item in _enumOptions.EntityAssemblyNames)
|
|
|
- {
|
|
|
- entityType = Type.GetType($"{item}.Entity.{input.EntityName}");
|
|
|
- if (entityType != null)
|
|
|
- break;
|
|
|
- }
|
|
|
- if (entityType == null) throw Oops.Oh(ErrorCodeEnum.D1504);
|
|
|
+ Type entityType = App.EffectiveTypes.FirstOrDefault(t =>t.Name == input.EntityName) ?? throw Oops.Oh(ErrorCodeEnum.D1504);
|
|
|
|
|
|
// 获取字段类型
|
|
|
var fieldType = entityType.GetProperties().FirstOrDefault(p => p.Name == input.FieldName)?.PropertyType;
|
|
|
if (fieldType is not { IsEnum: true })
|
|
|
throw Oops.Oh(ErrorCodeEnum.D1503);
|
|
|
|
|
|
- // 获取枚举的Key和描述
|
|
|
- return await Task.Run(() =>
|
|
|
- EnumExtension.GetEnumDescDictionary(fieldType)
|
|
|
- .Select(x => new EnumDataOutput
|
|
|
- {
|
|
|
- Code = x.Key,
|
|
|
- Value = x.Value
|
|
|
- }));
|
|
|
+ return fieldType.EnumToList();
|
|
|
}
|
|
|
}
|