2025-03-12 14:54:22 +08:00

114 lines
3.8 KiB
C++

#include <QApplication>
#include <QCommandLineParser>
#include <QDesktopServices>
#include <QUrl>
#include "common/QtAppGlobalSet.h"
#include "pub_sysinfo_api/SysInfoApi.h"
#include "pub_sysinfo_api/SysInfoBase.h"
using namespace iot_public;
std::string m_ServerNode[2];
std::string m_ServerAddr[2];
bool m_changeAddr = false;
int m_addrNum = 0;
QString m_ip;
enum CommandLineParseResult
{
CommandLineOk,
CommandLineError,
CommandLineVersionRequested,
CommandLineHelpRequested
};
CommandLineParseResult parseCommandline(QApplication& app)
{
QCommandLineParser parser;
parser.addHelpOption();
//是否升级数据库
m_ip = "";
QCommandLineOption _ip(QStringList() << "ip","ip","ip");
parser.addOption(_ip);
parser.process(app);
m_ip = parser.value(_ip);
return CommandLineOk;
}
void initIp()
{
CSysInfoInterfacePtr sysInfoPtr;
if (createSysInfoInstance(sysInfoPtr))
{
SNodeInfo LocalNode,ServerNode1,ServerNode2;
sysInfoPtr->getLocalNodeInfo(LocalNode); //获取当前节点信息
int DomainId=LocalNode.nDomainId; //获取当前节点所属域ID
SAppInfo AppInfo;
sysInfoPtr->getAppInfoByName("COMAPP", AppInfo);
int AppId = AppInfo.nId;
SAppDeploy AppDeploy;
sysInfoPtr->getAppDeployById(DomainId,AppId,AppDeploy); //获取当前域公共应用部署信息
std::string ServerNodeName1 = AppDeploy.strNode1; //获取当前域公共应用部署的第一个节点名
sysInfoPtr->getNodeInfoByName(ServerNodeName1,ServerNode1); //获取公共应用部署的节点信息
m_ServerAddr[0] = ServerNode1.strNic1Addr; //获取公共应用部署的节点IP地址
m_ServerNode[0] = ServerNodeName1;
if(AppDeploy.strNode2 != "")
{
std::string ServerNodeName2 = AppDeploy.strNode2;
sysInfoPtr->getNodeInfoByName(ServerNodeName2,ServerNode2);
m_ServerAddr[1] = ServerNode2.strNic1Addr;
m_ServerNode[1] = ServerNodeName2;
m_changeAddr = true;
}
}
}
int main(int argc, char *argv[])
{
iot_common::doQtAppGlobalSet();
QApplication a(argc, argv);
initIp();
switch (parseCommandline(a)) {
case CommandLineError:
qApp->quit();
exit(1);
break;
case CommandLineOk:
if(m_ip.isEmpty())
{
if(m_changeAddr && m_ServerAddr[1] !="")
{
QString addr = QString("http://%1:1120/page/design.html").arg(QString::fromStdString(m_ServerAddr[1]));
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
}else if(m_changeAddr && m_ServerAddr[1] =="")
{
QString addr = QString("http://127.0.0.1:1120/page/design.html");
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
}else if(!m_changeAddr && m_ServerAddr[0] !="")
{
QString addr = QString("http://%1:1120/page/design.html").arg(QString::fromStdString(m_ServerAddr[0]));
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
}else if(!m_changeAddr && m_ServerAddr[0] =="")
{
QString addr = QString("http://127.0.0.1:1120/page/design.html");
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
}
}else
{
QString addr = QString("http://%1:1120/page/design.html").arg(m_ip);
QDesktopServices::openUrl(QUrl(QLatin1String(addr.toStdString().c_str())));
}
qApp->quit();
exit(0);
break;
default:
break;
}
return a.exec();
}