Quellcode durchsuchen

😎清理格式化代码

zuohuaijun vor 2 Jahren
Ursprung
Commit
0ad4a34844

+ 32 - 24
Admin.NET/Admin.NET.Core/Enum/HttpMethodEnum.cs

@@ -9,54 +9,62 @@
 namespace Admin.NET.Core;
 
 /// <summary>
-/// HTTP请求方法
+/// HTTP请求方法枚举
 /// </summary>
-[Description("HTTP请求方法")]
+[Description("HTTP请求方法枚举")]
 public enum HttpMethodEnum
 {
     /// <summary>
-    ///  HTTP "CONNECT" method.
+    ///  HTTP "GET" method.
     /// </summary>
-    [Description("HTTP \"CONNECT\" method.")]
-    Connect,
+    [Description("HTTP \"GET\" method.")]
+    Get,
+
+    /// <summary>
+    ///  HTTP "POST" method.
+    /// </summary>
+    [Description("HTTP \"POST\" method.")]
+    Post,
+
+    /// <summary>
+    /// HTTP "PUT" method.
+    /// </summary>
+    [Description(" HTTP \"PUT\" method.")]
+    Put,
+
     /// <summary>
     /// HTTP "DELETE" method.
     /// </summary>
     [Description("HTTP \"DELETE\" method.")]
     Delete,
+
     /// <summary>
-    ///  HTTP "GET" method.
+    /// HTTP "PATCH" method.
     /// </summary>
-    [Description("HTTP \"GET\" method.")]
-    Get,
+    [Description("HTTP \"PATCH\" method. ")]
+    Patch,
+
     /// <summary>
     /// HTTP "HEAD" method.
     /// </summary>
     [Description("HTTP \"HEAD\" method.")]
     Head,
+
     /// <summary>
     /// HTTP "OPTIONS" method.
     /// </summary>
     [Description("HTTP \"OPTIONS\" method.")]
     Options,
-    /// <summary>
-    /// HTTP "PATCH" method. 
-    /// </summary>    
-    [Description("HTTP \"PATCH\" method. ")]
-    Patch,
-    /// <summary>
-    ///  HTTP "POST" method.
-    /// </summary>    
-    [Description("HTTP \"POST\" method.")]
-    Post,
-    /// <summary>
-    /// HTTP "PUT" method.
-    /// </summary>    
-    [Description(" HTTP \"PUT\" method.")]
-    Put,
+
     /// <summary>
     /// HTTP "TRACE" method.
     /// </summary>
     [Description(" HTTP \"TRACE\" method.")]
-    Trace
+    Trace,
+
+    /// <summary>
+    ///  HTTP "CONNECT" method.
+    /// </summary>
+    [Description("HTTP \"CONNECT\" method.")]
+    Connect
 }

+ 26 - 0
Admin.NET/Admin.NET.Core/Service/OpenAccess/Dto/OpenAccessInput.cs

@@ -46,4 +46,30 @@ public class UpdateOpenAccessInput : AddOpenAccessInput
 
 public class DeleteOpenAccessInput : BaseIdInput
 {
+}
+
+public class GenerateSignatureInput
+{
+    /// <summary>
+    /// 密钥
+    /// </summary>
+    [Required(ErrorMessage = "密钥不能为空")]
+    public string AppSecret { get; set; }
+
+    /// <summary>
+    /// 身份标识
+    /// </summary>
+    [Required(ErrorMessage = "身份标识不能为空")]
+    public string AccessKey { get; set; }
+
+    /// <summary>
+    /// 请求方法
+    /// </summary>
+    public HttpMethodEnum Method { get; set; }
+
+    /// <summary>
+    /// 请求接口地址
+    /// </summary>
+    [Required(ErrorMessage = "请求接口地址不能为空")]
+    public string Url { get; set; }
 }

+ 8 - 13
Admin.NET/Admin.NET.Core/Service/OpenAccess/SysOpenAccessService.cs

