Commit 65fba3a4 authored by 姜春辉's avatar 姜春辉

增加终端注册

parent ed89aaf3
...@@ -90,6 +90,9 @@ ...@@ -90,6 +90,9 @@
<Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL"> <Reference Include="System.Data.SQLite, Version=1.0.112.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
<HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net451\System.Data.SQLite.dll</HintPath> <HintPath>..\packages\System.Data.SQLite.Core.1.0.112.0\lib\net451\System.Data.SQLite.dll</HintPath>
</Reference> </Reference>
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath> <HintPath>..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference> </Reference>
......
...@@ -9,4 +9,5 @@ ...@@ -9,4 +9,5 @@
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" /> <package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />
<package id="OpenCvSharp3-AnyCPU" version="4.0.0.20181129" targetFramework="net452" /> <package id="OpenCvSharp3-AnyCPU" version="4.0.0.20181129" targetFramework="net452" />
<package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net452" /> <package id="System.Data.SQLite.Core" version="1.0.112.0" targetFramework="net452" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net452" />
</packages> </packages>
\ No newline at end of file
...@@ -92,6 +92,9 @@ ...@@ -92,6 +92,9 @@
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Core" /> <Reference Include="System.Core" />
<Reference Include="System.Drawing" /> <Reference Include="System.Drawing" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\packages\System.ValueTuple.4.5.0\lib\netstandard1.0\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"> <Reference Include="System.Windows.Interactivity, Version=4.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath> <HintPath>..\..\packages\MvvmLightLibs.5.4.1.1\lib\net45\System.Windows.Interactivity.dll</HintPath>
</Reference> </Reference>
......
using GS.Terminal.VisitorSelfService.Logic.ThirdAddon; using GS.Terminal.VisitorSelfService.Logic.Remote;
using GS.Terminal.VisitorSelfService.Logic.ThirdAddon;
using GS.Unitive.Framework.Core; using GS.Unitive.Framework.Core;
using GS.Unitive.Framework.Persistent; using GS.Unitive.Framework.Persistent;
using Microsoft.VisualBasic.ApplicationServices; using Microsoft.VisualBasic.ApplicationServices;
...@@ -44,6 +45,13 @@ namespace GS.Terminal.VisitorSelfService.Logic ...@@ -44,6 +45,13 @@ namespace GS.Terminal.VisitorSelfService.Logic
_ObjectSpace = manager.CreateObjectSpace(_Context, "c1"); _ObjectSpace = manager.CreateObjectSpace(_Context, "c1");
_ObjectSpace.UpdateDataSchema(); _ObjectSpace.UpdateDataSchema();
Handlers.Product(); Handlers.Product();
var signature = WebApi.Signature();
if (!signature.success)
{
var ex = new Exception($"终端注册失败,失败原因:{signature.message}");
_Context.Logger.Error("启动失败", ex);
throw ex;
}
TerminalConsole.StartHeart(LocalSetting.AppConfig.ServerIP, LocalSetting.AddonDefaultConfig.HeartPort, 30 * 1000); TerminalConsole.StartHeart(LocalSetting.AppConfig.ServerIP, LocalSetting.AddonDefaultConfig.HeartPort, 30 * 1000);
ThirdAddon.LogicShell.ShowView(vmLocator.MenuPage); ThirdAddon.LogicShell.ShowView(vmLocator.MenuPage);
} }
......
...@@ -3,6 +3,7 @@ using System; ...@@ -3,6 +3,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Http; using System.Net.Http;
using System.Net.NetworkInformation;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
...@@ -11,6 +12,7 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote ...@@ -11,6 +12,7 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote
public static class WebApi public static class WebApi
{ {
private static SafeObjectPool.ObjectPool<HttpClient> _httpclientPool = null; private static SafeObjectPool.ObjectPool<HttpClient> _httpclientPool = null;
private static string _token = "";
static WebApi() static WebApi()
{ {
_httpclientPool = new SafeObjectPool.ObjectPool<HttpClient>(10, () => _httpclientPool = new SafeObjectPool.ObjectPool<HttpClient>(10, () =>
...@@ -19,6 +21,8 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote ...@@ -19,6 +21,8 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote
_client.BaseAddress = new Uri(LocalSetting.AppConfig.WebPath); _client.BaseAddress = new Uri(LocalSetting.AppConfig.WebPath);
_client.Timeout = TimeSpan.FromSeconds(30); _client.Timeout = TimeSpan.FromSeconds(30);
_client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("GS.Terminal.VisitorSelfService", Program._logicVersion)); _client.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("GS.Terminal.VisitorSelfService", Program._logicVersion));
if (!string.IsNullOrEmpty(_token))
_client.DefaultRequestHeaders.Add("Authorization", $"Bearer {_token}");
return _client; return _client;
}); });
} }
...@@ -116,5 +120,38 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote ...@@ -116,5 +120,38 @@ namespace GS.Terminal.VisitorSelfService.Logic.Remote
} }
return default(T); return default(T);
} }
public static string GetMACAddress()
{
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface current = interfaces.FirstOrDefault(ss => ss.OperationalStatus == OperationalStatus.Up);
if (current == null)//如果当前没有可用的就选第一个
current = interfaces.FirstOrDefault();
return BitConverter.ToString(current.GetPhysicalAddress().GetAddressBytes());
}
/// <summary>
/// 设备签到
/// </summary>
/// <returns></returns>
public static (bool success, string message) Signature()
{
var token = GetTAsync<TerminalToken>($"/api/GS.WebApi.Terminal/TerminalConsole/Signature?tCode={LocalSetting.AppConfig.tCode}&tMacCode={GetMACAddress()}").Result;
if (token == null) return (false, "网络异常,设备注册失败");
if (!token.Status) return (false, $"设备注册失败.原因:{token.Message}");
_token = token.tToken;
return (true, _token);
}
}
public class TerminalToken
{
/// <summary>
/// 返回状态
/// </summary>
public bool Status { get; set; } = true;
/// <summary>
/// 返回消息
/// </summary>
public string Message { get; set; }
public string tToken { get; set; }
public DateTime expDate { get; set; }
} }
} }
...@@ -9,5 +9,6 @@ ...@@ -9,5 +9,6 @@
<package id="OpenCvSharp3-AnyCPU" version="4.0.0.20181129" targetFramework="net452" /> <package id="OpenCvSharp3-AnyCPU" version="4.0.0.20181129" targetFramework="net452" />
<package id="SafeObjectPool" version="2.3.1" targetFramework="net452" /> <package id="SafeObjectPool" version="2.3.1" targetFramework="net452" />
<package id="SuperSocket.ClientEngine.Core" version="0.10.0" targetFramework="net452" /> <package id="SuperSocket.ClientEngine.Core" version="0.10.0" targetFramework="net452" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net452" />
<package id="WebSocket4Net" version="0.15.2" targetFramework="net452" /> <package id="WebSocket4Net" version="0.15.2" targetFramework="net452" />
</packages> </packages>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment