From 0464969366317154fdbb51e106ca778b855bdd08 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期六, 17 八月 2024 15:45:28 +0800
Subject: [PATCH] Merge branch 'master' into wxw

---
 Wms/Utility/Extension/ApiResponseActionFilter.cs |   56 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 33 insertions(+), 23 deletions(-)

diff --git a/Wms/Utility/Extension/ApiResponseActionFilter.cs b/Wms/Utility/Extension/ApiResponseActionFilter.cs
index 6f73a0c..d5afddd 100644
--- a/Wms/Utility/Extension/ApiResponseActionFilter.cs
+++ b/Wms/Utility/Extension/ApiResponseActionFilter.cs
@@ -1,46 +1,55 @@
-锘縰sing Microsoft.AspNetCore.Http;
+锘縰sing Microsoft.AspNetCore.Authentication;
+using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
 using Microsoft.AspNetCore.Mvc.Filters;
 using NetTaste;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Utility.Entity;
 
 namespace Utility
 {
-    public class ApiResponseActionFilter : IAsyncActionFilter
+    public class ApiResponseActionFilter : IAsyncResultFilter
     {
-        public async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
+        public async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next)
         {
-            // 鍦ㄦ墽琛屽姩浣滀箣鍓嶇殑閫昏緫
-            var resultContext = await next(); // 鎵ц鍔ㄤ綔鏂规硶骞惰幏鍙栨墽琛岀粨鏋�
-
-            // 鍦ㄦ墽琛屽姩浣滀箣鍚庣殑閫昏緫
-            if (resultContext.Result is ObjectResult objectResult)
+            if (context.Result is ObjectResult objectResult)
             {
-                var apiResponse = new ApiResponse<object>(
-                context.HttpContext.Response.StatusCode,
-                context.HttpContext.Response.StatusCode == 200 ? "璇锋眰鎴愬姛" : "閿欒",
-                objectResult.Value);
-
-                //if (resultContext.Result is SqlSugarPagedList)
-                //{
-                //    apiResponse.count = ((SqlSugarPagedList)resultContext.Result).Total;
-                //}
-
+                if (objectResult.StatusCode != null)
+                {
+                    await next();
+                    return;
+                }
+                ApiResponse<object> apiResponse;
+                if (objectResult.Value is SqlSugarPagedList)
+                {
+                    apiResponse = new ApiResponse<object>(
+                    0, "璇锋眰鎴愬姛",
+                    ((SqlSugarPagedList)objectResult.Value).Items,
+                    ((SqlSugarPagedList)objectResult.Value).Total);
+                }
+                else
+                {
+                    apiResponse = new ApiResponse<object>(
+                    0, "璇锋眰鎴愬姛",
+                    objectResult.Value);
+                }
                 var json = JsonConvert.SerializeObject(apiResponse);
                 context.HttpContext.Response.ContentType = "application/json";
                 context.HttpContext.Response.ContentLength = Encoding.UTF8.GetByteCount(json);
 
-                await context.HttpContext.Response.WriteAsync(json);
+                context.Result = new ObjectResult(apiResponse);
+                //await context.HttpContext.Response.WriteAsync(json);
+
             }
-            if (resultContext.Result is EmptyResult)
+            else if (context.Result is EmptyResult)
             {
                 var apiResponse = new ApiResponse<object>(
-                    context.HttpContext.Response.StatusCode,
+                    context.HttpContext.Response.StatusCode == 200 ? 0 : 1,
                     context.HttpContext.Response.StatusCode == 200 ? "璇锋眰鎴愬姛" : "閿欒",
                     "璇锋眰鎴愬姛"
                 );
@@ -48,9 +57,10 @@
                 var json = JsonConvert.SerializeObject(apiResponse);
                 context.HttpContext.Response.ContentType = "application/json";
                 context.HttpContext.Response.ContentLength = Encoding.UTF8.GetByteCount(json);
-
-                await context.HttpContext.Response.WriteAsync(json);
+                context.Result = new ObjectResult(apiResponse);
+                //await context.HttpContext.Response.WriteAsync(json);
             }
+            await next();
         }
     }
 }

--
Gitblit v1.8.0