【优化】优化易联云打印机更换token规则,防止超过35天未使用打印机,导致默认配置项失效的问题。

This commit is contained in:
大灰灰
2022-08-07 03:12:47 +08:00
parent 1210ec4e9f
commit 2089f9cf13

View File

@@ -44,7 +44,7 @@ namespace CoreCms.Net.RedisMQ.Subscribe
/// <param name="msg"></param>
/// <returns></returns>
[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>(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