Sfoglia il codice sorgente

1、更新furion3.2.2 2、优化其他

zuohuaijun 3 anni fa
parent
commit
9c9294808a
25 ha cambiato i file con 134 aggiunte e 175 eliminazioni
  1. 1 1
      Admin.NET/Admin.NET.Application/AppConfig.json
  2. 1 5
      Admin.NET/Admin.NET.Application/Entity/Student.cs
  3. 3 5
      Admin.NET/Admin.NET.Application/Entity/TreeTest.cs
  4. 7 8
      Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj
  5. 32 40
      Admin.NET/Admin.NET.Core/Admin.NET.Core.xml
  6. 1 1
      Admin.NET/Admin.NET.Core/AdminNETConfig.json
  7. 2 8
      Admin.NET/Admin.NET.Core/Const/SqlSugarConst.cs
  8. 28 0
      Admin.NET/Admin.NET.Core/Enum/CardTypeEnum.cs
  9. 0 44
      Admin.NET/Admin.NET.Core/Extension/NewtonsoftJsonSerializerProvider .cs
  10. 10 0
      Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs
  11. 11 6
      Admin.NET/Admin.NET.Core/Filter/RequestActionFilter.cs
  12. 1 3
      Admin.NET/Admin.NET.Core/Service/CodeGen/CodeGenService.cs
  13. 4 8
      Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/DatabaseOutput.cs
  14. 1 1
      Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs
  15. 5 0
      Admin.NET/Admin.NET.Core/Service/WeChat/Dto/WechatPayInput.cs
  16. 2 0
      Admin.NET/Admin.NET.Core/Service/WeChat/WechatPayService.cs
  17. 3 2
      Admin.NET/Admin.NET.Core/Service/WeChat/WechatService.cs
  18. 0 1
      Admin.NET/Admin.NET.Core/Service/log/SysExLogService.cs
  19. 0 1
      Admin.NET/Admin.NET.Core/Service/log/SysOpLogService.cs
  20. 0 1
      Admin.NET/Admin.NET.Core/Service/log/SysVisLogService.cs
  21. 11 24
      Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs
  22. 0 1
      Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs
  23. 1 1
      Admin.NET/Admin.NET.UnitTest/Admin.NET.UnitTest.csproj
  24. 10 14
      Admin.NET/Admin.NET.Web.Core/Startup.cs
  25. 0 0
      Admin.NET/Admin.NET.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user

+ 1 - 1
Admin.NET/Admin.NET.Application/AppConfig.json

@@ -10,7 +10,7 @@
         "DbConnection": "DataSource=C:\\db\\Test.db"
       }
     ]
-},
+  },
   "Wechat": {
     //公众号
     "WechatAppId": "",

+ 1 - 5
Admin.NET/Admin.NET.Application/Entity/Student.cs

@@ -2,11 +2,7 @@
 using Admin.NET.Core;
 using SqlSugar;
 using System;
-using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace Admin.NET.Application.Entity
 {
@@ -36,4 +32,4 @@ namespace Admin.NET.Application.Entity
         [SugarColumn(ColumnDescription = "出生日期")]
         public DateTime BirthDate { get; set; }
     }
-}
+}

+ 3 - 5
Admin.NET/Admin.NET.Application/Entity/TreeTest.cs

@@ -1,11 +1,7 @@
 using Admin.NET.Application.Const;
 using Admin.NET.Core;
 using SqlSugar;
-using System;
 using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 
 namespace Admin.NET.Application.Entity
 {
@@ -20,14 +16,16 @@ namespace Admin.NET.Application.Entity
         /// 名称
         /// </summary>
         public string Name { get; set; }
+
         /// <summary>
         /// 父级
         /// </summary>
         public long ParentId { get; set; }//父级字段
+
         /// <summary>
         /// Child
         /// </summary>
         [SqlSugar.SugarColumn(IsIgnore = true)]
         public List<TreeTest> Child { get; set; }
     }
-}
+}

+ 7 - 8
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -19,17 +19,16 @@
 
   <ItemGroup>
     <PackageReference Include="Caching.CSRedis" Version="3.6.90" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.2.0" />
-    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.2.0" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.2.0" />
-    <PackageReference Include="Furion.Pure" Version="3.2.0" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.2.2" />
+    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.2.2" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.2.2" />
+    <PackageReference Include="Furion.Pure" Version="3.2.2" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="6.0.5" />
     <PackageReference Include="MySql.Data" Version="8.0.29" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.5" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.13.0" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.7.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.0.7.9-preview01" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.14.0" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.8.0" />
