增加交易唯一码,方便在网络状态不佳的情况下重新获取操作结果

This commit is contained in:
qmj
2026-05-26 08:45:24 +08:00
parent 8208ba7488
commit 42e6579447
30 changed files with 2891 additions and 374 deletions
+64 -13
View File
@@ -1,18 +1,12 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI.WebControls;
using Microsoft.Data.Sqlite;
using Microsoft.Data.Sqlite;
using SqlSugar;
using System;
using System.Configuration;
using System.Threading.Tasks;
using UFIDA.U8.Framework.Api.Common.Unit.GM;
using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.Entity;
using UFIDA.U8.Framework.Api.Models;
namespace UFIDA.U8.Framework.Api.Unit
{
@@ -108,11 +102,11 @@ namespace UFIDA.U8.Framework.Api.Unit
/// <param name="bAP"></param>
/// <param name="pDate"></param>
/// <returns></returns>
public static async Task<LoginParamter> GetLoginParamter(string cAccId,bool bAP=false,string pDate="")
public static async Task<LoginParamter> GetLoginParamter(string cAccId, bool bAP = false, string pDate = "")
{
var db = new SqlSugarClient(GetConnectionConfig());
var account=await db.Queryable<SysU8AccountConfig>().FirstAsync(a => a.Status == StatusEnum.Enable && a.cAccountNo == cAccId);
var account = await db.Queryable<SysU8AccountConfig>().FirstAsync(a => a.Status == StatusEnum.Enable && a.cAccountNo == cAccId);
if (account != null)
{
@@ -145,6 +139,63 @@ namespace UFIDA.U8.Framework.Api.Unit
var token = CommUnit.GetDecrypt(output.userToken);
return token;
}
}
/// <summary>
/// 保存请求结果
/// </summary>
/// <param name="tradeid"></param>
/// <param name="bRun"></param>
/// <param name="result"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
public static async Task SaveResult(string tradeid, bool bRun, BaseResult<string> result = null)
{
var db = GetDbClient();
if (!db.DbMaintenance.IsAnyTable("SysTradeResult"))
{
db.CodeFirst.InitTables(typeof(SysTradeResult));
}
if (bRun == true)
{
if (await db.Queryable<SysTradeResult>().AnyAsync(a => a.cTradeId == tradeid))
{
throw new Exception($"请求ID:{tradeid}重复");
}
var count = await db.Queryable<SysTradeResult>().CountAsync();
if (count > 1000)
{
var idList = await db.Queryable<SysTradeResult>().Select(a => a.Id).Take(count - 1000).ToListAsync();
await db.Deleteable<SysTradeResult>().Where(a => idList.Contains(a.Id)).ExecuteCommandAsync();
}
var entity = new SysTradeResult
{
Id = SnowFlakeSingle.Instance.NextId(),
bRun = bRun,
cTradeId = tradeid,
cResult = result,
dStartDate = DateTime.Now,
};
await db.Insertable(entity).ExecuteCommandAsync();
}
else
{
var entity = await db.Queryable<SysTradeResult>().Where(a => a.cTradeId == tradeid).FirstAsync();
entity.cResult = result;
entity.bRun = false;
entity.dEndDate = DateTime.Now;
await db.Updateable(entity).ExecuteCommandAsync();
}
}
}
}