From 2089f9cf136ed659643b20cc814e628c361bffd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E7=81=B0=E7=81=B0?= Date: Sun, 7 Aug 2022 03:12:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E6=98=93=E8=81=94=E4=BA=91=E6=89=93=E5=8D=B0=E6=9C=BA?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2token=E8=A7=84=E5=88=99=EF=BC=8C=E9=98=B2?= =?UTF-8?q?=E6=AD=A2=E8=B6=85=E8=BF=8735=E5=A4=A9=E6=9C=AA=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=89=93=E5=8D=B0=E6=9C=BA=EF=BC=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE=E9=A1=B9=E5=A4=B1=E6=95=88?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Subscribe/OrderPrintSubscribe.cs | 60 ++++++++++++++----- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/CoreCms.Net.RedisMQ/Subscribe/OrderPrintSubscribe.cs b/CoreCms.Net.RedisMQ/Subscribe/OrderPrintSubscribe.cs index 7eb33b74..5cf496c8 100644 --- a/CoreCms.Net.RedisMQ/Subscribe/OrderPrintSubscribe.cs +++ b/CoreCms.Net.RedisMQ/Subscribe/OrderPrintSubscribe.cs @@ -44,7 +44,7 @@ namespace CoreCms.Net.RedisMQ.Subscribe /// /// [Subscribe(RedisMessageQueueKey.OrderPrint)] - private async Task PrintQueue(string msg) + private async Task OrderPrint(string msg) { try { @@ -60,8 +60,9 @@ namespace CoreCms.Net.RedisMQ.Subscribe return; } - var accessModel = await _accessTokenServices.QueryByClauseAsync(p => p.code == GlobalEnumVars.ThirdPartyEquipment.YiLianYun.ToString() && p.machineCode == _machineCode); - string accessToken = string.Empty; + var accessModel = await _accessTokenServices.QueryByClauseAsync(p => + p.code == GlobalEnumVars.ThirdPartyEquipment.YiLianYun.ToString() && p.machineCode == _machineCode); + string accessToken; if (accessModel == null) { var onPostAuthTerminal = _yilianyunService.AuthTerminal(_machineCode, _msign, _phone, _printerName); @@ -94,21 +95,52 @@ namespace CoreCms.Net.RedisMQ.Subscribe var dt = DateTime.Now; if (dt >= accessModel.expiressEndTime) { - var result = _yilianyunService.RefreshToken(accessModel.machineCode, accessModel.refreshToken); - if (result.IsSuccess()) - { - accessToken = result.Body.Access_Token; + var ts = dt - Convert.ToDateTime(accessModel.expiressEndTime); - accessModel.accessToken = result.Body.Access_Token; - accessModel.refreshToken = result.Body.Refresh_Token; - accessModel.expiresIn = result.Body.Expires_In != null ? Convert.ToInt32(result.Body.Expires_In) : 0; - accessModel.expiressEndTime = result.Body.ExpiressEndTime; - await _accessTokenServices.UpdateAsync(accessModel); + if (ts.Days > 35) + { + + var onPostAuthTerminal = _yilianyunService.AuthTerminal(_machineCode, _msign, _phone, _printerName); + if (onPostAuthTerminal.IsSuccess()) + { + accessToken = onPostAuthTerminal.Body.Access_Token; + + accessModel.code = GlobalEnumVars.ThirdPartyEquipment.YiLianYun.ToString(); + accessModel.name = EnumHelper.GetEnumDescriptionByKey(GlobalEnumVars.ThirdPartyEquipment.YiLianYun.ToString()); + accessModel.machineCode = _machineCode; + accessModel.accessToken = onPostAuthTerminal.Body.Access_Token; + accessModel.refreshToken = onPostAuthTerminal.Body.Refresh_Token; + accessModel.expiresIn = onPostAuthTerminal.Body.Expires_In != null ? Convert.ToInt32(onPostAuthTerminal.Body.Expires_In) : 0; + accessModel.expiressEndTime = onPostAuthTerminal.Body.ExpiressEndTime; + accessModel.parameters = JsonConvert.SerializeObject(onPostAuthTerminal.Body); + accessModel.createTime = DateTime.Now; + + await _accessTokenServices.UpdateAsync(accessModel); + } + else + { + NLogUtil.WriteAll(NLog.LogLevel.Error, LogType.RedisMessageQueue, "易联云重新获取Token失败", JsonConvert.SerializeObject(onPostAuthTerminal)); + return; + } } else { - NLogUtil.WriteAll(NLog.LogLevel.Error, LogType.RedisMessageQueue, "易联云更新Token失败", JsonConvert.SerializeObject(result)); - return; + var result = _yilianyunService.RefreshToken(accessModel.machineCode, accessModel.refreshToken); + if (result.IsSuccess()) + { + accessToken = result.Body.Access_Token; + + accessModel.accessToken = result.Body.Access_Token; + accessModel.refreshToken = result.Body.Refresh_Token; + accessModel.expiresIn = result.Body.Expires_In != null ? Convert.ToInt32(result.Body.Expires_In) : 0; + accessModel.expiressEndTime = result.Body.ExpiressEndTime; + await _accessTokenServices.UpdateAsync(accessModel); + } + else + { + NLogUtil.WriteAll(NLog.LogLevel.Error, LogType.RedisMessageQueue, "易联云更新Token失败", JsonConvert.SerializeObject(result)); + return; + } } } else