From 777e5ea9ab2c6bfaf8f53451163551b324dacc8e Mon Sep 17 00:00:00 2001
From: wanggaofeng <15601716045@163.com>
Date: Tue, 2 Jan 2024 21:11:28 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 HttpClientStudy.UnitTest/GlobalUsings.cs      | 11 +++
 .../WebApp/BaseResultTest.cs                  | 32 +++----
 HttpClientStudy.WebApp/BaseResult.cs          | 93 ++++++++++++++-----
 3 files changed, 95 insertions(+), 41 deletions(-)

diff --git a/HttpClientStudy.UnitTest/GlobalUsings.cs b/HttpClientStudy.UnitTest/GlobalUsings.cs
index 4cc2447..b5b9a32 100644
--- a/HttpClientStudy.UnitTest/GlobalUsings.cs
+++ b/HttpClientStudy.UnitTest/GlobalUsings.cs
@@ -1,4 +1,15 @@
+global using System;
+global using System.Collections.Generic;
+global using System.Linq;
+global using System.Text;
+global using System.Threading.Tasks;
+
 global using Xunit;
+global using Xunit.Sdk;
+global using Xunit.Abstractions;
+global using Xunit.Extensions;
+global using Xunit.Internal;
+global using Xunit.Serialization;
 
 global using HttpClientStudy.Model;
 global using HttpClientStudy.Core;
diff --git a/HttpClientStudy.UnitTest/WebApp/BaseResultTest.cs b/HttpClientStudy.UnitTest/WebApp/BaseResultTest.cs
index d747455..0ab2c5b 100644
--- a/HttpClientStudy.UnitTest/WebApp/BaseResultTest.cs
+++ b/HttpClientStudy.UnitTest/WebApp/BaseResultTest.cs
@@ -1,12 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-using Xunit.Abstractions;
-
-namespace HttpClientStudy.UnitTest.WebApp
+namespace HttpClientStudy.UnitTest.WebApp
 {
     public class BaseResultTest
     {
@@ -23,7 +15,7 @@ namespace HttpClientStudy.UnitTest.WebApp
             var result = new BaseResult() { Code = 1, Message = "成功", Data = null };
 
             Assert.NotNull(result);
-            Assert.Equal(1, result.Code);
+            Assert.True(1 == result.Code);
             Assert.Equal("成功", result.Message);
             Assert.Null(result.Data);
         }
@@ -91,11 +83,11 @@ namespace HttpClientStudy.UnitTest.WebApp
             
 
             var result3 = BaseResultUtil.Default(new { Name="匿名类"});
-            Assert.NotNull(result);
+            Assert.NotNull(result3);
             Assert.IsType(result3.Data!.GetType(),result3.Data);
             Assert.Equal("匿名类",result3.Data!.Name);
-            Assert.Equal(0, result2.Code);
-            Assert.Equal("", result2.Message);
+            Assert.Equal(0, result3.Code);
+            Assert.Equal("", result3.Message);
         }
 
         [Fact]
@@ -104,23 +96,23 @@ namespace HttpClientStudy.UnitTest.WebApp
             var result = BaseResultUtil.Success<string>();
             Assert.NotNull(result);
             Assert.Null(result.Data);
-            Assert.Equal(0, result.Code);
-            Assert.Equal("", result.Message);
+            Assert.Equal(1, result.Code);
+            Assert.Equal("成功", result.Message);
 
             var result2 = BaseResultUtil.Success<int>();
             Assert.NotNull(result2);
             Assert.IsType<int>(result2.Data);
             Assert.Equal(0, result2.Data);
-            Assert.Equal(0, result2.Code);
-            Assert.Equal("", result2.Message);
+            Assert.Equal(1, result2.Code);
+            Assert.Equal("成功", result2.Message);
 
 
             var result3 = BaseResultUtil.Success(new { Name = "匿名类" },1,"成功");
-            Assert.NotNull(result);
+            Assert.NotNull(result3);
             Assert.IsType(result3.Data!.GetType(), result3.Data);
             Assert.Equal("匿名类", result3.Data!.Name);
-            Assert.Equal(0, result2.Code);
-            Assert.Equal("", result2.Message);
+            Assert.Equal(1, result3.Code);
+            Assert.Equal("成功", result3.Message);
         }
 
         [Fact]