+    <PackageReference Include="SqlSugarCore" Version="5.0.7.9" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.18" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.12" />

+ 32 - 40
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -221,16 +221,11 @@
             默认表主键
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.SqlSugarDb">
+        <member name="F:Admin.NET.Core.SqlSugarConst.ConnectionConfigs">
             <summary>
             SqlSugar数据库链接集合(多库代码生成用)
             </summary>
         </member>
-        <member name="F:Admin.NET.Core.SqlSugarDb.connectionConfigs">
-            <summary>
-            SqlSugar数据库链接集合
-            </summary>
-        </member>
         <member name="T:Admin.NET.Core.EntityBaseId">
             <summary>
             框架实体基类Id
@@ -1547,6 +1542,26 @@
             Redis缓存
             </summary>
         </member>
+        <member name="T:Admin.NET.Core.CardTypeEnum">
+            <summary>
+            证件类型枚举
+            </summary>
+        </member>
+        <member name="F:Admin.NET.Core.CardTypeEnum.IDCard">
+            <summary>
+            身份证
+            </summary>
+        </member>
+        <member name="F:Admin.NET.Core.CardTypeEnum.GATCard">
+            <summary>
+            港澳台通行证
+            </summary>
+        </member>
+        <member name="F:Admin.NET.Core.CardTypeEnum.ForeignCard">
+            <summary>
+            外国人居留证
+            </summary>
+        </member>
         <member name="T:Admin.NET.Core.DataOpTypeEnum">
             <summary>
             数据操作类型枚举
@@ -2350,38 +2365,17 @@
             logo显示
             </summary>
         </member>
-        <member name="T:Admin.NET.Core.NewtonsoftJsonSerializerProvider">
+        <member name="T:Admin.NET.Core.ObjectExtension">
             <summary>
-            自定义序列化提供器Newtonsoft
+            对象拓展类
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.NewtonsoftJsonSerializerProvider.Serialize(System.Object,System.Object)">
-            <summary>        
-            序列化对象        
-            </summary>        
-            <param name="value"></param>        
-            <param name="jsonSerializerOptions"></param>        
-            <returns></returns>        
-        </member>
-        <member name="M:Admin.NET.Core.NewtonsoftJsonSerializerProvider.Deserialize``1(System.String,System.Object)">
-            <summary>        
-            反序列化字符串        
-            </summary>        
-            <typeparam name="T"></typeparam>        
-            <param name="json"></param>        
-            <param name="jsonSerializerOptions"></param>        
-            <returns></returns>        
-        </member>
-        <member name="M:Admin.NET.Core.NewtonsoftJsonSerializerProvider.GetSerializerOptions">
-            <summary>        
-            返回读取全局配置的 JSON 选项        
-            </summary>        
-            <returns></returns>        
-        </member>
-        <member name="T:Admin.NET.Core.ObjectExtension">
+        <member name="M:Admin.NET.Core.ObjectExtension.GetSqlSugarEntityOrder(System.Type)">
             <summary>
-            对象拓展类
+            获取实体排序
             </summary>
+            <param name="type">排序类型</param>
+            <returns>int</returns>
         </member>
         <member name="M:Admin.NET.Core.ObjectExtension.HasImplementedRawGeneric(System.Type,System.Type)">
             <summary>
@@ -5696,6 +5690,11 @@
             附加数据
             </summary>
         </member>
+        <member name="P:Admin.NET.Core.Service.WechatPayTransactionInput.GoodsTag">
+            <summary>
+            优惠标记
+            </summary>
+        </member>
         <member name="P:Admin.NET.Core.Service.WechatPayParaInput.PrepayId">
             <summary>
             订单Id
@@ -5902,13 +5901,6 @@
             初始化数据库结构
             </summary>
         </member>
-        <member name="M:Admin.NET.Core.SqlSugarSetup.GetSqlSugarEntityOrder(System.Type)">
-            <summary>
-            获取实体排序
-            </summary>
-            <param name="type">排序类型</param>
-            <returns>int</returns>
-        </member>
         <member name="M:Admin.NET.Core.SqlSugarSetup.SetDeletedEntityFilter(SqlSugar.SqlSugarProvider)">
             <summary>
             配置实体假删除过滤器

+ 1 - 1
Admin.NET/Admin.NET.Core/AdminNETConfig.json

