From 52ba6b195a4126df405ef453d52ba6eaab6521da Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期五, 17 四月 2026 17:37:32 +0800
Subject: [PATCH] 优化3-4楼提升机以及添加报错接口
---
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ApiInfoService.cs | 74 +++++++++++++++++++++++++++++-------
1 files changed, 59 insertions(+), 15 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ApiInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ApiInfoService.cs"
index 99a8888..8582483 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ApiInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ApiInfoService.cs"
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Collections.Generic;
using System.Linq;
+using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Core;
@@ -36,12 +37,16 @@
{
WebResponseContent content = new WebResponseContent();
string response = string.Empty;
+ string requestHash = string.Empty;
+ string responseHash = string.Empty;
Dt_ApiInfo? apiInfo = null;
try
{
apiInfo = BaseDal.QueryFirst(x => x.ApiCode == apiCode) ?? throw new Exception($"鏈壘鍒皗remark}鎺ュ彛閰嶇疆淇℃伅锛佽妫�鏌ユ帴鍙i厤缃�");
response = HttpHelper.Post(apiInfo.ApiAddress, requestParameters);
- if (apiInfo.Remark.Contains("鍥涘悜杞�"))
+ requestHash = ComputeHash(requestParameters);
+ responseHash = ComputeHash(response);
+ if (apiInfo.Remark.Contains("鍥涘悜绌挎杞�"))
{
FOURBOTReturn fOURBOTReturn = response.DeserializeObject<FOURBOTReturn>();
if (fOURBOTReturn == null) throw new Exception($"{apiInfo.Remark}鍝嶅簲鍐呭杞崲瀹炰綋澶辫触锛�");
@@ -70,24 +75,63 @@
{
if (isAdd && !string.IsNullOrEmpty(response) && apiInfo != null)
{
- Dt_InterfaceLog interfaceLog = new Dt_InterfaceLog()
+ #region 鏌ヨ褰撳ぉ鏄惁瀛樺湪鐩稿悓璁板綍
+ var today = DateTime.Now.Date;
+ var existingLog = _interfaceLogService.Repository.QueryFirst(x =>
+ x.ApiCode == apiCode &&
+ x.RequestParametersHash == requestHash &&
+ x.ResponseParametersHash == responseHash &&
+ x.CreateDate.Date == today);
+ if (existingLog != null)
{
- ApiCode = apiCode,
- RequestParameters = requestParameters,
- ApiAddress = apiInfo.ApiAddress,
- ApiName = apiInfo.ApiName,
- PushFrequency = 1,
- PushState = content.Status ? 1 : 2,
- Requestor = "WCS",
- Recipient = apiInfo.Remark,
- ResponseParameters = response,
- Creater = "System",
- Remark = content.Status ? remark : content.Message,
- };
- _interfaceLogService.Repository.AddData(interfaceLog);
+ existingLog.PushFrequency = existingLog.PushFrequency + 1;
+ existingLog.PushState = content.Status ? 1 : 2;
+ existingLog.ResponseParameters = response;
+ existingLog.Remark = content.Status ? remark : content.Message;
+ existingLog.Modifier = App.User?.UserName ?? "System";
+ existingLog.ModifyDate = DateTime.Now;
+ _interfaceLogService.Repository.UpdateData(existingLog);
+ }
+ #endregion
+ else
+ {
+ Dt_InterfaceLog interfaceLog = new Dt_InterfaceLog()
+ {
+ ApiCode = apiCode,
+ RequestParameters = requestParameters,
+ ApiAddress = apiInfo.ApiAddress,
+ ApiName = apiInfo.ApiName,
+ RequestParametersHash = requestHash,
+ ResponseParametersHash = responseHash,
+ PushFrequency = 1,
+ PushState = content.Status ? 1 : 2,
+ Requestor = "WCS",
+ Recipient = apiInfo.Remark,
+ ResponseParameters = response,
+ Creater = "System",
+ Remark = content.Status ? remark : content.Message,
+ };
+ _interfaceLogService.Repository.AddData(interfaceLog);
+ }
}
}
return content;
}
+
+ /// <summary>
+ /// 璁$畻瀛楃涓茬殑SHA256鍝堝笇鍊�
+ /// </summary>
+ private static string ComputeHash(string input)
+ {
+ if (string.IsNullOrEmpty(input))
+ return string.Empty;
+
+ using (SHA256 sha256 = SHA256.Create())
+ {
+ byte[] bytes = Encoding.UTF8.GetBytes(input);
+ byte[] hashBytes = sha256.ComputeHash(bytes);
+ return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
+ }
+ }
}
}
--
Gitblit v1.9.3