|
@@ -1,4 +1,5 @@
|
|
|
-using Hotline.Api.Filter;
|
|
|
+using Fw.Utility.ConfigClient;
|
|
|
+using Hotline.Api.Filter;
|
|
|
using Hotline.Application.Identity;
|
|
|
using Hotline.Application.Systems;
|
|
|
using Hotline.Application.Tools;
|
|
@@ -8,18 +9,23 @@ using Hotline.Caching.Services;
|
|
|
using Hotline.FlowEngine.Workflows;
|
|
|
using Hotline.Identity.Accounts;
|
|
|
using Hotline.Orders;
|
|
|
+using Hotline.Settings;
|
|
|
using Hotline.Share.Dtos.Identity;
|
|
|
using Hotline.Share.Dtos.Order;
|
|
|
using Hotline.Share.Enums.FlowEngine;
|
|
|
using Hotline.Share.Enums.Order;
|
|
|
+using Hotline.Share.Tools;
|
|
|
using Hotline.Users;
|
|
|
using IdentityModel;
|
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
+using MongoDB.Bson.IO;
|
|
|
+using NewRock.Sdk.Extensions;
|
|
|
using NPOI.POIFS.Macros;
|
|
|
using SqlSugar;
|
|
|
using System.Security.Claims;
|
|
|
+using System.Threading;
|
|
|
using XF.Domain.Authentications;
|
|
|
using XF.Domain.Entities;
|
|
|
using XF.Domain.Exceptions;
|
|
@@ -39,13 +45,15 @@ namespace Hotline.Api.Controllers
|
|
|
private readonly IRepository<OrderVisitDetail> _orderVisitedDetailRepository;
|
|
|
private readonly ISessionContextProvider _sessionContextProvider;
|
|
|
private readonly IRepository<Account> _accountRepository;
|
|
|
+ private readonly IHttpClientFactory _httpClientFactory;
|
|
|
+ private readonly ISystemSettingCacheManager _systemSettingCacheManager;
|
|
|
|
|
|
public OldHotlineController(IIdentityAppService identityAppService, ISystemLogApplication iSystemLogApplication,
|
|
|
IOrderRepository orderRepository, IOrderVisitRepository orderVisitRepository,
|
|
|
- IOrderDelayRepository orderDelayRepository, IOrderScreenRepository orderScreenRepository,
|
|
|
+ IOrderDelayRepository orderDelayRepository, IOrderScreenRepository orderScreenRepository,
|
|
|
IRepository<OrderSendBackAudit> orderSendBackAuditRepository, IRepository<OrderVisitDetail> orderVisitedDetailRepository,
|
|
|
ISessionContextProvider sessionContextProvider,
|
|
|
- IRepository<Account> accountRepository)
|
|
|
+ IRepository<Account> accountRepository, IHttpClientFactory httpClientFactory, ISystemSettingCacheManager systemSettingCacheManager)
|
|
|
{
|
|
|
_identityAppService = identityAppService;
|
|
|
_iSystemLogApplication = iSystemLogApplication;
|
|
@@ -57,6 +65,8 @@ namespace Hotline.Api.Controllers
|
|
|
_orderVisitedDetailRepository = orderVisitedDetailRepository;
|
|
|
_sessionContextProvider = sessionContextProvider;
|
|
|
_accountRepository = accountRepository;
|
|
|
+ _httpClientFactory = httpClientFactory;
|
|
|
+ _systemSettingCacheManager = systemSettingCacheManager;
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -412,12 +422,44 @@ namespace Hotline.Api.Controllers
|
|
|
{
|
|
|
string userName = String.Empty;
|
|
|
userName = System.Web.HttpUtility.UrlEncode(RSA.RSAEncrypt(account.UserName, RSA_Create.RSA_PUBLIC_KEY, "PEM"));
|
|
|
+ return userName;
|
|
|
+ }
|
|
|
+ catch
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("账号加密失败!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 获取老系统状态
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("ishas_canhandler_old")]
|
|
|
+ public async Task<bool?> IsHasCanHandlerOld()
|
|
|
+ {
|
|
|
+ var OldHotlineOrderState = _systemSettingCacheManager.GetSetting(SettingConstants.OldHotlineOrderState).SettingValue[0];
|
|
|
+
|
|
|
+ var account = await _accountRepository.GetAsync(_sessionContextProvider.SessionContext.RequiredUserId, HttpContext.RequestAborted);
|
|
|
+ if (account == null)
|
|
|
+ {
|
|
|
+ throw UserFriendlyException.SameMessage("获取用户加密失败");
|
|
|
+ }
|
|
|
+ try
|
|
|
+ {
|
|
|
+ string userName = String.Empty;
|
|
|
+ userName = System.Web.HttpUtility.UrlEncode(RSA.RSAEncrypt(account.UserName, RSA_Create.RSA_PUBLIC_KEY, "PEM"));
|
|
|
+ var client = _httpClientFactory.CreateClient();
|
|
|
+ client.DefaultRequestHeaders.ConnectionClose = true;
|
|
|
+ using var responseMessage = await client.GetAsync(OldHotlineOrderState + userName,HttpContext.RequestAborted);
|
|
|
+ using var respContent = responseMessage.Content;
|
|
|
+ var respContentString = await respContent.ReadAsStringAsync(HttpContext.RequestAborted);
|
|
|
+ var result = Newtonsoft.Json.JsonConvert.DeserializeObject<HotlineStateResult>(respContentString);
|
|
|
+ return result?.Result;
|
|
|
}
|
|
|
catch
|
|
|
{
|
|
|
throw UserFriendlyException.SameMessage("账号加密失败!");
|
|
|
}
|
|
|
- return "";
|
|
|
}
|
|
|
}
|
|
|
}
|