@@ -33,34 +33,29 @@ public class SysOpenAccessService : IDynamicApiController, ITransient
     /// <summary>
     /// 获取生成的签名
     /// </summary>
-    /// <param name="appSecret">密钥</param>
-    /// <param name="accessKey">身份标识</param>
-    /// <param name="method">请求方法</param>
-    /// <param name="url">请求接口地址</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    [HttpGet]
     [DisplayName("获取生成的签名")]
-    public string GetGenerateSignature([FromQuery] string appSecret, string accessKey, HttpMethodEnum method, string url)
+    public string GetGenerateSignature([FromQuery] GenerateSignatureInput input)
     {
         // 密钥
-        var appSecretByte = Encoding.UTF8.GetBytes(appSecret);
+        var appSecretByte = Encoding.UTF8.GetBytes(input.AppSecret);
         // 时间戳,精确到秒
         DateTimeOffset currentTime = DateTimeOffset.UtcNow;
         var timestamp = currentTime.ToUnixTimeSeconds();
-        // 唯一随机数,可以使用guid或者雪花id,以下是sqlsugar提供获取雪花id的方法
+        // 唯一随机数,可以使用guid或者雪花id,以下是sqlsugar提供获取雪花id的方法
         var nonce = YitIdHelper.NextId();
-        // 请求方式
-        var sMethod = method.ToString();
+        //// 请求方式
+        //var sMethod = method.ToString();
         // 拼接参数
-        var parameter = $"{method}&{url}&{accessKey}&{timestamp}&{nonce}";
-        //使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),以appSecretByte 作为密钥,对上面拼接的参数进行计算签名,所得签名进行 Base-64 编码
+        var parameter = $"{input.Method}&{input.Url}&{input.AccessKey}&{timestamp}&{nonce}";
+        // 使用 HMAC-SHA256 协议创建基于哈希的消息身份验证代码 (HMAC),以appSecretByte 作为密钥,对上面拼接的参数进行计算签名,所得签名进行 Base-64 编码
         using HMAC hmac = new HMACSHA256();
         hmac.Key = appSecretByte;
         var sign = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(parameter)));
         return sign;
     }
 
-
     /// <summary>
     /// 获取开放接口身份分页列表 🔖
     /// </summary>

+ 44 - 30
Admin.NET/Admin.NET.Core/SqlSugar/ISqlSugarRepository.cs

@@ -8,72 +8,86 @@
 
 namespace Admin.NET.Core;
 