@@ -39,7 +39,7 @@
     "WorkerId": 5 // 取值范围0~63,默认1
   },
   "Upload": {
-    "Path": "upload/{yyyy}/{MM}/{dd}", //文件上传目录
+    "Path": "upload/{yyyy}/{MM}/{dd}", // 文件上传目录
     "MaxSize": 1048576,
     "ContentType": [ "image/jpg", "image/png", "image/jpeg", "image/gif", "image/bmp", "text/plain", "application/pdf", "application/msword", "application/vnd.ms-excel", "application/vnd.ms-powerpoint", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ]
   },

+ 2 - 8
Admin.NET/Admin.NET.Core/Const/SqlSugarConst.cs

@@ -17,16 +17,10 @@ namespace Admin.NET.Core
         /// 默认表主键
         /// </summary>
         public const string PrimaryKey = "Id";
-    }
 
-    /// <summary>
-    /// SqlSugar数据库链接集合(多库代码生成用)
-    /// </summary>
-    public class SqlSugarDb
-    {
         /// <summary>
-        /// SqlSugar数据库链接集合
+        /// SqlSugar数据库链接集合(多库代码生成用)
         /// </summary>
-        public static List<ConnectionConfig> connectionConfigs = new List<ConnectionConfig>();
+        public static List<ConnectionConfig> ConnectionConfigs = new List<ConnectionConfig>();
     }
 }

+ 28 - 0
Admin.NET/Admin.NET.Core/Enum/CardTypeEnum.cs

@@ -0,0 +1,28 @@
+using System.ComponentModel;
+
+namespace Admin.NET.Core
+{
+    /// <summary>
+    /// 证件类型枚举
+    /// </summary>
+    public enum CardTypeEnum
+    {
+        /// <summary>
+        /// 身份证
+        /// </summary>
+        [Description("身份证")]
+        IDCard = 0,
+
+        /// <summary>
+        /// 港澳台通行证
+        /// </summary>
+        [Description("港澳台通行证")]
+        GATCard = 1,
+
+        /// <summary>
+        /// 外国人居留证
+        /// </summary>
+        [Description("外国人居留证")]
+        ForeignCard = 2
+    }
+}

+ 0 - 44
Admin.NET/Admin.NET.Core/Extension/NewtonsoftJsonSerializerProvider .cs

@@ -1,44 +0,0 @@
-using Furion;
-using Furion.DependencyInjection;
-using Furion.JsonSerialization;
-using Microsoft.AspNetCore.Mvc;
-using Newtonsoft.Json;
-
-namespace Admin.NET.Core
-{
-    /// <summary>
-    /// 自定义序列化提供器Newtonsoft
-    /// </summary>
-    public class NewtonsoftJsonSerializerProvider : IJsonSerializerProvider, ISingleton
-    {
-        /// <summary>        
-        /// 序列化对象        
-        /// </summary>        
-        /// <param name="value"></param>        
-        /// <param name="jsonSerializerOptions"></param>        
-        /// <returns></returns>        
-        public string Serialize(object value, object jsonSerializerOptions = null)
-        {
-            return JsonConvert.SerializeObject(value, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings);
-        }
-        /// <summary>        
-        /// 反序列化字符串        
-        /// </summary>        
-        /// <typeparam name="T"></typeparam>        
-        /// <param name="json"></param>        
-        /// <param name="jsonSerializerOptions"></param>        
-        /// <returns></returns>        
-        public T Deserialize<T>(string json, object jsonSerializerOptions = null)
-        {
-            return JsonConvert.DeserializeObject<T>(json, (jsonSerializerOptions ?? GetSerializerOptions()) as JsonSerializerSettings);
-        }
-        /// <summary>        
-        /// 返回读取全局配置的 JSON 选项        
-        /// </summary>        
-        /// <returns></returns>        
-        public object GetSerializerOptions()
-        {
-            return App.GetOptions<MvcNewtonsoftJsonOptions>()?.SerializerSettings;
-        }
-    }
-}

+ 10 - 0
Admin.NET/Admin.NET.Core/Extension/ObjectExtension.cs

