123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549 |
- using HPSocketCS.Extended;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace LYFZ.Network.CloudServer
- {
- /// <summary>
- /// 云服务器网络处理
- /// </summary>
- public class CloudServerClient
- {
- public CloudServerClient()
- {
- }
- public CloudServerClient(string eID, string installationCode, string dongleDomain, ushort cloudLoginPort)
- {
- this.Initialization(eID, installationCode, dongleDomain, cloudLoginPort);
- }
- public void Initialization(string eID, string installationCode, string dongleDomain, ushort cloudLoginPort)
- {
- this._EnterpriseID = eID;
- HPSocketCS.TcpServer.EnterpriseID = this._EnterpriseID;
- if (!String.IsNullOrEmpty(installationCode))
- {
- this._InstallationCode = installationCode;
- }
- this._DongleDomain = dongleDomain;
- this._CloudLoginServerPort = cloudLoginPort;
- }
- /// <summary>
- /// 设置网络连接
- /// </summary>
- /// <param name="client"></param>
- public void SetNetworkClient(LYFZ.Network.TCPNetworkClient.TCP_NetworkClient client)
- {
- this.tcpClient = client;
- }
- string _EnterpriseID = "";
- public string EnterpriseID
- {
- get { return _EnterpriseID; }
- set { _EnterpriseID = value; }
- }
- string _InstallationCode = "auto";
- /// <summary>
- /// 安装验证码
- /// </summary>
- public string InstallationCode
- {
- get { return _InstallationCode; }
- set { _InstallationCode = value; }
- }
- string _DongleDomain = "";
- /// <summary>
- /// 加密锁域名
- /// </summary>
- public string DongleDomain
- {
- get { return _DongleDomain; }
- set { _DongleDomain = value; }
- }
- ushort _CloudLoginServerPort = 8000;
- /// <summary>
- /// 云登录服务端口
- /// </summary>
- public ushort CloudLoginServerPort
- {
- get { return _CloudLoginServerPort; }
- set { _CloudLoginServerPort = value; }
- }
- CloudLoginInfo cLoginServer = new CloudLoginInfo();
- /// <summary>
- /// 云服务器信息
- /// </summary>
- public CloudLoginInfo CLoginServer
- {
- get { return cLoginServer; }
- set { cLoginServer = value; }
- }
- /// <summary>
- /// 发送请求命令到云服务器端
- /// </summary>
- /// <param name="_hpClient"></param>
- /// <param name="command"></param>
- /// <param name="reqParameters"></param>
- /// <returns></returns>
- public static HPSocketCS.Extended.ReturnData SendCommandToCloudServer(HPSocketCS.TcpPackClient _hpClient, HPSocketCS.Extended.TransferRequestCommand command, HPSocketCS.Extended.RequestParameters reqParameters)
- {
- HPSocketCS.Extended.RequestData requestData = new HPSocketCS.Extended.RequestData((int)command);
- requestData.AttachedData = reqParameters.ToBytes();
- return HPSocketCS.Extended.SerializerDataProcessed.HP_SendSerializerCommandToServer(_hpClient, requestData);
- }
- private LYFZ.Network.TCPNetworkClient.TCP_NetworkClient tcpClient = new Network.TCPNetworkClient.TCP_NetworkClient();
- /// <summary>
- /// 客户端网络连接对象
- /// </summary>
- public LYFZ.Network.TCPNetworkClient.TCP_NetworkClient TcpClient
- {
- get { return tcpClient; }
- }
- string _ReturnMessage = "";
- /// <summary>
- /// 反回消息
- /// </summary>
- public string ReturnMessage
- {
- get { return _ReturnMessage; }
- set { _ReturnMessage = value; }
- }
- void ClearReturnMessage()
- {
- this.ReturnMessage = "";
- }
- /// <summary>
- /// 连接服务器
- /// </summary>
- /// <returns></returns>
- public bool ConnectServer()
- {
- try
- {
- this.ClearReturnMessage();
- if (this.tcpClient.AppState == AppState.Started)
- {
- return true;
- }
-
- if (String.IsNullOrEmpty(this.cLoginServer.CloudServerIP))
- {
- if (!String.IsNullOrEmpty(this._EnterpriseID))
- {
- if (VerifyEnterpriseID(this._EnterpriseID))
- {
- CloudLoginServerClient cLoginClient = new CloudLoginServerClient(this._EnterpriseID, this._CloudLoginServerPort);
- if (cLoginClient.ConnectServer())
- {
- HPSocketCS.Extended.ReturnData returnData = cLoginClient.GetCloudServerInfo(this._EnterpriseID);
- if (returnData.ReturnStatus)
- {
- this.cLoginServer = cLoginClient.GetCloudLoginInfo(returnData.DataByteToModelObject<string>());
- if (this._InstallationCode == "auto")
- {
- this._InstallationCode = this.cLoginServer.VerificationCode;
- }
- cLoginClient.CloseConnect();
- }
- else
- {
- this._ReturnMessage = returnData.ReturnMessage;
- return false;
- }
- }
- else
- {
- this._ReturnMessage = "连接登录服务器失败";
- return false;
- }
- }
- else {
- this._ReturnMessage = "企业ID不正确";
- return false;
- }
- }
- else {
- this._ReturnMessage = "企业ID不能为空";
- return false;
- }
- }
- HPSocketCS.TcpServer.EnterpriseID = this.EnterpriseID;
- HPSocketCS.TcpServer.VerificationCode = this.InstallationCode;
- return this.tcpClient.ConnectionServer(this.cLoginServer.CloudServerIP, this.cLoginServer.SeverPort);
- }
- catch (Exception ex)
- {
- this._ReturnMessage = "连接服务器失败:" + ex.Message;
- return false;
- }
- }
- public bool ConnectServer(string cServerIP, ushort cSeverPort)
- {
- try
- {
- this.ClearReturnMessage();
- if (this.tcpClient.AppState == AppState.Started)
- {
- return true;
- }
- this.cLoginServer.CloudServerIP = cServerIP;
- this.cLoginServer.SeverPort = cSeverPort;
- HPSocketCS.TcpServer.EnterpriseID = this.EnterpriseID;
- HPSocketCS.TcpServer.VerificationCode = this.InstallationCode;
- return this.tcpClient.ConnectionServer(this.cLoginServer.CloudServerIP, this.cLoginServer.SeverPort);
- }
- catch (Exception ex)
- {
- this._ReturnMessage = "连接服务器失败:" + ex.Message;
- return false;
- }
- }
- bool VerifyEnterpriseID(string eID)
- {
- if ("E6051908401744|E6051806481742|E6041618381744".ToLower().Contains(eID.ToLower()))
- {
- return true;
- }
- else
- {
- if (eID.ToLower().IndexOf("e") == 0 && eID.Length == 18)
- {
- return true;
- }
- else
- {
- return false;
- }
- }
- }
- /// <summary>
- /// 关闭连接
- /// </summary>
- public void CloseConnect()
- {
- this.cLoginServer.CloudServerIP = "";
- this.tcpClient.CloseConnected();
- }
- #region 云服务器相关通信处理
- /// <summary>
- /// 注册云版APP
- /// </summary>
- /// <returns></returns>
- public bool RegistrationWebAPP(bool _APPType,string appWebUrl)
- {
- try
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- reqParameters.SetRequestParameter<bool>("APPType", _APPType);
- reqParameters.SetRequestParameter<string>("AppWebUrl", appWebUrl);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.InstallCloudWebAPI, reqParameters);
- if (returnData.ReturnStatus)
- {
- this.ReturnMessage = returnData.ReturnMessage;
- return true;
- }
- else
- {
- this.ReturnMessage = returnData.ReturnMessage;
- return false;
- }
- }
- catch (Exception ex)
- {
- this.ReturnMessage = "数据库安装失败:" + ex.Message;
- return false;
- }
- }
- /// <summary>
- /// 安装云数据库
- /// </summary>
- /// <returns></returns>
- public bool InstallationDatabase()
- {
- try
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.InstallationDatabase, reqParameters);
- if (returnData.ReturnStatus)
- {
- return true;
- }
- else
- {
- this.ReturnMessage = returnData.ReturnMessage;
- return false;
- }
- }
- catch (Exception ex)
- {
- this.ReturnMessage = "数据库安装失败:" + ex.Message;
- return false;
- }
- }
- /// <summary>
- /// 升级云数据库
- /// </summary>
- /// <returns></returns>
- public bool UpgradeDatabase()
- {
- try
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.UpgradeDatabase, reqParameters);
- if (returnData.ReturnStatus)
- {
- return true;
- }
- else
- {
- this.ReturnMessage = returnData.ReturnMessage;
- return false;
- }
- }
- catch (Exception ex)
- {
- this.ReturnMessage = "数据库安装失败:" + ex.Message;
- return false;
- }
- }
- /// <summary>
- /// 备份云数据库
- /// </summary>
- /// <returns></returns>
- public bool BackupDatabase()
- {
- try
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.BackupDatabase, reqParameters);
- if (returnData.ReturnStatus)
- {
- return true;
- }
- else
- {
- this.ReturnMessage = returnData.ReturnMessage;
- return false;
- }
- }
- catch (Exception ex)
- {
- this.ReturnMessage = "备份库安装失败:" + ex.Message;
- return false;
- }
- }
- /// <summary>
- /// 获取总店软件信息
- /// </summary>
- /// <param name="dongleDomain"></param>
- /// <returns></returns>
- public ReturnData GetMainServerSoftwareInfo()
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- reqParameters.SetRequsetErpDongleDomainParameter("main");
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.GetMainStoreServerSoftwareInfo, reqParameters);
- return returnData;
- }
- /// <summary>
- /// 获取软件信息
- /// </summary>
- /// <param name="dongleDomain"></param>
- /// <returns></returns>
- public ReturnData GetServerSoftwareInfo(string dongleDomain)
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- reqParameters.SetRequsetErpDongleDomainParameter(dongleDomain);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.GetServerSoftwareInfo, reqParameters);
- return returnData;
- }
- /// <summary>
- /// 获取云服务器数据库连接信息
- /// </summary>
- /// <returns></returns>
- public ReturnData GetCloudServerDbConnInfo()
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.GetDataConne, reqParameters);
- return returnData;
- }
- /// <summary>
- /// 提交软件信息
- /// </summary>
- /// <param name="softwareInfo"></param>
- /// <param name="compInfo"></param>
- /// <param name="isIsHeadquarters"></param>
- /// <param name="orderQuantity"></param>
- /// <param name="versionNumber"></param>
- /// <returns></returns>
- public ReturnData SubmitSoftwareInfo(LYFZ.Model.Model_SoftwareInfo softwareInfo, LYFZ.Model.Model_ErpCompanyInfo compInfo, bool isIsHeadquarters, int orderQuantity, string versionNumber, bool isSubmit = true)
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(this._EnterpriseID);
- reqParameters.SetRequsetErpInstallationVerificationCodeParameter(this._InstallationCode);
- reqParameters.SetRequsetErpDongleDomainParameter(this.DongleDomain);
- reqParameters.SetRequestParameter<string>("StoreID", compInfo.Company_DividedShop);
- reqParameters.SetRequestParameter<string>("StoreName", compInfo.Company_Name);
- reqParameters.SetRequestParameter<string>("StoreManager", compInfo.Company_Manager);
- reqParameters.SetRequestParameter<string>("Telephone", compInfo.Company_Telephone);
- reqParameters.SetRequestParameter<string>("StoreAddress", compInfo.Company_Address);
- reqParameters.SetRequsetErpServerPortParameter(0);
- reqParameters.SetRequestParameter<long>("BusinessType", softwareInfo.BusinessType);
- reqParameters.SetRequestParameter<long>("FeatureType", softwareInfo.FunctionType);
- if (isIsHeadquarters)
- {
- reqParameters.SetRequestParameter<int>("IsHeadquarters", 1);
- }
- else
- {
- reqParameters.SetRequestParameter<int>("IsHeadquarters", 0);
- }
- reqParameters.SetRequestParameter<string>("VersionNumber", versionNumber);
- reqParameters.SetRequestParameter<int>("Seats", softwareInfo.RegConnCount);
- reqParameters.SetRequestParameter<int>("OrderQuantity", orderQuantity);
- reqParameters.SetRequestParameter<string>("DongleInformation", softwareInfo.ToString());
- if (!isSubmit)
- {
- reqParameters.SetRequestParameter<string>("DongleInformation", "");
- reqParameters.SetRequestParameter<int>("IsHeadquarters", -1);
- }
- HPSocketCS.Extended.ReturnData returnData = CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.SubmitSoftwareInfo, reqParameters);
- return returnData;
- }
- #endregion
- }
- /// <summary>
- /// 登录处理
- /// </summary>
- public class CloudLoginServerClient
- {
- public CloudLoginServerClient(string eID, ushort port)
- {
- this._EnterpriseID = eID;
- this._Port = port;
- }
- string _EnterpriseID = "";
- public string EnterpriseID
- {
- get { return _EnterpriseID; }
- set { _EnterpriseID = value; }
- }
- # if DEBUG
- // string _ServerIP = "192.168.1.12";
- string _ServerIP = "bjb.lyfz.net";
- #else
- string _ServerIP = "bjb.lyfz.net";
- #endif
- public string ServerIP
- {
- get { return _ServerIP; }
- set { _ServerIP = value; }
- }
- ushort _Port = 8000;
- public ushort Port
- {
- get { return _Port; }
- set { _Port = value; }
- }
-
- private LYFZ.Network.TCPNetworkClient.TCP_NetworkClient tcpClient = new Network.TCPNetworkClient.TCP_NetworkClient();
- /// <summary>
- /// 客户端网络连接对象
- /// </summary>
- public LYFZ.Network.TCPNetworkClient.TCP_NetworkClient TcpClient
- {
- get { return tcpClient; }
- }
- /// <summary>
- /// 连接服务器
- /// </summary>
- /// <returns></returns>
- public bool ConnectServer()
- {
- return this.tcpClient.ConnectionServer(this.ServerIP,this.Port);
- }
- /// <summary>
- /// 获取云服务器信息
- /// </summary>
- /// <returns></returns>
- public HPSocketCS.Extended.ReturnData GetCloudServerInfo(string eID)
- {
- HPSocketCS.Extended.RequestParameters reqParameters = new HPSocketCS.Extended.RequestParameters();
- reqParameters.SetRequsetEnterpriseIDParameter(eID);
- return CloudServerClient.SendCommandToCloudServer(tcpClient.Client, HPSocketCS.Extended.TransferRequestCommand.CloudLoginIP, reqParameters);
- }
- /// <summary>
- /// 获取云服务器信息
- /// </summary>
- /// <param name="jsonData"></param>
- /// <returns></returns>
- public CloudLoginInfo GetCloudLoginInfo(string jsonData)
- {
- return Newtonsoft.Json.JsonConvert.DeserializeObject<CloudLoginInfo>(jsonData);
- }
- /// <summary>
- /// 关闭连接
- /// </summary>
- public void CloseConnect()
- {
- this.tcpClient.CloseConnected();
- }
- }
- }
|