Commit 832f7d92 by wuyang.zou

fix bug: 变更退货原因码 + 修复门店有效订单列表失败后卡死问题

parent 6d4f892e
...@@ -49,7 +49,6 @@ FlowControl::FlowControl() ...@@ -49,7 +49,6 @@ FlowControl::FlowControl()
connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrderData); connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrderData);
connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_CrondClearExpireOrder); connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_CrondClearExpireOrder);
connect(m_heartTimer,&QTimer::timeout,this,&FlowControl::_SendHeart); connect(m_heartTimer,&QTimer::timeout,this,&FlowControl::_SendHeart);
connect(this,&FlowControl::doPullOrder,this,&FlowControl::_GetReadyForPullOrder);
connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection);
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection); connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection); connect(this, &FlowControl::doLogin, this, &FlowControl::onGetNewStoreInfo,Qt::BlockingQueuedConnection);
...@@ -178,13 +177,8 @@ void FlowControl::_AddOrderPull(const QString &orderId, const QString &channel, ...@@ -178,13 +177,8 @@ void FlowControl::_AddOrderPull(const QString &orderId, const QString &channel,
m_PullOrderDataMutex.unlock(); m_PullOrderDataMutex.unlock();
} }
//避免 此槽函数 与 拉单定时器触发的槽函数mutex阻塞挂住:因此不调用 emit doPullOrder函数;
void FlowControl::_GetReadyForPullOrder(const QString &orderId, const QString &channel) //void FlowControl::_GetReadyForPullOrder(const QString &orderId, const QString &channel){}
{
///组装从FM外卖service端的拉单请求参数//
_AddOrderPull(orderId,channel);
///////不能上来就拉单,只能通过定时器来触发拉单动作////// //_PullOrderData();
}
void FlowControl::_ClickOMSAssignArea() void FlowControl::_ClickOMSAssignArea()
{ {
...@@ -353,7 +347,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject) ...@@ -353,7 +347,7 @@ void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
break; break;
case OrderObject::RequestRefund: case OrderObject::RequestRefund:
// 星巴克:当客户同意退款时,外卖插件收到请求退款后,直接进行退款处理; // 星巴克:当客户同意退款时,外卖插件收到请求退款后,直接进行退款处理;
_RefundOrder(orderObject->id,-1,QString::fromLocal8Bit("同意退款"),QString()); _RefundOrder(orderObject->id,5,QString::fromLocal8Bit("同意退款"),QString());
break; break;
case OrderObject::AgreeRefund: case OrderObject::AgreeRefund:
break; break;
...@@ -461,7 +455,7 @@ bool FlowControl::_Login() ...@@ -461,7 +455,7 @@ bool FlowControl::_Login()
/*if(1){ /*if(1){
QJsonObject sendJsontemp; QJsonObject sendJsontemp;
sendJsontemp.insert(JSON_ORDERID, "123456789"); sendJsontemp.insert(JSON_ORDERID, "123456789");
sendJsontemp.insert("canceledCause", -1 ); sendJsontemp.insert("canceledCause", 5 );
sendJsontemp.insert(JSON_POSIPADDRESS,QString("http://10.222.221.163:8080")); sendJsontemp.insert(JSON_POSIPADDRESS,QString("http://10.222.221.163:8080"));
QLOG_INFO() << QString("[<<<<---_Login Test:--->>>>][requestData:%1]")<<sendJsontemp; QLOG_INFO() << QString("[<<<<---_Login Test:--->>>>][requestData:%1]")<<sendJsontemp;
if(ConfigManger::GetInstance().GetOrderSslConfig()) { if(ConfigManger::GetInstance().GetOrderSslConfig()) {
...@@ -508,9 +502,9 @@ bool FlowControl::_Login() ...@@ -508,9 +502,9 @@ bool FlowControl::_Login()
m_bLoginResult= true; m_bLoginResult= true;
m_clearTimer->start(1000*60*60*2); // 5分钟执行一次清理任务:正式上线需要两小时清理一次; m_clearTimer->start(1000*60*60*2); // 5分钟执行一次清理任务:正式上线需要两小时清理一次;
m_heartTimer->start(1000*60*5); m_heartTimer->start(1000*60*5);
m_pullTimer->start(1000*1); m_pullTimer->start(1000*2);
m_notifySimPullTimer->start(10*1000); m_notifySimPullTimer->start(10*1000);
emit doPullOrder(QString(),QString()); _AddOrderPull(QString(),QString());
} }
} }
if(!result) if(!result)
...@@ -612,10 +606,11 @@ bool FlowControl::_PullOrderDetail(const QString& orderId) ...@@ -612,10 +606,11 @@ bool FlowControl::_PullOrderDetail(const QString& orderId)
/*解析json数据失败则20秒后重新拉单*/ /*解析json数据失败则20秒后重新拉单*/
if(!result) if(!result)
{ {
m_pullTimer->start(1000*20); m_pullTimer->start(1000*10);
_AddOrderPull(orderId); // 如果某次拉订单列表出现失败;此函数的外层函数 _PullOrderData:会将本次拉单对象存起来,等待下次拉取;
//_AddOrderPull(orderId);
}else{ }else{
m_pullTimer->start(1000*1); m_pullTimer->start(1000*2);
} }
qDebug()<<"[<<<<---Pull Order Detail Result--->>>>]"<<result; qDebug()<<"[<<<<---Pull Order Detail Result--->>>>]"<<result;
return result; return result;
...@@ -679,17 +674,19 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo) ...@@ -679,17 +674,19 @@ bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
if(m_orderCount<ordertotalSum) if(m_orderCount<ordertotalSum)
{ {
_AddOrderPull(QString(),QString(),pageNo+1,pageSize); _AddOrderPull(QString(),QString(),pageNo+1,pageSize);
_PullOrderData(); //避免出现存在多页数据,导致出现死锁;
//_PullOrderData();
} }
} }
} }
// 如果出现拉取订单列表失败,触发下一次拉门店有效订单的时间间隔变更为15(如果一开始就获取订单列表成功:时间间隔为5s) // 如果出现拉取订单列表失败,触发下一次拉门店有效订单的时间间隔变更为20(如果一开始就获取订单列表成功:时间间隔为5s)
if(!result) if(!result)
{ {
m_pullTimer->start(1000*20); m_pullTimer->start(1000*10);
_AddOrderPull(QString(),QString(),pageNo,pageSize); // 如果某次拉订单列表出现失败;此函数的外层函数 _PullOrderData: 还会将本次拉单列表存起来等待下次拉取;
//_AddOrderPull(QString(),QString(),pageNo,pageSize);
} }
qDebug()<<"[<<<<---Pull Order List Result--->>>>]"<<result; QLOG_INFO()<<"[<<<<---Pull Order List Result--->>>>]"<< result;
return result; return result;
} }
...@@ -1973,7 +1970,7 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI ...@@ -1973,7 +1970,7 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
_RefuseRefund(orderId); _RefuseRefund(orderId);
}else if(!operation.compare(OPERATION_REFUNDORDER)) }else if(!operation.compare(OPERATION_REFUNDORDER))
{ {
_RefundOrder(orderId,-1,QString::fromLocal8Bit("同意退款"),QString()); _RefundOrder(orderId,5,QString::fromLocal8Bit("同意退款"),QString());
} }
} }
......
...@@ -202,7 +202,7 @@ signals: ...@@ -202,7 +202,7 @@ signals:
* */ * */
void showDailyReportData(QJsonObject); void showDailyReportData(QJsonObject);
void doPullOrder(const QString& orderId = QString(),const QString& channel = QString());
/* 功能:通知开始提醒 /* 功能:通知开始提醒
* 参数:[1]提醒类型 * 参数:[1]提醒类型
* 返回:NULL * 返回:NULL
...@@ -364,7 +364,7 @@ private slots: ...@@ -364,7 +364,7 @@ private slots:
QString _GetIpAddress(); QString _GetIpAddress();
void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=100); void _AddOrderPull(const QString& orderId=0,const QString& channel=0,const int& pageNumber=1,const int& pageSize=100);
void _GetReadyForPullOrder(const QString& orderId,const QString& channel);
//点击屏幕指定区域 //点击屏幕指定区域
void _ClickOMSAssignArea(); void _ClickOMSAssignArea();
void _ClickToLogin(); void _ClickToLogin();
......
...@@ -42,7 +42,7 @@ void AlertForm::SetContent(AlertForm::Type type, const QString &msg) ...@@ -42,7 +42,7 @@ void AlertForm::SetContent(AlertForm::Type type, const QString &msg)
} }
ui->alertLabMsg->setText(msg); ui->alertLabMsg->setText(msg);
if(!m_timer->isActive()) if(!m_timer->isActive())
m_timer->start(5000); m_timer->start(20000);
return; return;
} }
......
...@@ -44,11 +44,12 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -44,11 +44,12 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailLab3->setText(orderObject->riderName.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2") ui->detailLab3->setText(orderObject->riderName.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2")
.arg(orderObject->riderName, orderObject->riderPhone)); .arg(orderObject->riderName, orderObject->riderPhone));
//TODO //TODO
ui->detailLab4->setText(Penny2Dollar(orderObject->productPrice)); ui->detailLab4->setText(Penny2Dollar(orderObject->totalPrice));
ui->detailLab6->setText(orderObject->needInvoice? orderObject->invoiceTitle : QString::fromLocal8Bit("不需要发票")); ui->detailLab6->setText(orderObject->needInvoice? orderObject->invoiceTitle : QString::fromLocal8Bit("不需要发票"));
ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO ui->detailLab7->setText(orderObject->msr_no.length()? orderObject->msr_no : orderObject->customerId); // MSR_NO
ui->detailLab5->setText(QString("[%1]").arg(orderObject->memo)); ui->detailLab5->setText(QString("[%1]").arg(orderObject->memo));
for(int i=0; i<orderObject->proList.count(); i++) int i=0;
for(; i<orderObject->proList.count(); i++)
{ {
ui->detailTable0->insertRow(i); ui->detailTable0->insertRow(i);
ui->detailTable0->setItem(i, 0, new QTableWidgetItem(GetProductName(orderObject->proList.at(i)))); // 商品名 ui->detailTable0->setItem(i, 0, new QTableWidgetItem(GetProductName(orderObject->proList.at(i)))); // 商品名
...@@ -58,6 +59,23 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -58,6 +59,23 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->qty))); // 数量 ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->qty))); // 数量
ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter); ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter);
} }
// 新增配送费 + 打包费
ui->detailTable0->insertRow(i);
ui->detailTable0->setItem(i, 0, new QTableWidgetItem(QString::fromLocal8Bit("配送费"))); // 配送费
ui->detailTable0->item(i, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 1, new QTableWidgetItem(Penny2Dollar(orderObject->deliveryPrice))); // 价格
ui->detailTable0->item(i, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(1))); // 数量
ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->insertRow(i+1);
ui->detailTable0->setItem(i+1, 0, new QTableWidgetItem(QString::fromLocal8Bit("包装费"))); // 包装费
ui->detailTable0->item(i+1, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i+1, 1, new QTableWidgetItem(Penny2Dollar(orderObject->packageFee))); // 价格
ui->detailTable0->item(i+1, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i+1, 2, new QTableWidgetItem(QString::number(1))); // 数量
ui->detailTable0->item(i+1, 2)->setTextAlignment(Qt::AlignCenter);
//TODO //TODO
// QString records; // QString records;
// foreach(QString record, orderObject->records) // foreach(QString record, orderObject->records)
...@@ -74,7 +92,7 @@ void DetailForm::InitData(OrderObject *orderObject) ...@@ -74,7 +92,7 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn2->setText(GetOperNameByStatus(orderObject->orderStatus, true)); ui->detailBtn2->setText(GetOperNameByStatus(orderObject->orderStatus, true));
ui->detailBtn2->setProperty("operation", GetOperByStatus(orderObject->orderStatus, true)); ui->detailBtn2->setProperty("operation", GetOperByStatus(orderObject->orderStatus, true));
ui->detailBtn2->setProperty("orderId", orderObject->id); ui->detailBtn2->setProperty("orderId", orderObject->id);
if(orderObject->orderStatus != 1 && orderObject->orderStatus != 20 && orderObject->orderStatus != 2 && orderObject->orderStatus != 3&& orderObject->orderStatus != 4 && orderObject->orderStatus != OrderObject::SimExcept) if(orderObject->orderStatus != 1 && orderObject->orderStatus != 20 && orderObject->orderStatus != 2 && orderObject->orderStatus != 3 && orderObject->orderStatus != OrderObject::SimExcept)
{ {
ui->detailBtn2->hide(); ui->detailBtn2->hide();
} }
......
...@@ -78,7 +78,9 @@ int main(int argc, char *argv[]) ...@@ -78,7 +78,9 @@ int main(int argc, char *argv[])
// 加载主题 // 加载主题
LoadTheme(APP_THEME); LoadTheme(APP_THEME);
QLOG_INFO() << QString("-------- fmTakeaway Start --------"); QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<<<<-- fmTakeaway Start -->>>>>>>>>>>>>>>>>>>>>>>>>>>]");
QLOG_INFO() << QString("[<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]");
// 将控制器移到工作线程 // 将控制器移到工作线程
FlowControl::GetInstance().moveToThread(&workThread); FlowControl::GetInstance().moveToThread(&workThread);
......
...@@ -46,7 +46,7 @@ void RefuseForm::on_reason1_toggled(bool checked) ...@@ -46,7 +46,7 @@ void RefuseForm::on_reason1_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("门店已打烊"); m_reasonStr=QString::fromLocal8Bit("门店已打烊");
m_reasonCode=2; m_reasonCode=1;
} }
} }
...@@ -61,7 +61,7 @@ void RefuseForm::on_reason2_toggled(bool checked) ...@@ -61,7 +61,7 @@ void RefuseForm::on_reason2_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("产品已售完"); m_reasonStr=QString::fromLocal8Bit("产品已售完");
m_reasonCode=3; m_reasonCode=2;
QMap<QString,int>::iterator it; //遍历map QMap<QString,int>::iterator it; //遍历map
for(it = m_refDishesForm->m_dishesMap.begin(); it != m_refDishesForm->m_dishesMap.end(); ++it) { for(it = m_refDishesForm->m_dishesMap.begin(); it != m_refDishesForm->m_dishesMap.end(); ++it) {
...@@ -80,7 +80,7 @@ void RefuseForm::on_reason2_toggled(bool checked) ...@@ -80,7 +80,7 @@ void RefuseForm::on_reason2_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("产品已售完"); m_reasonStr=QString::fromLocal8Bit("产品已售完");
m_reasonCode=3; m_reasonCode=2;
} }
} }
...@@ -90,7 +90,7 @@ void RefuseForm::on_reason3_toggled(bool checked) ...@@ -90,7 +90,7 @@ void RefuseForm::on_reason3_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("门店太忙"); m_reasonStr=QString::fromLocal8Bit("门店太忙");
m_reasonCode=5; m_reasonCode=3;
} }
} }
...@@ -100,7 +100,7 @@ void RefuseForm::on_reason4_toggled(bool checked) ...@@ -100,7 +100,7 @@ void RefuseForm::on_reason4_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("联系不上客户"); m_reasonStr=QString::fromLocal8Bit("联系不上客户");
m_reasonCode=6; m_reasonCode=4;
} }
} }
...@@ -110,7 +110,7 @@ void RefuseForm::on_reason5_toggled(bool checked) ...@@ -110,7 +110,7 @@ void RefuseForm::on_reason5_toggled(bool checked)
{ {
ui->refuseBtnOk->setEnabled(true); ui->refuseBtnOk->setEnabled(true);
m_reasonStr=QString::fromLocal8Bit("无人配送"); m_reasonStr=QString::fromLocal8Bit("无人配送");
m_reasonCode=-1; m_reasonCode=5;
} }
} }
......
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