Commit b35fabb6 by wuyang.zou

优化编译程序目标文件

优化 Dockerfile 内容,方便打包 stg 、prod 环境 镜像程序包;
优化日志输出

Version: 5.2023.11.10
parent e857251c
#! /bin/bash
./configure -prefix /home/freemud/arm_build_all/qt_aarch64 \
-openssl-linked \
OPENSSL_PREFIX='/home/freemud/arm_build_all/openssl-1.1.1v-arm/built_arm_ok' OPENSSL_LIBS='-lssl -lcrypto' \
-opensource -confirm-license \
-release \
-strip \
-shared \
-xplatform myaarch64 \
-optimized-qmake \
-c++std c++11 \
--rpath=no \
-pch \
-skip qt3d \
-skip qtactiveqt \
-skip qtandroidextras \
-skip qtcanvas3d \
-skip qtconnectivity \
-skip qtdatavis3d \
-skip qtdoc \
-skip qtgamepad \
-skip qtlocation \
-skip qtmacextras \
-skip qtnetworkauth \
-skip qtpurchasing \
-skip qtremoteobjects \
-skip qtscript \
-skip qtscxml \
-skip qtsensors \
-skip qtspeech \
-skip qtsvg \
-skip qttools \
-skip qttranslations \
-skip qtwayland \
-skip qtwebengine \
-skip qtwebview \
-skip qtwinextras \
-skip qtx11extras \
-skip qtxmlpatterns \
-make libs \
-make examples \
-nomake tools -nomake tests \
-gui \
-widgets \
-dbus-runtime \
--glib=no \
--iconv=no \
--pcre=qt \
--zlib=qt \
--freetype=qt \
--harfbuzz=qt \
-no-opengl \
-linuxfb \
--xcb=no \
--libpng=qt \
--libjpeg=qt \
-recheck-all
......@@ -2,11 +2,9 @@
【主要是安装运行在 x86_64 host能够编译 arm版本程序的源代码,aarch-*-gcc aarch-*g++】
【 /opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc || aarch64-linux-gnu-g++ 】
2、安装 x86_64 host 能够运行的 Qt Creater 以及 Qt源代码: qt-everywhere-src-5.12.9.tar.xz
【 /home/freemud/arm_build_all/qt-everywhere-src-5.12.9/qtbase/mkspecs/myaarch64 】
3、编译 能支持arm版本 的 qmake 编译器文件,以及arm版本相关 qt 库文件;
【需依赖提前使用 aarch-*-gcc 编译好 arm 版本的 openssl 头文件 和 库】
【/home/freemud/arm_build_all/openssl-1.1.1v-arm 】
......@@ -18,31 +16,28 @@
.......\
4、使用 x86_64 host 能够运行的 Qt Creater 新增能 构建arm程序 qmake编译器套件;
【构建完成:/home/freemud/arm_build_all/qt_aarch64/bin/qmake && lib && include】
5、使用arm版本的qmake套件 编译现有的 PmsPlugin 程序的源代码;
【openssl 库版本原因,需要调整 长连接部分(加解密函数方法),注释源代码,一步一个脚印调试 应用程序异常退出的原因】
6、使用 Mac电脑(M1 M2 cpu架构,就是 arm架构)安装 docker,再安装 ubuntu:20.04 容器镜像;
在镜像中安装 mysqlclient-dev 包,从而获得 arm 版本的 libmysqlclient.so 和 include 文件;
【这样就不用在 x86_64 host 中编译 arm 版本的 libmysqlclient.so (此过程非常复杂)】
【/home/freemud/arm_build_all/mysql-client】
7、使用 arm版本的 libmysqlclient.so 和 include 头文件,编译 Qt 应用程序需要依赖的 libqsqlmysql.so 库文件
(应用程序需要依赖这个文件,对Mysql数据库进行连接,并进行数据操作)
【/home/freemud/arm_build_all/qt-everywhere-src-5.12.9/qtbase/src/plugins/sqldrivers】
【/home/freemud/arm_build_all/qt-everywhere-src-5.12.9/qtbase/plugins/sqldrivers/libqsqlmysql.so】
8、将 应用程序的依赖库进行 打包,拷贝到 容器镜像中进行运行测试,以及后期的联调;
【/home/freemud/arm_build_all/build-takeout-aarch64_qt_5_12-Release/bin/PmsPlugin && lib && config 】
9、将容器镜像进行打包,为后续 lib办公室的物理机进行运行测试;
【无】
10、新增容器核心 心跳检查接口,以及新增日志滚动清理逻辑;
From ubuntu:20.04
MAINTAINER freeemud<wuyang.zou@starbucks.cn>
ENV TZ Asia/Shanghai
RUN apt-get update && apt-get install -y tzdata
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
RUN echo 'Asia/Shanghai' >/etc/timezone
COPY ./bin /data/bin
COPY ./bin/config-prod.ini /data/bin/config.ini
Copy ./run.sh /data
WORKDIR /data
......
From ubuntu:20.04
MAINTAINER freeemud<wuyang.zou@starbucks.cn>
ENV TZ Asia/Shanghai
RUN apt-get update && apt-get install -y tzdata
RUN ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && dpkg-reconfigure -f noninteractive tzdata
RUN echo 'Asia/Shanghai' >/etc/timezone
COPY ./bin /data/bin
COPY ./bin/config-stg.ini /data/bin/config.ini
Copy ./run.sh /data
WORKDIR /data
ENTRYPOINT ["bash","run.sh"]
......@@ -3,5 +3,5 @@
export LD_LIBRARY_PATH="/opt/lib:/home/admin/pcsPlugin/bin/lib:/home/admin/pcsPlugin/bin/lib64"
#export LD_LIBRARY_PATH="/opt/lib:/data/bin/lib:/data/bin/lib64"
/home/admin/pcsPlugin/bin/PmsPlugin
#/data/bin/PmsPlugin
/home/admin/pcsPlugin/bin/PcsPlugin
#/data/bin/PcsPlugin
......@@ -3,5 +3,5 @@
#export LD_LIBRARY_PATH="/opt/lib:/home/admin/pcsPlugin/bin/lib:/home/admin/pcsPlugin/bin/lib64"
export LD_LIBRARY_PATH="/opt/lib:/data/bin/lib:/data/bin/lib64"
#/home/admin/pcsPlugin/bin/PmsPlugin
/data/bin/PmsPlugin
#/home/admin/pcsPlugin/bin/PcsPlugin
/data/bin/PcsPlugin
文件用途介绍:
1、Dockerfile 用于将开发机上可执行程序 以及依赖库等文件,进行打包成下镜像文件;
打包镜像文件命令:sudo docker build . -t harbor-ppe1.eniot.io/edge/pcs-plugin:tag_pcs-plugin_v4_20231024_002
================ 文件用途介绍: ================
2、run.sh. 是应用程序启动脚本文件;
1、Dockerfile 用于将开发机上可执行程序 以及依赖库等文件,进行打包成下镜像文件;
PcsPlugin应用, 打包成镜像文件命令:
sudo docker build . -t harbor-ppe1.eniot.io/edge/pcs-plugin:tag_pcs-plugin_v4_20231024_002 【默认使用 Dockerfile 文件进行镜像打包】
sudo docker build . -f Dockerfile-Stg -t harbor-ppe1.eniot.io/edge/pcs-plugin:tag_pcs-plugin_v4_20231024_002 【Stg:指定 Dockerfile-Stg 文件进行镜像打包】
sudo docker build . -f Dockerfile-Prod -t harbor-ppe1.eniot.io/edge/pcs-plugin:tag_pcs-plugin_v4_20231024_002 【Prod:指定 Dockerfile-Prod 文件进行镜像打包】
2、run.sh 是应用程序启动脚本文件;
3、bin 文件夹是 PmsPlugin 程序可以运行的全部程序文件目录;
3、bin 文件夹是 PcsPlugin 程序可以运行的全部程序文件目录;
======== 开发机器环境介绍 ===========
======== Box 开发机器环境介绍 ===========
机器ip:10.73.194.155
账户:admin
密码:En&viSi0n!#%
机器ip:10.73.194.155 账户:admin 密码:En&viSi0n!#%
======== 插件的心跳检查接口 ===========
curl --location 'http://127.0.0.1:24409/healthCheck' \
--header 'Content-Type: application/json' \
--data ''
======== 手动启动本地镜像(非系统角色)环境;初期调试使用 ================
======== 本机开发调试:手动启动本地镜像(非系统角色)环境;初期调试使用 ================
sudo docker run --net="host" -p 24409:24409 --name pcsPlugin33 -it -d pcs-plugin:v4.2023.10.24 bash
sudo docker run --net="host" -p 24409:24409 --name pcsPlugin3 -v /home/admin/pcsPlugin:/data -it -d ubuntu:20.04 bash
sudo docker run -p 24409:24409 --name pcsPlugin2 -v /home/admin/pcsPlugin:/data -it -d ubuntu:20.04 bash
======== 将镜像保存到本地文件; ================
======== 操作镜像文件:保存导出,拷贝,导入================
sudo docker image ls 【查看镜像列表】
sudo docker save -o pcs-plugin_v4.2023.10.24.tar pcs-plugin:v4.2023.10.24 【将目标 镜像(仓库:tag)保存本地压缩包文件】
sudo docker save -o pcs-plugin_v4.2023.10.24.tar pcs-plugin:v4.2023.10.24 【将目标镜像(仓库:tag)保存本地压缩包文件】
sudo chown admin:admin /home/admin/pcsPlugin/pcs-plugin_v4.2023.10.24.tar 【修改压缩文件的 Owner,方便后续的 拷贝】
sudo chown admin:admin /home/admin/pcsPlugin/pcs-plugin_v4.2023.10.24.tar 【修改压缩文件的Owner,方便后续的拷贝】
sudo scp -r admin@10.73.194.155:/home/admin/pcsPlugin/pcs-plugin_v4.2023.10.24.tar /Users/wzou/Desktop/Arm_Pcs_Ctr 【scp开发机器镜像包,到本地进行传输】
sudo docker load -i pcs-plugin_v4.2023.10.24.tar 【将镜像压缩文件,导入到服务端的docker的镜像列表中】
sudo scp -r admin@10.73.194.155:/home/admin/pcsPlugin/pcs-plugin_v4.2023.10.24.tar /Users/wzou/Desktop/Arm_Pcs_Ctr 【scp拷贝】
sudo docker load -i pcs-plugin_v4.2023.10.24.tar 【将镜像压缩文件,导入到docker的镜像列表中】
======= docker 扩展使用 ================
https://blog.csdn.net/weixin_45505313/article/details/125020076
将正在运行的容器打包成 image:
sudo docker commit -a "wuyang.zou" -m "Create PcsPlugin Init Image" bf4ef2b8f77e pcs-plugin:v4.2023.10.24
sudo docker commit -a "wuyang.zou" -m "Create PcsPlugin Init Image" bf4ef2b8f77e pcs-plugin:v4.2023.10.24
sha256:49fba71465aa39e1db64fd21a68f52e070e010d4e89819c904de0a3a95514e15
==== 打包镜像 番外篇:【目前已经使用 Dockerfile 文件进行打包了 】====
https://blog.csdn.net/weixin_45505313/article/details/125020076
【保存镜像】docker save 镜像id -o E:\Docker\redis.tar 仓库名
【加载镜像】docker load -i E:\Docker\redis.tar
-------------------------------------------------------------
【将镜像以一个指定名字的容器运行起来】docker run -d -p 24409:24409 --name pcsPlugin ubuntu
【停止正在运行的容器】docker stop pcsPlugin
【以bash与正在运行的容器进行交互】docker exec -it pcsPlugin bash
ubuntu 20.04. images id : 15c9d636cadd
-----------------------------------------------------------------------------------
sudo docker ps --all 【有停止的容器】
sudo docker container ls 【容器id: fae29cc16c70】
sudo docker container logs
sudo docker run --net="host" -p 24409:24409 --name pcsPlugin3 -v /home/admin/pcsPlugin:/data -it -d ubuntu:20.04 bash
sudo docker ps --all 【包含停止状态的容器】
sudo docker container ls 【容器id: fae29cc16c70】
sudo docker container logs 【查看容器日志信息】
sudo docker exec -it c67b5bf46833 bash 【进入正在运行的容器】
=============== 自己的镜像运行设置 时区的配置 ==================================
=============== 镜像运行设置时区 ======================
ENV TZ=Asia/Shanghai
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \
dpkg-reconfigure -f noninteractive tzdata 作者:Docker内容分享 https://www.bilibili.com/read/cv25758166/ 出处:bilibili
dpkg-reconfigure -f noninteractive tzdata
......@@ -97,7 +97,7 @@ bool SocketCommunicate::connectTcpSvr()
connect(_sslSocket, &QSslSocket::bytesWritten, [this] (quint64 writebyte) { Q_UNUSED(writebyte); _isTimeout = false; emit writeReady(); } );
//下载证书接口(需要门店号 & 设备号)待调试, 评估是否需要保存证书文件:
QLOG_INFO() << "connectTcpSvr:: Get Certificate From Url: ......................";
QLOG_INFO() << QString("connectTcpSvr:: Get Certificate From Url: ......................");
std::string tempMacAddress = "";
std::string tempIpAddress = "";
int getMacRet = MacTool::GetMacByAdaptersAddresses( tempMacAddress , tempIpAddress );
......
......@@ -339,7 +339,7 @@ void FlowControl::_ClickToLogin()
{
QLOG_INFO()<<QString("[<<<<---FlowControl::_ClickToLogin() PmsPlugin Try Login Now,If Failed Then Retry After 6s--->>>>]");
_PmsMachineReqTryLogin();
}else{
} else {
m_loginTimer->start(1000*60*2);
}
}
......@@ -430,7 +430,7 @@ void FlowControl::_NotifyPmsPullOrder()
void FlowControl::_NotifyPmsUpdateOrder()
{
if ( !m_simValidOrdersList.isEmpty() ) {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_NotifyPmsUpdateOrder: m_simValidOrdersList.count()=%1, m_waitUpdateOrderList.count()=%2, Priority Process Insert List--->>>>>]")
QLOG_INFO()<<QString("[<<<<---_NotifyPmsUpdateOrder: m_simValidOrdersList.count()=%1, m_waitUpdateOrderList.count()=%2, Priority Process Insert List--->>>>>]")
.arg( m_simValidOrdersList.count() ).arg( m_waitUpdateOrderList.count() );
m_notifyPmsUpdateTimer->start(1000*3);
return;
......@@ -438,11 +438,11 @@ void FlowControl::_NotifyPmsUpdateOrder()
if(!m_waitUpdateOrderList.isEmpty())
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_NotifyPmsUpdateOrder: m_waitUpdateOrderList.isEmpty()=%1, m_waitUpdateOrderList.count()=%2--->>>>>]")
QLOG_INFO()<<QString("[<<<<---_NotifyPmsUpdateOrder: m_waitUpdateOrderList.isEmpty()=%1, m_waitUpdateOrderList.count()=%2--->>>>>]")
.arg( m_waitUpdateOrderList.isEmpty()?1:0 ).arg( m_waitUpdateOrderList.count() );
m_notifyPmsUpdateTimer->start(1000*1);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FM插件 向PMS数据库插入数据; 并添加 Redis --->>>>]");
QLOG_INFO()<<QString("[<<<<---Fm Plugin Insert Into PCS DB, And Append Redis --->>>>]");
QString listFirstOrderId = m_waitUpdateOrderList.takeFirst();
OrderObject* orderObject = m_FmOrdersMap.value(listFirstOrderId);
......@@ -478,7 +478,7 @@ void FlowControl::_NotifyPmsUpdateOrder()
break;
} else {
QLOG_ERROR()<<QString("[<<<<---FlowControl::_NotifyPmsUpdateOrder _AppendOrderInfo2Redis Failed, Try Again--->>>>]");
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyPmsUpdateOrder() Begin initQtRedisClient()--->>>>]");
QLOG_INFO()<<QString("[<<<<---FlowControl::_NotifyPmsUpdateOrder() Begin initQtRedisClient()--->>>>]");
m_initPmsRedisRet = QtRedisClient::getInstance().initQtRedisClient();
continue;
}
......@@ -491,10 +491,10 @@ void FlowControl::_NotifyPmsUpdateOrder()
PmsOrdersData::getInstance().deleteOrderData(orderObject);
}
//将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
_AddOrderInfo2ReportList(orderObject,QString("2"),QString::fromLocal8Bit("Order Insert/Update PMS DB Failed !!!"));
_AddOrderInfo2ReportList(orderObject,QString("2"),QString("Order Insert/Update PMS DB Failed !!!"));
}
} else {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyPmsUpdateOrder Insert Mysql DB orderObject Is Null:--->>>>]");
QLOG_INFO()<<QString("[<<<<---FlowControl::_NotifyPmsUpdateOrder Insert Mysql DB orderObject Is Null:--->>>>]");
}
} else {
m_notifyPmsUpdateTimer->start(1000*5);
......@@ -512,7 +512,7 @@ void FlowControl::_NotifyCyclePullAllOrder()
//定期拉取OMS门店全部有效订单 间隔为:10分钟;
//m_cyclePullAllOrderTimer->start(1000*60*10);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyCyclePullAllOrder Next Pull All Order Time: %1--->>>>]")
QLOG_INFO()<<QString("[<<<<---FlowControl::_NotifyCyclePullAllOrder Next Pull All Order Time: %1--->>>>]")
.arg(QDateTime::currentDateTime().addSecs(60*10).toString("yyyy-MM-dd hh:mm:ss"));
}
......@@ -721,8 +721,7 @@ bool FlowControl::_SimValidOrdersListIsEmpty(){
void FlowControl::_InitDataBeforeLogin(){
QLOG_INFO()<<"[<<<<---FlowControl::_InitDataBeforeLogin:Openssl support--->>>>]:";
// << QSslSocket::supportsSsl(); //exec will dump;
QLOG_INFO()<<"[<<<<---FlowControl::_InitDataBeforeLogin:Openssl support--->>>>]:"<< QSslSocket::supportsSsl(); //exec will dump;
m_loginSocket = new BillSocket(this);
m_pullOrderSocket = new BillSocket(this);
m_reportOMSRecordOrderSocket = new BillSocket(this);
......@@ -785,6 +784,7 @@ bool FlowControl::_Login()
result = false;
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("登录失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
m_loginErrorCount++;
m_bFirstRecvInfo =false; // _Login() 自驱动, _ClickToLogin() -> _PmsMachineReqTryLogin()-> 双重触发;
} else {
m_storeName = recvJson[JSON_STORENAME].toString();
m_openTcpChannel = recvJson[JSON_OPEN_TCP_CHANNEL].toBool();
......@@ -871,6 +871,7 @@ bool FlowControl::_Login()
return result;
}
void FlowControl::_PullOrderData()
{
if(m_orderPullList.isEmpty())
......@@ -1878,7 +1879,7 @@ void FlowControl::_CrondClearExpireOrder()
//QDateTime currentDateTime= QDateTime::currentDateTime(); //--按秒数来验证ok--
QDate currentDate= QDate::currentDate();
//QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: 清理内存中订单数据的清理日期:%1 --->>>>]").arg(currentDateTime.toString("yyyy-MM-dd hh:mm:ss")); //--按秒数来验证OK--
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: 清理内存中订单数据的清理日期:%1 --->>>>]").arg(currentDate.toString("yyyy-MM-dd"));
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder: Clear Memory Order Data, Clear Datetime: %1 --->>>>]").arg(currentDate.toString("yyyy-MM-dd"));
OrderObject *order=nullptr;
m_OrderEntryMutex.lock();
foreach (order, m_FmOrdersMap.values()) {
......@@ -1889,14 +1890,14 @@ void FlowControl::_CrondClearExpireOrder()
}
//QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder-> order->createTime Or expectDate :%1--->>>>]").arg(order->createTime); //--按秒数来验证ok--
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder-> order createDate Or expectDate :%1--->>>>]").arg(createDate.toString("yyyy-MM-dd"));
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder-> Order CreateDate Or ExpectDate :%1--->>>>]").arg(createDate.toString("yyyy-MM-dd"));
//qint64 seconds = createDateTime.secsTo(currentDateTime); //--按秒数来验证ok--
qint64 days = createDate.daysTo(currentDate);
//QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: ClearExpireOrder: 相差多少秒:%1--->>>>]").arg(seconds); //--按秒数来验证ok--
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: ClearExpireOrder: 相差多少天:%1--->>>>]").arg(days);
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder: ClearExpireOrder: Diff %1 Days--->>>>]").arg(days);
if(days>=1)
{
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder: ClearExpireOrder: Emit Signal:Clear Order orderID:%1--->>>>]").arg(order->id);
QLOG_INFO()<<QString("[<<<<---_CrondClearExpireOrder: ClearExpireOrder: Emit Signal: Clear OrderId: %1--->>>>]").arg(order->id);
emit clearorder(order->id,order->orderStatus);
m_FmOrdersMap.value(order->id)->deleteLater();
m_FmOrdersMap.remove(order->id);
......@@ -1917,7 +1918,7 @@ void FlowControl::_CrondClearExpireOrder()
if ( RepOMSRecOrderIn ) {
QDate recordDate = QDate::fromString( (RepOMSRecOrderIn->recordDate ).mid(0,10),"yyyy-MM-dd");
qint64 recordDays = recordDate.daysTo(currentDate);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: ClearExpireRecordOrderInfo: 相差多少天:%1--->>>>]").arg(recordDays);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_CrondClearExpireOrder: ClearExpireRecordOrderInfo: Diff %1 Day--->>>>]").arg(recordDays);
if ( recordDays >= 1 ) {
m_orderRecordRepOMSList.removeOne( RepOMSRecOrderIn );
delete RepOMSRecOrderIn;
......
......@@ -31,7 +31,7 @@ void LocalHttpServer::run()
healthCheckReplyObject.insert("status","ok");
healthCheckReplyObject.insert("statusCode","100");
healthCheckReplyObject.insert("currentDatetime", QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
QLOG_INFO() << QString("[<<<<---FM PmsPlugin Response healthCheck Result:--->>>>]") << healthCheckReplyObject;
QLOG_INFO() << QString("[<<<<---FM PcsPlugin Response healthCheck Result:--->>>>]") << healthCheckReplyObject;
session->replyJsonObject(healthCheckReplyObject);
} else {
// QString recvData = QString::fromUtf8(session->requestRawData());
......@@ -70,25 +70,26 @@ void LocalHttpServer::run()
}
/***将FM外卖插件中的合法有效数据返回给上面Http发过来的请求***/
replyObject = FlowControl::GetInstance()._PackHttpReplyJson( status, msg, data,iscontinue, pushOrderId );
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PmsPlugin Response Http Result:--->>>>]") << replyObject;
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PcsPlugin Response Http Result:--->>>>]") << replyObject;
session->replyJsonObject(replyObject);
}
}
/***解析FM外卖插件HTTP服务与Http请求的会话连接是否断开: 会话连接断开***/
else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PmsPlugin Http Service & Http Session Disconnect--->>>>]");
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PcsPlugin Http Service & Http Session Disconnect--->>>>]");
}
} );
/***FM外卖插件绑定启动HTTP服务的端口***/
int port = ConfigManger::GetInstance().GetHttpServerPort();
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PmsPlugin Http Listen Port: %1 :--->>>>]").arg(port);
if(m_tcpServerManage->listen( QHostAddress::Any, port))
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PcsPlugin Http Listen Port: %1 :--->>>>]").arg(port);
if ( m_tcpServerManage->listen( QHostAddress::Any, port ) )
{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PmsPlugin Http Listen Port Bind Successful !!!--->>>>]");
}else{
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PmsPlugin Http Listen Port Bind Failed !!!--->>>>]");
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM PcsPlugin Http Listen Port Bind Successful !!!--->>>>]");
} else {
QLOG_ERROR() << QString::fromLocal8Bit("[<<<<---FM PcsPlugin Http Listen Port Bind Failed !!!--->>>>]");
}
}
......
......@@ -12,7 +12,7 @@ include("./QsLog/QsLog.pri")
include("./JQLibrary/JQLibrary.pri")
include("./qredisclient/qredisclient.pri")
TARGET = PmsPlugin
TARGET = PcsPlugin
TEMPLATE = app
CONFIG +=c++11
......
......@@ -76,7 +76,7 @@ int main(int argc, char *argv[])
LoadTheme(APP_THEME);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<-- fmPmsPlugin Start Version: %1 -->>>>>>>>]").arg(APP_VERSION);
QLOG_INFO() << QString("[<<<<<<<-- fmPcsPlugin Start Version: %1 -->>>>>>>>]").arg(APP_VERSION);
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]");
// UnitTest;
......
......@@ -6,7 +6,7 @@
#define APP_THEME "deaufult"
// #define APP_VERSION "4.2023.10.12"
#define APP_VERSION "5.2023.10.29"
#define APP_VERSION "5.2023.11.10"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn"
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.11.1, 2023-10-29T15:43:29. -->
<!-- Written by QtCreator 4.11.1, 2023-10-29T19:50:09. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
......
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