Commit fab216f4 by wuyang.zou

add new function:

starbucks Now 扫码上吊屏;解除盒子 下吊屏;
parent 28e695f7
...@@ -61,11 +61,13 @@ FlowControl::FlowControl() ...@@ -61,11 +61,13 @@ FlowControl::FlowControl()
m_pullTimer=new QTimer(this); m_pullTimer=new QTimer(this);
m_reportOMSReocrdOrderTimer = new QTimer(this); m_reportOMSReocrdOrderTimer = new QTimer(this);
m_loginTimer=new QTimer(this); m_loginTimer=new QTimer(this);
m_notifySimPullTimer = new QTimer(this); m_notifyPmsPullTimer = new QTimer(this);
m_cyclePullAllOrderTimer = new QTimer(this);
m_remindCasherBlinkFloatTimer = new QTimer(this); m_remindCasherBlinkFloatTimer = new QTimer(this);
connect(m_loginTimer,&QTimer::timeout,this,&FlowControl::_ClickToLogin); connect(m_loginTimer,&QTimer::timeout,this,&FlowControl::_ClickToLogin);
connect(m_notifySimPullTimer,&QTimer::timeout,this,&FlowControl::_ClickToNotifySimPullOrder); connect(m_notifyPmsPullTimer,&QTimer::timeout,this,&FlowControl::_NotifyPmsPullOrder);
connect(m_cyclePullAllOrderTimer,&QTimer::timeout,this,&FlowControl::_NotifyCyclePullAllOrder);
connect(m_remindCasherBlinkFloatTimer,&QTimer::timeout,this,&FlowControl::_RemindCasherBlinkFloatForm); connect(m_remindCasherBlinkFloatTimer,&QTimer::timeout,this,&FlowControl::_RemindCasherBlinkFloatForm);
connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrderData); connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrderData);
connect(m_reportOMSReocrdOrderTimer,&QTimer::timeout,this,&FlowControl::_ReportOMSRecordOrderInfo); connect(m_reportOMSReocrdOrderTimer,&QTimer::timeout,this,&FlowControl::_ReportOMSRecordOrderInfo);
...@@ -102,7 +104,7 @@ FlowControl::FlowControl() ...@@ -102,7 +104,7 @@ FlowControl::FlowControl()
_InitDataBeforeLogin(); _InitDataBeforeLogin();
m_loginTimer->start(6*1000); m_loginTimer->start(6*1000);
m_notifySimPullTimer->start(1000*5); m_notifyPmsPullTimer->start(1000*5);
//_TestRedis(); //_TestRedis();
//_TestInsertOrderData(); //_TestInsertOrderData();
...@@ -112,7 +114,6 @@ void FlowControl::_TestRedis(){ ...@@ -112,7 +114,6 @@ void FlowControl::_TestRedis(){
/* Test Redis Function */ /* Test Redis Function */
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件 Beign Test Redis:--->>>>]"); QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FM外卖插件 Beign Test Redis:--->>>>]");
QtRedisClient::getInstance().testOrderRedisExist(QString("1234")); QtRedisClient::getInstance().testOrderRedisExist(QString("1234"));
QtRedisClient::getInstance().pushOrder2Redis(QString("ldh"),1);
} }
void FlowControl::_TestInsertOrderData(){ void FlowControl::_TestInsertOrderData(){
...@@ -159,13 +160,17 @@ void FlowControl::_TestInsertOrderData(){ ...@@ -159,13 +160,17 @@ void FlowControl::_TestInsertOrderData(){
m_FmOrdersMap.insert(testOrderObject->id, testOrderObject); m_FmOrdersMap.insert(testOrderObject->id, testOrderObject);
m_simValidOrdersList.append(testOrderObject->id); m_simValidOrdersList.append(testOrderObject->id);
QLOG_INFO() << QString("[<<<<---FlowControl::_TestInsertOrderData() m_simValidOrdersList Append Success:%1--->>>>]").arg(testOrderObject->id); QLOG_INFO() << QString("[<<<<---FlowControl::_TestInsertOrderData() m_simValidOrdersList Append Success:%1--->>>>]").arg(testOrderObject->id);
QtRedisClient::getInstance().pushOrder2Redis(testOrderObject);
QLOG_INFO() << QString("[<<<<---FlowControl::test pushOrder2Redis() orderId:%1 Success--->>>>]").arg(testOrderObject->id);
} }
} }
bool FlowControl::_AppendOrderInfo2Redis(const OrderObject* orderObject) { bool FlowControl::_AppendOrderInfo2Redis(const OrderObject* orderObject) {
QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FlowControl::_AppendOrderInfo2Redis: OrderId:%1--->>>>]").arg(orderObject->id); QLOG_INFO() << QString::fromLocal8Bit("[<<<<---FlowControl::_AppendOrderInfo2Redis: OrderId:%1--->>>>]").arg(orderObject->id);
return QtRedisClient::getInstance().pushOrder2Redis(orderObject->id,orderObject->orderStatus); return QtRedisClient::getInstance().pushOrder2Redis(orderObject);
} }
void FlowControl::_GetIpAddress() void FlowControl::_GetIpAddress()
...@@ -302,62 +307,89 @@ void FlowControl::_SmartTriggerClickPosBtn(const bool bTimerTrigger) ...@@ -302,62 +307,89 @@ void FlowControl::_SmartTriggerClickPosBtn(const bool bTimerTrigger)
} }
void FlowControl::_ClickToNotifySimPullOrder() void FlowControl::_NotifyPmsPullOrder()
{ {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---触发按钮点击事件:_ClickToNotifySimPullOrder: m_simValidOrdersList.isEmpty()==%1--->>>>>]").arg(m_simValidOrdersList.isEmpty()); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---:_NotifyPmsPullOrder: m_simValidOrdersList.isEmpty()==%1--->>>>>]").arg(m_simValidOrdersList.isEmpty());
if(!m_simValidOrdersList.isEmpty()) if(!m_simValidOrdersList.isEmpty())
{ {
m_notifySimPullTimer->start(1000*5); m_notifyPmsPullTimer->start(1000*5);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FM插件 向PMS数据库插入数据; 并添加 Redis --->>>>]"); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FM插件 向PMS数据库插入数据; 并添加 Redis --->>>>]");
QString listFirstOrderId = m_simValidOrdersList.takeFirst(); QString listFirstOrderId = m_simValidOrdersList.takeFirst();
OrderObject* orderObject = m_FmOrdersMap.value(listFirstOrderId); OrderObject* orderObject = m_FmOrdersMap.value(listFirstOrderId);
//更新插入结果;
bool updateInsertRet = false; // 更新/ 插入结果;
bool updateRet = false;
bool insertRet = false;
bool bExistOrder = false;
if(orderObject) { if(orderObject) {
//如果订单存在库中则更新订单状态; //如果订单存在库中则更新订单状态;
if( PmsOrdersData::getInstance().isOrderExist(orderObject->id) ){ bExistOrder = PmsOrdersData::getInstance().isOrderExist(orderObject->id);
updateInsertRet = PmsOrdersData::getInstance().updateOrderStatus(orderObject,orderObject->orderStatus); if( bExistOrder ){
updateRet = PmsOrdersData::getInstance().updateOrderStatus(orderObject,orderObject->orderStatus,orderObject->makeStatus);
//不存在则插入; //不存在则插入;
} else { } else {
QString pmsOrderRef; QString pmsOrderRef;
updateInsertRet = PmsOrdersData::getInstance().insertOrderData(orderObject,pmsOrderRef); insertRet = PmsOrdersData::getInstance().insertOrderData(orderObject,pmsOrderRef);
} }
QLOG_INFO()<<QString("[<<<<---FlowControl::_ClickToNotifySimPullOrder Insert Mysql DB Order:%1 Insert Ret:--->>>>]") QLOG_INFO()<<QString("[<<<<---FlowControl::_NotifyPmsPullOrder Insert Mysql DB Order:%1 bExistOrder:%2 insertRet:%3 updateRet:%4--->>>>]")
.arg(orderObject->id)<<updateInsertRet; .arg(orderObject->id).arg(bExistOrder?1:0).arg(insertRet?1:0).arg(updateRet?1:0);
//如果订单插入数据库成功后,向Redis中添加此订单信息; //如果订单 插入/更新 数据库成功后,向Redis中添加此订单信息;
if(updateInsertRet){ if(insertRet || updateRet) {
for (int i=0;i<3;i++) { for (int i=0;i<3;i++) {
if( _AppendOrderInfo2Redis(orderObject) ) { if( _AppendOrderInfo2Redis(orderObject) ) {
QLOG_INFO()<<QString("[<<<<---FlowControl::_ClickToNotifySimPullOrder _AppendOrderInfo2Redis Success Try times:%1--->>>>]").arg(i); QLOG_INFO()<<QString("[<<<<---FlowControl::_NotifyPmsPullOrder _AppendOrderInfo2Redis Success Try times:%1--->>>>]").arg(i);
//将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
//只有第一次插入DB成功,才会想OMS汇报入机情况;
// 将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
if(insertRet) {
_AddOrderInfo2ReportList(orderObject,QString("1"),QString::fromLocal8Bit("订单入PMS库成功并通知Redis成功")); _AddOrderInfo2ReportList(orderObject,QString("1"),QString::fromLocal8Bit("订单入PMS库成功并通知Redis成功"));
}
break; break;
} else { } else {
QLOG_ERROR()<<QString("[<<<<---FlowControl::_ClickToNotifySimPullOrder _AppendOrderInfo2Redis Failed, Try Again--->>>>]"); QLOG_ERROR()<<QString("[<<<<---FlowControl::_NotifyPmsPullOrder _AppendOrderInfo2Redis Failed, Try Again--->>>>]");
continue; continue;
} }
} }
//如果订单插入数据库失败后;向服务端汇报订单落库情况; //如果订单插入/更新 数据库失败后;向服务端汇报订单落库情况;
} else { } else {
QLOG_ERROR()<<QString("[<<<<---FlowControl::_ClickToNotifySimPullOrder Insert Mysql DB Order:%1 Insert Failed--->>>>]") QLOG_ERROR()<<QString("[<<<<---FlowControl::_NotifyPmsPullOrder Insert Mysql DB Order:%1 Insert/Update Failed--->>>>]")
.arg(orderObject->id); .arg(orderObject->id);
//进行数据清除回滚;防止与重新入机的订单数据出现重复; 删除 orders/order_item/order_item_condiments
//只有插入失败才 进行数据清理;防止与重新入机的订单数据出现重复; 删除 orders/order_item/order_item_condiments
if(!bExistOrder && !insertRet) {
PmsOrdersData::getInstance().deleteOrderData(orderObject); PmsOrdersData::getInstance().deleteOrderData(orderObject);
}
//将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注; //将此订单添加汇报队列中; 参数2: "1":代表成功; "2":代表失败; 参数3:入机备注;
_AddOrderInfo2ReportList(orderObject,QString("2"),QString::fromLocal8Bit("订单入PMS库失败")); _AddOrderInfo2ReportList(orderObject,QString("2"),QString::fromLocal8Bit("订单 插入/更新 PMS库数据失败"));
} }
} else { } else {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_ClickToNotifySimPullOrder Insert Mysql DB orderObject Is Null:--->>>>]"); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyPmsPullOrder Insert Mysql DB orderObject Is Null:--->>>>]");
} }
} else { } else {
//如果订单队列中没有待处理订单,定时器设定为8s; //如果订单队列中没有待处理订单,定时器设定为8s;
m_notifySimPullTimer->start(1000*8); m_notifyPmsPullTimer->start(1000*8);
} }
} }
void FlowControl::_NotifyCyclePullAllOrder()
{
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<--- _NotifyCyclePullAllOrder: m_simValidOrdersList.count()==%1--->>>>>]").arg( m_simValidOrdersList.count() );
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyCyclePullAllOrder Call onGetOMSAllOrders():--->>>>]");
onGetOMSAllOrders();
//定期拉取OMS门店全部有效订单 间隔为:10分钟;
m_cyclePullAllOrderTimer->start(1000*60*10);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_NotifyCyclePullAllOrder Next Pull All Order Time: %1--->>>>]")
.arg(QDateTime::currentDateTime().addSecs(60*10).toString("yyyy-MM-dd hh:mm:ss"));
}
void FlowControl::_RemindCasherBlinkFloatForm() void FlowControl::_RemindCasherBlinkFloatForm()
{ {
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_RemindCasherBlinkFloatForm: m_simValidOrdersList.isEmpty()==%1--->>>>>]").arg(m_simValidOrdersList.isEmpty()); QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---_RemindCasherBlinkFloatForm: m_simValidOrdersList.isEmpty()==%1--->>>>>]").arg(m_simValidOrdersList.isEmpty());
...@@ -582,9 +614,13 @@ bool FlowControl::_Login() ...@@ -582,9 +614,13 @@ bool FlowControl::_Login()
m_heartTimer->start(1000*60*5); m_heartTimer->start(1000*60*5);
m_pullTimer->start(1000*5); m_pullTimer->start(1000*5);
m_reportOMSReocrdOrderTimer->start(1000*5); m_reportOMSReocrdOrderTimer->start(1000*5);
m_notifySimPullTimer->start(10*1000); m_notifyPmsPullTimer->start(10*1000);
m_remindCasherBlinkFloatTimer->start(5*1000); m_remindCasherBlinkFloatTimer->start(5*1000);
m_cyclePullAllOrderTimer->start(1000*60*10);
QLOG_INFO()<<QString::fromLocal8Bit("[<<<<---FlowControl::_Login Next Pull All Order Time: %1--->>>>]")
.arg(QDateTime::currentDateTime().addSecs(60*10).toString("yyyy-MM-dd hh:mm:ss"));
//在登陆时再次检查数据库连接是否都正常; //在登陆时再次检查数据库连接是否都正常;
if ( !m_initPmsGetStoreConfigDBRet ) { if ( !m_initPmsGetStoreConfigDBRet ) {
result = false; result = false;
...@@ -814,8 +850,6 @@ bool FlowControl::_SendHeart() ...@@ -814,8 +850,6 @@ bool FlowControl::_SendHeart()
}else{ }else{
result = true; result = true;
emit setNetStatus(QString::fromLocal8Bit("<font color='#f5f5f5'>正常</font>")); emit setNetStatus(QString::fromLocal8Bit("<font color='#f5f5f5'>正常</font>"));
//只有上一次心跳是异常:才根据心跳来展示门店营业状态 [数据延迟比较严重:同时也需要通过OMS推门店状态给插件]
if(m_bLastHeartIsError){
if( recvJson.contains(JSON_ELESTORESTS) ){ if( recvJson.contains(JSON_ELESTORESTS) ){
m_eleStoreStatus = recvJson[JSON_ELESTORESTS].toInt(); m_eleStoreStatus = recvJson[JSON_ELESTORESTS].toInt();
} }
...@@ -832,7 +866,6 @@ bool FlowControl::_SendHeart() ...@@ -832,7 +866,6 @@ bool FlowControl::_SendHeart()
m_bLastHeartIsError = false; m_bLastHeartIsError = false;
} }
} }
}
return result; return result;
} }
......
...@@ -112,8 +112,9 @@ private: ...@@ -112,8 +112,9 @@ private:
QTimer *m_pullTimer; QTimer *m_pullTimer;
QTimer *m_reportOMSReocrdOrderTimer; QTimer *m_reportOMSReocrdOrderTimer;
QTimer *m_loginTimer; QTimer *m_loginTimer;
QTimer *m_notifySimPullTimer;
QTimer *m_remindCasherBlinkFloatTimer; //插件程序收到外卖订单后,需要一致提醒店员[直到此外卖订单被全部录入到POS系统] QTimer *m_remindCasherBlinkFloatTimer; //插件程序收到外卖订单后,需要一致提醒店员[直到此外卖订单被全部录入到POS系统]
QTimer *m_notifyPmsPullTimer;
QTimer *m_cyclePullAllOrderTimer; //由于定时器是为了周期性获取全部订单; 原因: PmsPlugin set StoreServiceCenter; aviod missing Orders;
// 网络通信 // 网络通信
BillSocket *m_loginSocket; BillSocket *m_loginSocket;
BillSocket *m_pullOrderSocket; BillSocket *m_pullOrderSocket;
...@@ -387,7 +388,8 @@ public slots: ...@@ -387,7 +388,8 @@ public slots:
//点击屏幕指定区域 //点击屏幕指定区域
void _ClickOMSAssignArea(); void _ClickOMSAssignArea();
void _ClickToLogin(); void _ClickToLogin();
void _ClickToNotifySimPullOrder(); void _NotifyPmsPullOrder();
void _NotifyCyclePullAllOrder();
void _RemindCasherBlinkFloatForm(); void _RemindCasherBlinkFloatForm();
void _OrderAnalysis(const QJsonObject &jsonObject); void _OrderAnalysis(const QJsonObject &jsonObject);
......
...@@ -177,9 +177,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -177,9 +177,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, " "delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, " "last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, " "confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) " "pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee, make_status, make_source, make_device_id) "
"VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?," "VALUES(?, ?, ?, ?, ?,?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,"
" ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); " ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?,?,?,?)");
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
query.addBindValue(orderObj->id); // --非码OMS订单号 query.addBindValue(orderObj->id); // --非码OMS订单号
query.addBindValue(orderObj->orderStatus); // --订单状态 query.addBindValue(orderObj->orderStatus); // --订单状态
...@@ -240,6 +241,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -240,6 +241,9 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
query.addBindValue(orderObj->riderPhone); // --配送者电话 query.addBindValue(orderObj->riderPhone); // --配送者电话
query.addBindValue(orderObj->riderName); // -配送者名称 query.addBindValue(orderObj->riderName); // -配送者名称
query.addBindValue( abs(orderObj->disPlateformFee * 0.01)); // --平台优惠 query.addBindValue( abs(orderObj->disPlateformFee * 0.01)); // --平台优惠
query.addBindValue(orderObj->makeStatus); // --制作状态
query.addBindValue(orderObj->makeSource); // --提供制作状态来源
query.addBindValue(orderObj->makeDeviceId); // --提供制作状态设备ID
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"<<query.lastError().text() QLOG_ERROR()<<"[<<<<---PmsOrdersData::insertOrderData:Insert Order Error--->>>>]"<<query.lastError().text()
...@@ -252,10 +256,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -252,10 +256,10 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
"delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, " "delivery_price,delivery_discount,delivery_time, order_estimation,make_finish_time,is_package, "
"last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, " "last_pay_time, address_latitude, address_longitude, oms_msrno, consumer_birthday, cancel_reason, "
"confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, " "confirm_time,customer_id,customer_gender,way_bill_id,store_id,store_name,store_address,store_street, "
"pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee) " "pos_id, lang, ext_info, rider_phone, rider_name, displateform_fee, make_status, make_source, make_device_id) "
"VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, " "VALUES(%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, "
"%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40," "%21, %22, %23, %24, %25, %26, %27, %28, %29, %30, %31, %32, %33, %34, %35, %36, %37, %38, %39, %40,"
"%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51)") "%41, %42, %43, %44, %45, %46, %47, %48, %49, %50, %51, %52, %53, %54)")
.arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel) .arg(orderObj->id).arg(orderObj->id).arg(orderObj->orderStatus).arg(updateTimeString).arg(orderObj->channel)
.arg(orderObj->orderType).arg(tempOrderTypeId) .arg(orderObj->orderType).arg(tempOrderTypeId)
.arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01) .arg(orderObj->pickupCode).arg(orderObj->totalPrice * 0.01).arg(orderObj->productPrice * 0.01).arg(orderObj->orderDiscount * 0.01)
...@@ -268,7 +272,8 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef) ...@@ -268,7 +272,8 @@ bool PmsOrdersData::insertOrderData(OrderObject* orderObj,QString& pmsOrderRef)
.arg(orderObj->confirmTime).arg(orderObj->customerId).arg("Female").arg(orderObj->waybillId).arg(orderObj->storeId) .arg(orderObj->confirmTime).arg(orderObj->customerId).arg("Female").arg(orderObj->waybillId).arg(orderObj->storeId)
.arg(orderObj->storeName).arg(orderObj->storeAddress).arg("") .arg(orderObj->storeName).arg(orderObj->storeAddress).arg("")
.arg("").arg(orderObj->lang).arg(orderObj->memo).arg(orderObj->riderPhone).arg(orderObj->riderName) .arg("").arg(orderObj->lang).arg(orderObj->memo).arg(orderObj->riderPhone).arg(orderObj->riderName)
.arg(orderObj->disPlateformFee * 0.01); .arg(orderObj->disPlateformFee * 0.01).arg(orderObj->makeStatus).arg(orderObj->makeSource).arg(orderObj->makeDeviceId);
} else { } else {
QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]").arg(orderObj->id); QLOG_INFO()<<QString("[<<<<---PmsOrdersData::insertOrderData:Insert OrderId %1 Into PMS Order Success--->>>>]").arg(orderObj->id);
pmsOrderRef = query.lastInsertId().toString(); pmsOrderRef = query.lastInsertId().toString();
...@@ -530,7 +535,7 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products ...@@ -530,7 +535,7 @@ bool PmsOrdersData::insertSubProductData(const QList<dishesObject*> sub_products
} }
//更新订单状态:需加锁; //更新订单状态:需加锁;
bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderStatus) { bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderStatus , const QString &makeStatus) {
if ( !orderObj) { if ( !orderObj) {
QLOG_ERROR()<<"[<<<<---PmsOrdersData::updateOrderStatus orderObj Point is Null --->>>>]"; QLOG_ERROR()<<"[<<<<---PmsOrdersData::updateOrderStatus orderObj Point is Null --->>>>]";
...@@ -553,8 +558,10 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta ...@@ -553,8 +558,10 @@ bool PmsOrdersData::updateOrderStatus(OrderObject* orderObj, const int &OrderSta
// 需要对应转换并更新: order_type_id; // 需要对应转换并更新: order_type_id;
int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus); int tempOrderTypeId = convertPosServiceTypeId( orderObj, orderObj->orderStatus);
query.prepare(QString("update orders set order_status=%1,order_type_id=%2 where order_id='%3'") query.prepare(QString("update orders set order_status=%1,order_type_id=%2, make_status='%3',"
.arg(QString::number(OrderStatus)).arg(QString::number(tempOrderTypeId)).arg(orderObj->id)); " make_source='%4', make_device_id='%5' where order_id='%6'")
.arg(QString::number(OrderStatus),QString::number(tempOrderTypeId),makeStatus,
orderObj->makeSource, orderObj->makeDeviceId, orderObj->id));
if(!query.exec()) { if(!query.exec()) {
QLOG_ERROR()<<query.lastError().text()<<"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]"; QLOG_ERROR()<<query.lastError().text()<<"[<<<<---PmsOrdersData::update Order Status Failed--->>>>]";
......
...@@ -75,7 +75,7 @@ public: ...@@ -75,7 +75,7 @@ public:
*参数:[1]订单对象 *参数:[1]订单对象
*返回:true操作成功,false失败 *返回:true操作成功,false失败
**/ **/
bool updateOrderStatus(OrderObject* orderObj, const int &OrderStatus); bool updateOrderStatus(OrderObject* orderObj, const int &OrderStatus , const QString &makeStatus);
/** /**
*功能:查询 订单号和 订单状态 是否存在PMS数据库中; *功能:查询 订单号和 订单状态 是否存在PMS数据库中;
......
...@@ -69,17 +69,21 @@ bool QtRedisClient::testOrderRedisExist(const QString& orderId){ ...@@ -69,17 +69,21 @@ bool QtRedisClient::testOrderRedisExist(const QString& orderId){
return bOrderExist; return bOrderExist;
} }
bool QtRedisClient::pushOrder2Redis(const QString& orderId,const int& orderStatus){ bool QtRedisClient::pushOrder2Redis(const OrderObject* orderObj ){
bool bPushOrderSuc = false; bool bPushOrderSuc = false;
QList<QByteArray> cmdString; QList<QByteArray> cmdString;
cmdString.append("LPUSH"); cmdString.append("LPUSH");
cmdString.append("PmsOrderStatusNotifyList"); cmdString.append("PmsOrderStatusNotifyList");
QJsonObject orderStatusObj; QJsonObject orderStatusObj;
orderStatusObj.insert("ID",orderId); orderStatusObj.insert("ID",orderObj->id);
orderStatusObj.insert("STATUS",orderStatus); orderStatusObj.insert("STATUS",orderObj->orderStatus);
QString timeStamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"); QString timeStamp = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");
orderStatusObj.insert("TIMESTAMP",timeStamp); orderStatusObj.insert("TIMESTAMP",timeStamp);
orderStatusObj.insert("MAKESTATUS",orderObj->makeStatus);
orderStatusObj.insert("MAKESOURCE",orderObj->makeSource);
orderStatusObj.insert("MAKEDEVICEID",orderObj->makeDeviceId);
orderStatusObj.insert("MAKEDEVICENAME","");
QJsonDocument orderStatusDoc = QJsonDocument(orderStatusObj); QJsonDocument orderStatusDoc = QJsonDocument(orderStatusObj);
cmdString.append(orderStatusDoc.toJson()); cmdString.append(orderStatusDoc.toJson());
...@@ -87,10 +91,11 @@ bool QtRedisClient::pushOrder2Redis(const QString& orderId,const int& orderStatu ...@@ -87,10 +91,11 @@ bool QtRedisClient::pushOrder2Redis(const QString& orderId,const int& orderStatu
auto result = m_pRedisConnectOperat->commandSync(cmdString); auto result = m_pRedisConnectOperat->commandSync(cmdString);
QVariant val = result.value(); QVariant val = result.value();
if(val.toInt()) { if(val.toInt()) {
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]").arg(orderId).arg(orderStatus).arg(val.toString()); QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; ret:%3 Success--->>>>]").arg(orderObj->id).arg(orderObj->orderStatus).arg(val.toString());
QLOG_INFO() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 Redis Context:%2--->>>>]").arg(orderObj->id).arg( QString(orderStatusDoc.toJson()) );
bPushOrderSuc = true; bPushOrderSuc = true;
} else { } else {
QLOG_ERROR() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]").arg(orderId).arg(orderStatus).arg(val.toString()); QLOG_ERROR() << QString("[<<<<---QtRedisClient::pushOrder2Redis orderId:%1 ; orderStatus:%2 ; val:%3 Failed--->>>>]").arg(orderObj->id).arg(orderObj->orderStatus).arg(val.toString());
} }
} catch (const RedisClient::Connection::Exception& e) { } catch (const RedisClient::Connection::Exception& e) {
QLOG_ERROR() << "QtRedisClient::isOrderRedisExist Cannot run command:" << e.what(); QLOG_ERROR() << "QtRedisClient::isOrderRedisExist Cannot run command:" << e.what();
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
#include <QCommandLineParser> #include <QCommandLineParser>
#include <QJsonDocument> #include <QJsonDocument>
#include "Model/orderObject.h"
class QtRedisClient : public QObject class QtRedisClient : public QObject
{ {
Q_OBJECT Q_OBJECT
...@@ -27,7 +29,7 @@ public: ...@@ -27,7 +29,7 @@ public:
*参数:[1]订单号; [2]订单状态; *参数:[1]订单号; [2]订单状态;
*返回:true:追加成功,false:追加失败 *返回:true:追加成功,false:追加失败
**/ **/
bool pushOrder2Redis(const QString& orderId, const int& orderStatus); bool pushOrder2Redis(const OrderObject* orderObj);
/** /**
*功能:查询订单是否已经存在 Redis中; *功能:查询订单是否已经存在 Redis中;
......
...@@ -19,6 +19,9 @@ class CouponsObject : public QObject ...@@ -19,6 +19,9 @@ class CouponsObject : public QObject
Q_PROPERTY (int consumeFactAmount READ getConsumeFactAmount WRITE setConsumeFactAmount) Q_PROPERTY (int consumeFactAmount READ getConsumeFactAmount WRITE setConsumeFactAmount)
Q_PROPERTY (int consumeDiscountAmount READ getConsumeDiscountAmount WRITE setConsumeDiscountAmount) Q_PROPERTY (int consumeDiscountAmount READ getConsumeDiscountAmount WRITE setConsumeDiscountAmount)
Q_PROPERTY (QString discount READ getDiscount WRITE setDiscount) Q_PROPERTY (QString discount READ getDiscount WRITE setDiscount)
Q_PROPERTY (QString giverName READ getGiverName WRITE setGiverName)
Q_PROPERTY (QString blessingWords READ getBlessingWords WRITE setBlessingWords)
public: public:
explicit CouponsObject(QObject *parent = 0):QObject(parent){} explicit CouponsObject(QObject *parent = 0):QObject(parent){}
...@@ -26,15 +29,20 @@ public: ...@@ -26,15 +29,20 @@ public:
CouponsObject& operator =(const CouponsObject& coupons); CouponsObject& operator =(const CouponsObject& coupons);
void FetchDataFromJson(const QJsonObject &json); void FetchDataFromJson(const QJsonObject &json);
QString couponSeq; //券序号 QString couponSeq; //券序号
QString code; QString code; //券ID号
QString couponName; //券名 QString couponName; //券名
QString menuItem; QString menuItem; // 菜单分类
QString couponType; QString couponType; //券类型
bool storeChannel; //是否门店券; bool storeChannel; //是否门店券;
QString payMethodId; QString payMethodId; //券支付方式ID
int consumeFactAmount; int consumeFactAmount; //券实际售卖金额
int consumeDiscountAmount; int consumeDiscountAmount; //券折扣金额
QString discount; QString discount;
QString giverName ; //券赠送者
QString blessingWords ; //券赠送祝福
QList<SingleProductObject*> skus; QList<SingleProductObject*> skus;
protected: protected:
...@@ -67,6 +75,13 @@ protected: ...@@ -67,6 +75,13 @@ protected:
inline QString getDiscount(){ return discount; } inline QString getDiscount(){ return discount; }
inline void setDiscount(const QString& v){ discount = v; } inline void setDiscount(const QString& v){ discount = v; }
inline QString getGiverName(){ return giverName; }
inline void setGiverName(const QString& v){ giverName = v; }
inline QString getBlessingWords(){ return blessingWords; }
inline void setBlessingWords(const QString& v){ blessingWords = v; }
}; };
#endif // COUPONSOBJECT_H #endif // COUPONSOBJECT_H
...@@ -32,6 +32,8 @@ class dishesObject : public QObject ...@@ -32,6 +32,8 @@ class dishesObject : public QObject
Q_PROPERTY (int starPromotionQty READ getStarPromotionQty WRITE setStarPromotionQty) Q_PROPERTY (int starPromotionQty READ getStarPromotionQty WRITE setStarPromotionQty)
Q_PROPERTY (int starPromotionPrice READ getStarPromotionPrice WRITE setStarPromotionPrice) Q_PROPERTY (int starPromotionPrice READ getStarPromotionPrice WRITE setStarPromotionPrice)
Q_PROPERTY (QString userName READ getUserName WRITE setUserName)
public: public:
explicit dishesObject(QObject *parent = 0):QObject(parent){} explicit dishesObject(QObject *parent = 0):QObject(parent){}
dishesObject(const dishesObject& dish,QObject* parent=0); dishesObject(const dishesObject& dish,QObject* parent=0);
...@@ -61,6 +63,7 @@ public: ...@@ -61,6 +63,7 @@ public:
QString starPromotionName = ""; QString starPromotionName = "";
int starPromotionQty = 0; int starPromotionQty = 0;
int starPromotionPrice = 0; int starPromotionPrice = 0;
QString userName = "";
QList<dishesObject*> sub_products; QList<dishesObject*> sub_products;
...@@ -132,6 +135,10 @@ protected: ...@@ -132,6 +135,10 @@ protected:
inline int getStarPromotionQty(){ return starPromotionQty; } inline int getStarPromotionQty(){ return starPromotionQty; }
inline void setStarPromotionQty(const int& v){ starPromotionQty = v; } inline void setStarPromotionQty(const int& v){ starPromotionQty = v; }
inline QString getUserName(){ return userName; }
inline void setUserName(const QString& v){ userName = v; }
}; };
#endif // DISHESOBJECT_H #endif // DISHESOBJECT_H
...@@ -77,6 +77,10 @@ class OrderObject : public QObject ...@@ -77,6 +77,10 @@ class OrderObject : public QObject
Q_PROPERTY (int productPrice READ getProductPrice WRITE setProductPrice) Q_PROPERTY (int productPrice READ getProductPrice WRITE setProductPrice)
Q_PROPERTY (int totalPrice READ getTotalPrice WRITE setTotalPrice) Q_PROPERTY (int totalPrice READ getTotalPrice WRITE setTotalPrice)
Q_PROPERTY (int orderStatus READ getOrderStatus WRITE setOrderStatus) Q_PROPERTY (int orderStatus READ getOrderStatus WRITE setOrderStatus)
Q_PROPERTY (QString makeStatus READ getMakeStatus WRITE setMakeStatus)
Q_PROPERTY (QString makeSource READ getMakeSource WRITE setMakeSource)
Q_PROPERTY (QString makeDeviceId READ getMakeDeviceId WRITE setMakeDeviceId)
Q_PROPERTY (QString businessType READ getBusinessType WRITE setBusinessType)
Q_PROPERTY (int deliveryStatus READ getDeliveryStatus WRITE setDeliveryStatus) Q_PROPERTY (int deliveryStatus READ getDeliveryStatus WRITE setDeliveryStatus)
Q_PROPERTY (int payStatus READ getPayStatus WRITE setPayStatus) Q_PROPERTY (int payStatus READ getPayStatus WRITE setPayStatus)
Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus) Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus)
...@@ -176,6 +180,11 @@ public: ...@@ -176,6 +180,11 @@ public:
int productPrice = 0; int productPrice = 0;
int totalPrice = 0; int totalPrice = 0;
int orderStatus = 0; int orderStatus = 0;
QString makeStatus = ""; // PMS 制作状态
QString makeSource = ""; //PMS 制作来源: 普通扫描枪、扫描枪Now、顾客、PMS-kds、
QString makeDeviceId = ""; //PMS 更新制作状态的设备Id
QString businessType; //订单业务类型: 10:预约单 20:杯贴祝福 30:拼团
int deliveryStatus = 0; int deliveryStatus = 0;
int payStatus = 0; int payStatus = 0;
int refundStatus = 0; int refundStatus = 0;
...@@ -380,6 +389,18 @@ public: ...@@ -380,6 +389,18 @@ public:
inline int getOrderStatus()const{return orderStatus;} inline int getOrderStatus()const{return orderStatus;}
inline void setOrderStatus(const int& v){orderStatus = v;} inline void setOrderStatus(const int& v){orderStatus = v;}
inline QString getMakeStatus()const{return makeStatus;}
inline void setMakeStatus(const QString& v){makeStatus = v;}
inline QString getMakeSource()const{return makeSource;}
inline void setMakeSource(const QString& v){makeSource = v;}
inline QString getMakeDeviceId()const{return makeDeviceId;}
inline void setMakeDeviceId(const QString& v){makeDeviceId = v;}
inline QString getBusinessType()const{return businessType;}
inline void setBusinessType(const QString& v){businessType = v;}
inline int getDeliveryStatus()const{return deliveryStatus;} inline int getDeliveryStatus()const{return deliveryStatus;}
inline void setDeliveryStatus(const int& v){deliveryStatus = v;} inline void setDeliveryStatus(const int& v){deliveryStatus = v;}
......
...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico" ...@@ -7,8 +7,8 @@ IDI_ICON ICON DISCARDABLE "logo.ico"
#endif #endif
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
FILEVERSION 4,2020,318,1 FILEVERSION 4,2020,508,1
PRODUCTVERSION 4,2020,318,1 PRODUCTVERSION 4,2020,508,1
//*************************************************************************// //*************************************************************************//
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
...@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO ...@@ -27,12 +27,12 @@ VS_VERSION_INFO VERSIONINFO
VALUE "CompanyName", "ShangHai.Freemud Co., Ltd." VALUE "CompanyName", "ShangHai.Freemud Co., Ltd."
VALUE "FileDescription", "PMS Plugin Application" VALUE "FileDescription", "PMS Plugin Application"
VALUE "InternalName", "PmsPlugin.exe" VALUE "InternalName", "PmsPlugin.exe"
VALUE "LegalCopyright", "Copyright (C)2013-2020" VALUE "LegalCopyright", "Copyright (C)2014-2020"
VALUE "OriginalFilename", "PmsPlugin.exe" VALUE "OriginalFilename", "PmsPlugin.exe"
VALUE "ProductName", "PMS Plugin" VALUE "ProductName", "PMS Plugin"
//***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***// //***每次修改后编译发版必须变更版本号(preDefine.h中APP_VERSION 需要一致)***//
VALUE "ProductVersion", "4.2020.318.1" VALUE "ProductVersion", "4.2020.508.1"
VALUE "FileVersion", "4.2020.318.1" VALUE "FileVersion", "4.2020.508.1"
//*************************************************************************// //*************************************************************************//
END END
END END
......
...@@ -5,9 +5,9 @@ ...@@ -5,9 +5,9 @@
#define APP_THEME "deaufult" #define APP_THEME "deaufult"
//#define APP_VERSION "4.2019.1031.1"
//#define APP_VERSION "4.2019.1225.1" //#define APP_VERSION "4.2019.1225.1"
#define APP_VERSION "4.2020.318.1" //#define APP_VERSION "4.2020.318.1"
#define APP_VERSION "4.2020.508.1"
//修正版本号时,切记修正 FmTakeout.rc 中的版本号 //修正版本号时,切记修正 FmTakeout.rc 中的版本号
#define SERVER_PASSWORD "posoperator@freemud.cn" #define SERVER_PASSWORD "posoperator@freemud.cn"
......
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