Commit 832f7d92 by wuyang.zou

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

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