From 321b2a3adebe2aab1340fc5ffd7134c9131348b6 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期四, 19 十月 2023 09:57:56 +0800
Subject: [PATCH] 升级

---
 IStation.WebApi.SqiAirp/Result/XnRestfulResultProvider.cs |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/IStation.WebApi.SqiAirp/Result/XnRestfulResultProvider.cs b/IStation.WebApi.SqiAirp/Result/XnRestfulResultProvider.cs
index f0865d7..5d27ad6 100644
--- a/IStation.WebApi.SqiAirp/Result/XnRestfulResultProvider.cs
+++ b/IStation.WebApi.SqiAirp/Result/XnRestfulResultProvider.cs
@@ -8,6 +8,7 @@
 using Microsoft.AspNetCore.Mvc.Filters;
 using System.Net;
 using Yw.Untity;
+using Yw.Application;
 
 namespace IStation.WebApi
 {
@@ -23,16 +24,57 @@
         public IActionResult OnException(ExceptionContext context, ExceptionMetadata metadata)
         {
             // 瑙f瀽寮傚父淇℃伅
-            var exceptionMetadata = UnifyContext.GetExceptionMetadata(context);
+            //var exceptionMetadata = UnifyContext.GetExceptionMetadata(context);
 
-            return new JsonResult(new XnRestfulResult<object>
+            XnRestfulResult<object> result = null;
+
+            //furion寮傚父
+            if (context.Exception is AppFriendlyException friendException)
             {
-                Code = XnRestfulResultCode.Error,
-                Message = exceptionMetadata.Errors,
-                Data = exceptionMetadata.StatusCode,
-                Extras = UnifyContext.Take(),
-                Timestamp = DateTime.Now
-            });
+                result = new XnRestfulResult<object>
+                {
+                    Code = (int)eResultCode.Alert,
+                    Error = friendException.ErrorCode,
+                    Message = friendException.ErrorMessage,
+                    Data = null,
+                    Extras = UnifyContext.Take(),
+                    Timestamp = DateTime.Now
+                };
+            }
+
+            //api寮傚父
+            else if (context.Exception is ApiException apiException)
+            {
+                result = new XnRestfulResult<object>
+                {
+                    Code = apiException.ResultCode,
+                    Error = apiException.ErrorCode,
+                    Message = apiException.ErrorMsg,
+                    Data = apiException.LogicData,
+                    Extras = UnifyContext.Take(),
+                    Timestamp = DateTime.Now
+                };
+            }
+
+            else
+            {
+                result = new XnRestfulResult<object>
+                {
+                    Code = (int)eResultCode.Error,
+                    Error = "绯荤粺寮傚父",
+                    Message = context.Exception.StackTrace,
+                    Data = null,
+                    Extras = UnifyContext.Take(),
+                    Timestamp = DateTime.Now
+                };
+            }
+
+            if (result.Code == (int)eResultCode.Error)
+            {
+                LogHelper.Error($"閿欒鐮侊細{result.Error}锛岄敊璇俊鎭細{result.Message}");
+            }
+
+            return new JsonResult(result);
         }
 
         /// <summary>
@@ -59,7 +101,8 @@
 
             return new JsonResult(new XnRestfulResult<object>
             {
-                Code = XnRestfulResultCode.Success,
+                Code = (int)eResultCode.Success,
+                Error = null,
                 Message = "璇锋眰鎴愬姛",
                 Data = data,
                 Extras = UnifyContext.Take(),
@@ -74,8 +117,9 @@
         {
             return new JsonResult(new XnRestfulResult<object>
             {
-                Code = XnRestfulResultCode.Prompt,
-                Message = metadata.ValidationResult,
+                Code = (int)eResultCode.Prompt,
+                Error = ErrorCodes.V001.ToString(),
+                Message = metadata.Message,
                 Data = null,
                 Extras = UnifyContext.Take(),
                 Timestamp = DateTime.Now
@@ -94,9 +138,10 @@
             {
                 await context.Response.WriteAsJsonAsync(new XnRestfulResult<object>
                 {
-                    Code = XnRestfulResultCode.Alert,
-                    Message = EnumUtil.GetDescription((HttpStatusCode)statusCode),
-                    Data = statusCode,
+                    Code = (int)eResultCode.Confirm,
+                    Error = ErrorCodes.A099.ToString(),
+                    Message = "鏉冮檺楠岃瘉澶辫触",
+                    Data = null,
                     Extras = UnifyContext.Take(),
                     Timestamp = DateTime.Now
                 });

--
Gitblit v1.9.3