@@ -16,6 +16,16 @@ namespace Admin.NET.Core
     [SuppressSniffer]
     public static class ObjectExtension
     {
+        /// <summary>
+        /// 获取实体排序
+        /// </summary>
+        /// <param name="type">排序类型</param>
+        /// <returns>int</returns>
+        public static int GetSqlSugarEntityOrder(this Type type)
+        {
+            return !type.IsDefined(typeof(SqlSugarEntityAttribute), true) ? 0 : type.GetCustomAttribute<SqlSugarEntityAttribute>(true).Order;
+        }
+
         /// <summary>
         /// 判断类型是否实现某个泛型
         /// </summary>

+ 11 - 6
Admin.NET/Admin.NET.Core/Filter/RequestActionFilter.cs

@@ -28,21 +28,26 @@ namespace Admin.NET.Core
 
         public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
         {
-            //判断是否需有禁用操作日志属性
+            // 是否有禁用操作日志属性
             if (context.ActionDescriptor.EndpointMetadata.Any(m => m.GetType() == typeof(NotLogAttribute)))
             {
                 await next();
                 return;
             }
+
+            // 是否开启操作日志
+            var value = await App.GetService<SysConfigService>().GetConfigCache(CommonConst.SysOpLogFlag);
+            if (string.IsNullOrWhiteSpace(value) || !bool.Parse(value))
+            {
+                await next();
+                return;
+            }
+
             var sw = new Stopwatch();
             sw.Start();
             var actionContext = await next();
             sw.Stop();
 
-            // 是否开启操作日志
-            var value = await App.GetService<SysConfigService>().GetConfigCache(CommonConst.SysOpLogFlag);
-            if (string.IsNullOrWhiteSpace(value) || !bool.Parse(value)) return;
-
             var httpContext = context.HttpContext;
             var httpRequest = httpContext.Request;
 
@@ -66,7 +71,7 @@ namespace Admin.NET.Core
                     ReqMethod = httpRequest.Method,
                     Param = context.ActionArguments.Count < 1 ? string.Empty : JSON.Serialize(context.ActionArguments),
                     Result = actionContext.Result?.GetType() == typeof(JsonResult) ? JSON.Serialize(actionContext.Result) : string.Empty,
-                    ElapsedTime = sw.ElapsedMilliseconds,                    
+                    ElapsedTime = sw.ElapsedMilliseconds,
                     UserName = httpContext.User?.FindFirstValue(ClaimConst.UserName),
                     RealName = httpContext.User?.FindFirstValue(ClaimConst.RealName)
                 }));

+ 1 - 3
Admin.NET/Admin.NET.Core/Service/CodeGen/CodeGenService.cs

@@ -128,9 +128,8 @@ namespace Admin.NET.Core.Service.CodeGen
         [HttpGet("codeGenerate/DatabaseList")]
         public async Task<List<DatabaseOutput>> GetDatabaseList()
         {
-            List<ConnectionConfig> list = SqlSugarDb.connectionConfigs;
             var result = new List<DatabaseOutput>();
-            foreach (var item in list)
+            foreach (var item in SqlSugarConst.ConnectionConfigs)
             {
                 result.Add(new DatabaseOutput()
                 {
@@ -142,7 +141,6 @@ namespace Admin.NET.Core.Service.CodeGen
             return await Task.FromResult(result);
         }
 
-
         /// <summary>
         /// 获取数据库表(实体)集合
         /// </summary>

+ 4 - 8
Admin.NET/Admin.NET.Core/Service/CodeGen/Dto/DatabaseOutput.cs

@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Admin.NET.Core.Service
+namespace Admin.NET.Core.Service
 {
     /// <summary>
     /// 多库代码生成库列表输出
@@ -15,13 +9,15 @@ namespace Admin.NET.Core.Service
         /// 库定位器名
         /// </summary>
         public dynamic DbConfigId { get; set; }
+
         /// <summary>
         /// 数据库类型
         /// </summary>
         public string DbType { get; set; }
+
         /// <summary>
         /// 数据库连接字符串
         /// </summary>
         public string ConnectionString { get; set; }
     }
-}
+}

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/File/SysFileService.cs

@@ -163,7 +163,7 @@ namespace Admin.NET.Core.Service
         {
             if (file == null) throw Oops.Oh(ErrorCodeEnum.D8000);
 
-            var path = _uploadOptions.Path;
+            string path = _uploadOptions.Path;
             Regex reg = new Regex(@"(\{.+?})");
             var match = reg.Matches(path);
             match.ToList().ForEach(a =>

+ 5 - 0
Admin.NET/Admin.NET.Core/Service/WeChat/Dto/WechatPayInput.cs

@@ -21,6 +21,11 @@
         /// 附加数据
         /// </summary>
         public string Attachment { get; set; }
+
+        /// <summary>
+        /// 优惠标记
+        /// </summary>
+        public string GoodsTag { get; set; }
     }
 
     public class WechatPayParaInput

+ 2 - 0
Admin.NET/Admin.NET.Core/Service/WeChat/WechatPayService.cs

@@ -78,6 +78,7 @@ namespace Admin.NET.Core.Service
                 AppId = _wechatPayOptions.AppId,
                 Description = input.Description,
                 Attachment = input.Attachment,
+                GoodsTag = input.GoodsTag,
                 ExpireTime = DateTimeOffset.Now.AddMinutes(10),
                 NotifyUrl = _payCallBackOptions.WechatPayUrl,
                 Amount = new CreatePayTransactionJsapiRequest.Types.Amount() { Total = input.Total },
@@ -94,6 +95,7 @@ namespace Admin.NET.Core.Service
                 OutTradeNumber = request.OutTradeNumber,
                 Description = input.Description,
                 Attachment = input.Attachment,
+                GoodsTag = input.GoodsTag,
                 Total = input.Total,
                 OpenId = input.OpenId
             };

+ 3 - 2
Admin.NET/Admin.NET.Core/Service/WeChat/WechatService.cs

@@ -101,8 +101,9 @@ namespace Admin.NET.Core.Service
                 wxUser.Avatar,
                 accessToken = JWTEncryption.Encrypt(new Dictionary<string, object>
                 {
-                    { ClaimConst.UserId, wxUser.Id },
-                    { ClaimConst.OpenId, wxUser.OpenId }
+                    { ClaimConst.UserId, wxUser.Id },                    
+                    { ClaimConst.OpenId, wxUser.OpenId },
+                    { ClaimConst.RealName, wxUser.NickName },
                 })
             };
         }