diff --git a/HttpClientStudy.WebApp/BaseResult.cs b/HttpClientStudy.WebApp/BaseResult.cs
index d39f4ce..09a64b7 100644
--- a/HttpClientStudy.WebApp/BaseResult.cs
+++ b/HttpClientStudy.WebApp/BaseResult.cs
@@ -1,4 +1,6 @@
-namespace HttpClientStudy.WebApp
+using System.Linq.Expressions;
+
+namespace HttpClientStudy.WebApp
 {
     /// <summary>
     /// API 返回基类
@@ -41,77 +43,126 @@
     /// </summary>
     public static class BaseResultUtil
     {
+        /// <summary>
+        /// 创建 泛型返回基类
+        /// </summary>
         public static BaseResult<TData> Create<TData>(TData data, int code = 0, string message = "") 
         {
             return new BaseResult<TData>() { Data = data, Code = code, Message = message };
         }
 
+        /// <summary>
+        /// 创建 泛型成功返回基类
+        /// </summary>
         public static BaseResult<TData> Success<TData>() 
         {
             return Success<TData>(default, 1, "成功");
-            //return new BaseResult<TData>() { Data = default, Code = 1, Message = "成功" };
         }
 
-        public static BaseResult<TData> Success<TData>(TData data)
+        /// <summary>
+        /// 创建 泛型成功返回基类
+        /// </summary>
+        public static BaseResult<TData> Success<TData>(TData? data)
         {
-            return new BaseResult<TData>() { Data = data, Code = 1, Message = "成功" };
+            return Success(data, 1, "成功");
         }
 
-        public static BaseResult<TData> Success<TData>(TData data, string message) 
+        /// <summary>
+        /// 创建 泛型成功返回基类
+        /// </summary>
+        public static BaseResult<TData> Success<TData>(TData? data, string message) 
         {
-            return new BaseResult<TData>() { Data = data, Code = 1, Message = message };
+            return Success(data, 1, message);
         }
 
-        public static BaseResult<TData> Success<TData>(TData data, int code, string message) 
+        /// <summary>
+        /// 创建 泛型成功返回基类
+        /// </summary>
+        public static BaseResult<TData> Success<TData>(TData? data, int code, string message) 
         {
             return new BaseResult<TData>() { Data = data, Code = code, Message = message };
         }
 
+        /// <summary>
+        /// 创建 泛型错误返回基类
+        /// </summary>
         public static BaseResult<TData> Error<TData>() 
         {
-            return new BaseResult<TData>() { Data = default, Code = 0, Message = "错误" };
+            return Error<TData>(default, 0, "错误");
         }
 
-        public static BaseResult<TData> Error<TData>(TData data, string message = "错误") 
+        /// <summary>
+        /// 创建 泛型错误返回基类
+        /// </summary>
+        public static BaseResult<TData> Error<TData>(TData? data, string message = "错误") 
         {
-            return new BaseResult<TData>() { Data = data, Code = 0, Message = "错误" };
+            return Error(data, 0, message);
         }
 
-        public static BaseResult<TData> Error<TData>(TData data, int code = 0, string message = "错误") 
+        /// <summary>
+        /// 创建 泛型错误返回基类
+        /// </summary>
+        public static BaseResult<TData> Error<TData>(TData? data, int code = 0, string message = "错误") 
         {
-            return new BaseResult<TData>() { Data = data, Code = 0, Message = "错误" };
+            return Error(data, code, message);
         }
 
-        public static BaseResult<TData> Fail<TData>() where TData : class
+        /// <summary>
+        /// 创建 泛型失败返回基类
+        /// </summary>
+        public static BaseResult<TData> Fail<TData>()
         {
-            return new BaseResult<TData>() { Data = default, Code = 0, Message = "失败" };
+            return Fail<TData>(default, 0, "失败");
         }
 
-        public static BaseResult<TData> Fail<TData>(TData data, string message = "失败") 
+        /// <summary>
+        /// 创建 泛型失败返回基类
+        /// </summary>
+        public static BaseResult<TData> Fail<TData>(TData? data, string message = "失败") 
         {
-            return new BaseResult<TData>() { Data = data, Code = 0, Message = "失败" };
+            return Fail(data, 0, message);
         }
 
-        public static BaseResult<TData> Fail<TData>(TData data, int code = 0, string message = "失败") 
+        /// <summary>
+        /// 创建 泛型失败返回基类
+        /// </summary>
+        public static BaseResult<TData> Fail<TData>(TData? data, int code = 0, string message = "失败") 
         {
             return new BaseResult<TData>() { Data = data, Code = 0, Message = "失败" };
         }
 
+        /// <summary>
+        /// 创建 泛型异常返回基类
+        /// </summary>
         public static BaseResult<TData> Exception<TData>(Exception ex)
         {
-            return new BaseResult<TData>() { Data = default, Code = 0, Message = $"异常:{ex.Message}" };
+            return Exception<TData>(ex, default,0);
         }
 
-        public static BaseResult<TData> Exception<TData>(Exception ex, TData data) 
+        /// <summary>
+        /// 创建 泛型异常返回基类
+        /// </summary>
+        /// <typeparam name="TData"></typeparam>
+        /// <param name="ex"></param>
+        /// <param name="data"></param>
+        /// <returns></returns>
+        public static BaseResult<TData> Exception<TData>(Exception ex, TData? data) 
         {
-            return new BaseResult<TData>() { Data = data, Code = 0, Message = $"异常:{ex.Message}" };
+            return Exception(ex, data, 0);
         }
 
-        public static BaseResult<TData> Exception<TData>(Exception ex, TData data, int code = 0) 
+        /// <summary>
+        /// 创建 泛型异常返回基类
+        /// </summary>
+
+        public static BaseResult<TData> Exception<TData>(Exception ex, TData? data, int code = 0) 
         {
             return new BaseResult<TData>() { Data = data, Code = code, Message = $"异常:{ex.Message}" };
         }
 
+        /// <summary>
+        /// 创建 泛型默认返回基类
+        /// </summary>
         public static BaseResult<TData> Default<TData>(TData? data = default)
         {
             return new BaseResult<TData>() { Code = 0, Message = "", Data = data };