From 0e19a67ba83ff3670f27b6dbfa5e38c45c58dec6 Mon Sep 17 00:00:00 2001
From: shanji <18996038927@163.com>
Date: Mon, 24 Apr 2023 13:10:45 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=8B=B3=E6=8E=A2=E8=BF=94?=
 =?UTF-8?q?=E5=9B=9E=E6=8A=A5=E9=94=99=E5=8E=9F=E5=A7=8B=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../PlatformSDK/QuanTanBusiness.cs             |  4 +---
 QuanTan.SDK/Client/BaseClient.cs               | 18 +++++++++++++++---
 QuanTan.SDK/Client/QuanTanOrderClient.cs       |  2 +-
 QuanTan.SDK/Client/QuanTanProductClient.cs     |  2 +-
 QuanTan.SDK/QuanTan.SDK.csproj                 |  1 +
 5 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs
index fe3ae388..f4a9b4ca 100644
--- a/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs
+++ b/BBWY.Server.Business/PlatformSDK/QuanTanBusiness.cs
@@ -6,8 +6,6 @@ using Microsoft.Extensions.Caching.Memory;
 using Newtonsoft.Json;
 using QuanTan.SDK.Client;
 using QuanTan.SDK.Model;
-using System;
-using System.Collections.Generic;
 using System.Linq;
 namespace BBWY.Server.Business
 {
@@ -18,7 +16,7 @@ namespace BBWY.Server.Business
 
         public QuanTanBusiness(IMemoryCache memoryCache, NLogManager nLogManager, RestApiService restApiService) : base(memoryCache, nLogManager)
         {
-            this.quanTanOrderClient = new QuanTanOrderClient(restApiService);
+            this.quanTanOrderClient = new QuanTanOrderClient(restApiService, nLogManager.Default());
         }
 
         public override PreviewOrderResponse PreviewOrder(PreviewOrderReuqest previewOrderReuqest)
diff --git a/QuanTan.SDK/Client/BaseClient.cs b/QuanTan.SDK/Client/BaseClient.cs
index d836a87f..d36544d1 100644
--- a/QuanTan.SDK/Client/BaseClient.cs
+++ b/QuanTan.SDK/Client/BaseClient.cs
@@ -13,9 +13,12 @@ namespace QuanTan.SDK.Client
 
         protected readonly string host = "https://qt.qiyue666.com/";
 
-        public BaseClient(RestApiService restApiService)
+        private NLog.ILogger logger;
+
+        public BaseClient(RestApiService restApiService, NLog.ILogger logger)
         {
             this.restApiService = restApiService;
+            this.logger = logger;
         }
 
         public QuanTanResponse<T> SendRequest<T>(string apiPath, object param, string appId, string appSecret)
@@ -42,16 +45,25 @@ namespace QuanTan.SDK.Client
                 Params = paramStr,
                 token = qtToken
             };
-
+            RestApiResult restApiResult = null;
             try
             {
-                var restApiResult = restApiService.SendRequest(host, apiPath, requestParam, null, HttpMethod.Post);
+                restApiResult = restApiService.SendRequest(host, apiPath, requestParam, null, HttpMethod.Post);
                 if (restApiResult.StatusCode != System.Net.HttpStatusCode.OK)
                     throw new Exception(restApiResult.Content);
                 return JsonConvert.DeserializeObject<QuanTanResponse<T>>(restApiResult.Content);
             }
             catch (Exception ex)
             {
+                if (logger != null)
+                {
+                    try
+                    {
+                        logger.Error(ex, $"Request {JsonConvert.SerializeObject(requestParam)}\r\nResponse {(restApiResult == null ? string.Empty : JsonConvert.SerializeObject(restApiResult))}");
+                    }
+                    catch { }
+                }
+
                 return new QuanTanResponse<T>() { Status = 0, Message = ex.Message };
             }
         }
diff --git a/QuanTan.SDK/Client/QuanTanOrderClient.cs b/QuanTan.SDK/Client/QuanTanOrderClient.cs
index ebc1bb8e..46013ca3 100644
--- a/QuanTan.SDK/Client/QuanTanOrderClient.cs
+++ b/QuanTan.SDK/Client/QuanTanOrderClient.cs
@@ -5,7 +5,7 @@ namespace QuanTan.SDK.Client
 {
     public class QuanTanOrderClient : BaseClient
     {
-        public QuanTanOrderClient(RestApiService restApiService) : base(restApiService)
+        public QuanTanOrderClient(RestApiService restApiService, NLog.ILogger logger) : base(restApiService, logger)
         {
         }
 
diff --git a/QuanTan.SDK/Client/QuanTanProductClient.cs b/QuanTan.SDK/Client/QuanTanProductClient.cs
index b88d4484..45e2126a 100644
--- a/QuanTan.SDK/Client/QuanTanProductClient.cs
+++ b/QuanTan.SDK/Client/QuanTanProductClient.cs
@@ -4,7 +4,7 @@ namespace QuanTan.SDK.Client
 {
     public class QuanTanProductClient : BaseClient
     {
-        public QuanTanProductClient(RestApiService restApiService) : base(restApiService)
+        public QuanTanProductClient(RestApiService restApiService) : base(restApiService, null)
         {
         }
 
diff --git a/QuanTan.SDK/QuanTan.SDK.csproj b/QuanTan.SDK/QuanTan.SDK.csproj
index fa845a9f..4edef9c5 100644
--- a/QuanTan.SDK/QuanTan.SDK.csproj
+++ b/QuanTan.SDK/QuanTan.SDK.csproj
@@ -8,6 +8,7 @@
 
   <ItemGroup>
     <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
+    <PackageReference Include="NLog" Version="4.7.12" />
   </ItemGroup>
 
   <ItemGroup>