+/// <summary>
+/// 分表操作仓储接口
+/// </summary>
+/// <typeparam name="T"></typeparam>
 public interface ISqlSugarRepository<T> : ISugarRepository, ISimpleClient<T> where T : class, new()
 {
     /// <summary>
-    /// 分表批量创建数据
+    /// 创建数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableInsertAsync(List<T> input);
+    Task<bool> SplitTableInsertAsync(T input);
+
     /// <summary>
-    /// 分表创建数据
+    /// 批量创建数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableInsertAsync(T input);
+    Task<bool> SplitTableInsertAsync(List<T> input);
+
     /// <summary>
-    /// 分表批量删除数据
+    /// 更新数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableDeleteableAsync(List<T> input);
+    Task<bool> SplitTableUpdateAsync(T input);
+
     /// <summary>
-    /// 分表删除数据
+    /// 批量更新数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableDeleteableAsync(T input);
+    Task<bool> SplitTableUpdateAsync(List<T> input);
+
     /// <summary>
-    /// 分表批量更新数据
+    /// 删除数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableUpdateAsync(List<T> input);
+    Task<bool> SplitTableDeleteableAsync(T input);
+
     /// <summary>
-    /// 分表更新数据
+    /// 批量删除数据
     /// </summary>
-    /// <param name="input">数据</param>
+    /// <param name="input"></param>
     /// <returns></returns>
-    Task<bool> SplitTableUpdateAsync(T input);
+    Task<bool> SplitTableDeleteableAsync(List<T> input);
+
     /// <summary>
-    /// 分表判断是否存在
+    /// 获取第一条
     /// </summary>
     /// <param name="whereExpression"></param>
     /// <returns></returns>
-    Task<bool> SplitTableIsAnyAsync(Expression<Func<T, bool>> whereExpression);
+    Task<T> SplitTableGetFirstAsync(Expression<Func<T, bool>> whereExpression);
+
     /// <summary>
-    /// 分表获取列表
+    /// 判断是否存在
     /// </summary>
-    /// <param name="whereExpression">条件</param>
+    /// <param name="whereExpression"></param>
     /// <returns></returns>
-    Task<List<T>> SplitTableGetListAsync(Expression<Func<T, bool>> whereExpression);
+    Task<bool> SplitTableIsAnyAsync(Expression<Func<T, bool>> whereExpression);
+
     /// <summary>
-    /// 分表获取列表
+    /// 获取列表
     /// </summary>
     /// <returns></returns>
     Task<List<T>> SplitTableGetListAsync();
+
     /// <summary>
-    /// 分表GetFirstAsyn
+    /// 获取列表
     /// </summary>
     /// <param name="whereExpression"></param>
     /// <returns></returns>
-    Task<T> SplitTableGetFirstAsync(Expression<Func<T, bool>> whereExpression);
+    Task<List<T>> SplitTableGetListAsync(Expression<Func<T, bool>> whereExpression);
+
     /// <summary>
-    /// 分表获取列表
+    /// 获取列表
     /// </summary>
-    /// <param name="whereExpression">条件</param>
-    /// <param name="tableNames">分表表名</param>
+    /// <param name="whereExpression"></param>
+    /// <param name="tableNames">表名</param>
     /// <returns></returns>
     Task<List<T>> SplitTableGetListAsync(Expression<Func<T, bool>> whereExpression, string[] tableNames);
-}
+}

+ 15 - 2
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarRepository.cs

@@ -47,50 +47,63 @@ public class SqlSugarRepository<T> : SimpleClient<T>, ISqlSugarRepository<T> whe
         if (sqlSugarScopeProviderTenant == null) return;
         base.Context = sqlSugarScopeProviderTenant;
     }
+
     #region 分表操作
+
     public async Task<bool> SplitTableInsertAsync(T input)
     {
         return await base.AsInsertable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public async Task<bool> SplitTableInsertAsync(List<T> input)
     {
         return await base.AsInsertable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public async Task<bool> SplitTableUpdateAsync(T input)
     {
         return await base.AsUpdateable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public async Task<bool> SplitTableUpdateAsync(List<T> input)
     {
         return await base.AsUpdateable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public async Task<bool> SplitTableDeleteableAsync(T input)
     {
         return await base.Context.Deleteable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public async Task<bool> SplitTableDeleteableAsync(List<T> input)
     {
         return await base.Context.Deleteable(input).SplitTable().ExecuteCommandAsync() > 0;
     }
+
     public Task<T> SplitTableGetFirstAsync(Expression<Func<T, bool>> whereExpression)
     {
         return base.AsQueryable().SplitTable().FirstAsync(whereExpression);
     }
+
     public Task<bool> SplitTableIsAnyAsync(Expression<Func<T, bool>> whereExpression)
     {
         return base.Context.Queryable<T>().Where(whereExpression).SplitTable().AnyAsync();
     }
+
     public Task<List<T>> SplitTableGetListAsync()
     {
         return Context.Queryable<T>().SplitTable().ToListAsync();
     }
+
     public Task<List<T>> SplitTableGetListAsync(Expression<Func<T, bool>> whereExpression)
     {
         return Context.Queryable<T>().Where(whereExpression).SplitTable().ToListAsync();
     }
+
     public Task<List<T>> SplitTableGetListAsync(Expression<Func<T, bool>> whereExpression, string[] tableNames)
     {
         return Context.Queryable<T>().Where(whereExpression).SplitTable(t => t.InTableNames(tableNames)).ToListAsync();
     }
-    #endregion
-}
+
+    #endregion 分表操作
+}