+ 0 - 1
Admin.NET/Admin.NET.Core/Service/log/SysExLogService.cs

@@ -1,7 +1,6 @@
 using Furion.DependencyInjection;
 using Furion.DynamicApiController;
 using Microsoft.AspNetCore.Mvc;
-using System.Collections.Generic;
 using System.Threading.Tasks;
 
 namespace Admin.NET.Core.Service

+ 0 - 1
Admin.NET/Admin.NET.Core/Service/log/SysOpLogService.cs

@@ -1,7 +1,6 @@
 using Furion.DependencyInjection;
 using Furion.DynamicApiController;
 using Microsoft.AspNetCore.Mvc;
-using System.Collections.Generic;
 using System.Threading.Tasks;
 
 namespace Admin.NET.Core.Service

+ 0 - 1
Admin.NET/Admin.NET.Core/Service/log/SysVisLogService.cs

@@ -1,7 +1,6 @@
 using Furion.DependencyInjection;
 using Furion.DynamicApiController;
 using Microsoft.AspNetCore.Mvc;
-using System.Collections.Generic;
 using System.Threading.Tasks;
 
 namespace Admin.NET.Core.Service

+ 11 - 24
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

@@ -5,7 +5,6 @@ using Microsoft.Extensions.DependencyInjection;
 using SqlSugar;
 using System;
 using System.Collections;
-using System.Collections.Generic;
 using System.ComponentModel.DataAnnotations;
 using System.IO;
 using System.Linq;
@@ -30,8 +29,7 @@ namespace Admin.NET.Core
                 var dbOptions = App.GetOptions<ConnectionStringsOptions>();
                 DealConnectionStr(ref dbOptions); // 处理本地库根目录路径
 
