Преглед на файлове

fixup! fix: 解决不同程序集下存在同名枚举类的问题

喵你个旺呀 преди 1 година
родител
ревизия
1d3b1dda82

+ 3 - 0
Admin.NET/Admin.NET.Application/GlobalUsings.cs

@@ -6,10 +6,13 @@
 
 global using Admin.NET.Core;
 global using Furion;
+global using Furion.DependencyInjection;
 global using Furion.DynamicApiController;
+global using Furion.FriendlyException;
 global using Microsoft.AspNetCore.Authorization;
 global using Microsoft.AspNetCore.Mvc;
 global using Microsoft.Extensions.DependencyInjection;
 global using System;
 global using System.Collections.Generic;
+global using System.ComponentModel;
 global using System.Threading.Tasks;

+ 1 - 1
Admin.NET/Admin.NET.Core/Job/EnumToDictJob.cs

@@ -37,7 +37,7 @@ public class EnumToDictJob : IJob
         // 校验枚举类命名规范,字典相关功能中需要通过后缀判断是否为枚举类型
         Console.ForegroundColor = ConsoleColor.Red;
         foreach (var dictType in sysDictTypeList.Where(x => !x.Code.EndsWith("Enum")))
-            Console.WriteLine($"【{DateTime.Now}】系统枚举转换字典的枚举类名称必须以Enum结尾: {dictType.Code} ({dictType.Name})");
+            Console.WriteLine($"【{DateTime.Now}】系统枚举转换字典的枚举类名称必须以Enum结尾: {dictType.Code} ({dictType.Name}-{dictType.Remark})");
         sysDictTypeList = sysDictTypeList.Where(x => x.Code.EndsWith("Enum")).ToList();
 
         await SyncEnumToDictInfoAsync(db, sysDictTypeList);

+ 4 - 2
Admin.NET/Admin.NET.Core/Service/Enum/SysEnumService.cs

@@ -32,12 +32,14 @@ public class SysEnumService : IDynamicApiController, ITransient
             .OrderBy(u => u.Name).ThenBy(u => u.FullName)
             .ToList();
 
-        // 如果存在同名枚举类,则依次增加 "_序号" 
+        // 如果存在同名枚举类,则依次增加 "_序号" 
         var list = enumTypeList.Select(GetEnumDescription).ToList();
         foreach (var enumType in list.GroupBy(u => u.TypeName).Where(g => g.Count() > 1))
         {
             int i = 1;
-            foreach (var item in list.Where(u => u.TypeName == enumType.Key).Skip(1)) item.TypeName = $"{item.TypeName}_{i++}";
+            // 过滤框架中的枚举
+            var repList = list.Where(u => u.TypeName == enumType.Key).Where(u => !u.TypeFullName.StartsWith(typeof(AccountTypeEnum).Namespace!));
+            foreach (var item in repList) item.TypeName = $"{i++}_{item.TypeName}";
         }
         return list;
     }