-                // var connectionConfigs = new List<ConnectionConfig>();
-                var connectionConfigs = SqlSugarDb.connectionConfigs; //方便多库生成
+                var connectionConfigs = SqlSugarConst.ConnectionConfigs; // 方便多库生成
                 var configureExternalServices = new ConfigureExternalServices
                 {
                     EntityService = (type, column) => // 修改列可空
@@ -77,14 +75,13 @@ namespace Admin.NET.Core
                         // 打印SQL语句
                         dbProvider.Aop.OnLogExecuting = (sql, pars) =>
                         {
-                            //if (sql.StartsWith("SELECT"))
-                            //    Console.ForegroundColor = ConsoleColor.Green;
-                            //if (sql.StartsWith("UPDATE") || sql.StartsWith("INSERT"))
-                            //    Console.ForegroundColor = ConsoleColor.White;
-                            //if (sql.StartsWith("DELETE"))
-                            //    Console.ForegroundColor = ConsoleColor.Blue;
-
-                            //Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
+                            if (sql.StartsWith("SELECT"))
+                                Console.ForegroundColor = ConsoleColor.Green;
+                            if (sql.StartsWith("UPDATE") || sql.StartsWith("INSERT"))
+                                Console.ForegroundColor = ConsoleColor.White;
+                            if (sql.StartsWith("DELETE"))
+                                Console.ForegroundColor = ConsoleColor.Blue;
+                            Console.WriteLine(sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
                             App.PrintToMiniProfiler("SqlSugar", "Info", sql + "\r\n" + db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
                         };
                         dbProvider.Aop.OnError = (ex) =>
@@ -125,8 +122,8 @@ namespace Admin.NET.Core
                             {
                                 if (entityInfo.PropertyName == "UpdateTime")
                                     entityInfo.SetValue(DateTime.Now);
-                                if (entityInfo.PropertyName == "UpdateUserId" && App.User != null)
-                                    entityInfo.SetValue(App.User.FindFirst(ClaimConst.UserId)?.Value);
+                                if (entityInfo.PropertyName == "UpdateUserId")
+                                    entityInfo.SetValue(App.User?.FindFirst(ClaimConst.UserId)?.Value);
                             }
                         };
 
@@ -165,7 +162,7 @@ namespace Admin.NET.Core
             // 获取所有实体表
             var entityTypes = App.EffectiveTypes.Where(u => !u.IsInterface && !u.IsAbstract && u.IsClass
             && u.IsDefined(typeof(SqlSugarEntityAttribute), false))
-            .OrderByDescending(u => GetSqlSugarEntityOrder(u));
+            .OrderByDescending(u => u.GetSqlSugarEntityOrder());
             if (!entityTypes.Any()) return;
             // 初始化库表结构
             foreach (var entityType in entityTypes)
@@ -207,16 +204,6 @@ namespace Admin.NET.Core
             }
         }
 
-        /// <summary>
-        /// 获取实体排序
-        /// </summary>
-        /// <param name="type">排序类型</param>
-        /// <returns>int</returns>
-        private static int GetSqlSugarEntityOrder(Type type)
-        {
-            return !type.IsDefined(typeof(SqlSugarEntityAttribute), true) ? 0 : type.GetCustomAttribute<SqlSugarEntityAttribute>(true).Order;
-        }
-
         /// <summary>
         /// 配置实体假删除过滤器
         /// </summary>

+ 0 - 1
Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs

@@ -1,7 +1,6 @@
 using Furion;
 using Furion.DataValidation;
 using Furion.DependencyInjection;
-using Furion.JsonSerialization;
 using Furion.UnifyResult;
 using Furion.UnifyResult.Internal;
 using Microsoft.AspNetCore.Http;

+ 1 - 1
Admin.NET/Admin.NET.UnitTest/Admin.NET.UnitTest.csproj

@@ -8,7 +8,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0-preview-20220401-08" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
     <PackageReference Include="xunit" Version="2.4.2-pre.12" />
     <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
       <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

+ 10 - 14
Admin.NET/Admin.NET.Web.Core/Startup.cs

@@ -4,8 +4,6 @@ using Microsoft.AspNetCore.Builder;
 using Microsoft.AspNetCore.Hosting;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.Hosting;
-using Newtonsoft.Json;
-using Newtonsoft.Json.Serialization;
 using OnceMi.AspNetCore.OSS;
 using Serilog;
 using System.Text.Encodings.Web;
@@ -40,18 +38,16 @@ namespace Admin.NET.Web.Core
             services.AddTaskScheduler();
 
             services.AddControllersWithViews()
-               .AddMvcFilter<RequestActionFilter>()
-               .AddNewtonsoftJson(options =>
-               {
-                    // 首字母小写(驼峰样式)
-                   options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
-                    // 时间格式化
-                   options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
-                    // 忽略循环引用
-                   options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
-                    // 忽略空值
-                    // options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
-               }).AddInjectWithUnifyResult<AdminResultProvider>();
+                .AddMvcFilter<RequestActionFilter>()
+                .AddJsonOptions(options =>
+                {
+                    options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; // 响应驼峰命名
+                    options.JsonSerializerOptions.PropertyNameCaseInsensitive = true; // 忽略大小写
+                    options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles; // 忽略循环引用
+                    options.JsonSerializerOptions.Converters.AddDateFormatString("yyyy-MM-dd HH:mm:ss"); // 时间格式化
+                    options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); // 中文编码
+                })
+                .AddInjectWithUnifyResult<AdminResultProvider>();
 
             // 注册日志事件订阅者(支持自定义消息队列组件)
             services.AddEventBus(builder =>

File diff suppressed because it is too large
+ 0 - 0
Admin.NET/Admin.NET.Web.Entry/Properties/PublishProfiles/FolderProfile.pubxml.user


Some files were not shown because too many files changed in this diff