Commit fbaea4c6 by yunpeng.song

对接新接口

parent 5565ea3f
......@@ -26,7 +26,7 @@ FlowControl &FlowControl::GetInstance()
return fc;
}
FlowControl::FlowControl():semaphore(0)
FlowControl::FlowControl()
{
m_bLoginResult =false;
m_bFirstRecvInfo = true;
......@@ -35,21 +35,18 @@ FlowControl::FlowControl():semaphore(0)
m_pullOrderSocket = NULL;
m_procOrderSocket = NULL;
m_pullDishesSocket = NULL;
m_pullOrderListSocket = NULL;
m_clearTimer=new QTimer(this);
m_heartTimer=new QTimer(this);
m_pullTimer=new QTimer(this);
m_pullTimer->setSingleShot(true);
m_operateTimer=new QTimer(this);
m_loginTimer=new QTimer(this);
m_operateTimer->setSingleShot(true);
connect(m_loginTimer,&QTimer::timeout,this,&FlowControl::_ClickToLogin);
connect(m_pullTimer,&QTimer::timeout,this,&FlowControl::_PullOrder);
connect(m_clearTimer,&QTimer::timeout,this,&FlowControl::_ClearOrder);
connect(m_heartTimer,&QTimer::timeout,this,&FlowControl::_SendHeart);
connect(m_operateTimer,&QTimer::timeout,this,&FlowControl::_OperateTimeOut);
connect(this,&FlowControl::doStartOperateTimer,this,&FlowControl::_StartOperateTimer,Qt::BlockingQueuedConnection);
connect(this,&FlowControl::doPullOrder,this,&FlowControl::_GetOrder);
connect(this,&FlowControl::doConfirmOrder,this,&FlowControl::_ConfirmOrder,Qt::BlockingQueuedConnection);
connect(this,&FlowControl::doRefundOrder,this,&FlowControl::_RefundOrder,Qt::BlockingQueuedConnection);
......@@ -112,13 +109,11 @@ FlowControl::FlowControl():semaphore(0)
Orderstatus::getInstance();
_ClickOMSAssignArea();
m_loginTimer->start(20*1000);
semaphore.release(1);
}
QString FlowControl::_GetIpAddress()
{
QString ipAddress;
ipAddress=ConfigManger::GetInstance().GetIpAddress();
QHostInfo info = QHostInfo::fromName(QHostInfo::localHostName());
foreach(QHostAddress address,info.addresses())
......@@ -168,11 +163,113 @@ void FlowControl::_ClickToLogin()
}
}
void FlowControl::_StartOperateTimer()
void FlowControl::_OrderAnalysis(const QJsonObject& jsonObject)
{
qDebug()<<__FUNCTION__;
m_operateTimer->start(15*1000);
semaphore.acquire(1);
OrderObject *orderObject = NULL;
orderObject = m_ordersMap.value(jsonObject[JSON_ID].toString());
if(orderObject == NULL)
{
//新数据
orderObject = new OrderObject(this);
orderObject->FromJson(jsonObject);
orderObject->isPut = false;
orderObject->isCancle = false;
m_ordersMap.insert(orderObject->id, orderObject);
QLOG_INFO() << QString("new order[%1:%2].[data:]")
.arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject;
if(!Orderstatus::getInstance().isorderexit(orderObject->id))
{
Orderstatus::getInstance().statusinsert(orderObject->id,QDate::currentDate().toString("yyyy-MM-dd"));
if((OrderObject::NewOrder==orderObject->orderStatus||OrderObject::Confirmed==orderObject->orderStatus))
{
emit startRemind(0);
}
}
emit changeOrderStatus(orderObject);
}else
{
//旧数据有更新
int oldStatus = orderObject->orderStatus;
orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("old order[%1:%3].[data:%3]")
.arg(orderObject->id,orderObject->getOrderStatusDec())<<jsonObject;
if(oldStatus != orderObject->orderStatus)
{
emit changeOrderStatus(orderObject, oldStatus);
}
}
orderObject->updateTime=QDateTime::currentDateTime().toTime_t();
if(OrderObject::RequestRefund==orderObject->orderStatus)
{
emit startRemind(1);
}
if(Orderstatus::getInstance().isput(orderObject->id))
{
orderObject->isPut = true;
}
if(Orderstatus::getInstance().isrefund(orderObject->id))
{
orderObject->isCancle = true;
}
QString posSaledId=m_orderIdToPosSalesIdMap.value(orderObject->id);
if(posSaledId.isEmpty())
{
Orderstatus::getInstance().getPosSalesId(orderObject->id,posSaledId);
}
orderObject->possaleId=posSaledId;
switch (orderObject->orderStatus){
case OrderObject::NewOrder:
case OrderObject::Confirmed:
case OrderObject::Sendout:
case OrderObject::ToSend:
case OrderObject::Finished:
case OrderObject::RequestRefund:
if(!orderObject->isPut)
{
orderObject->putType = 1;
orderObject->putTimes = 0;
m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->id))
{
m_ordersEntryList.append(orderObject->id);
}
m_OrderEntryMutex.unlock();
_ClickOMSAssignArea();
}
break;
case OrderObject::AgreeRefund:
case OrderObject::Refunded:
case OrderObject::Cancled:
if(!orderObject->isCancle)
{
if(!orderObject->isPut)
{
m_OrderEntryMutex.lock();
m_ordersEntryList.removeOne(orderObject->id);
m_OrderEntryMutex.unlock();
}
else{
if(!posSaledId.isEmpty())
{
orderObject->putType = 0;
orderObject->putTimes = 0;
m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->id))
{
m_ordersEntryList.append(orderObject->id);
}
_ClickOMSAssignArea();
m_OrderEntryMutex.unlock();
}
}
}
break;
default:
break;
}
}
void FlowControl::onGetNewStoreInfo()
......@@ -182,6 +279,7 @@ void FlowControl::onGetNewStoreInfo()
m_pullOrderSocket = new BillSocket(this);
m_procOrderSocket = new BillSocket(this);
m_pullDishesSocket = new BillSocket(this);
m_pullOrderListSocket = new BillSocket(this);
_GetStoreInfo();
_Login();
m_bFirstRecvInfo =false;
......@@ -215,6 +313,8 @@ bool FlowControl::_Login()
{
m_loginSocket->SetSslConfig();
}
qDebug()<<ConfigManger::GetInstance().GetLoginServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_ILOGIN);
m_loginSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetLoginServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_ILOGIN)));
result = m_loginSocket->Request(sendJson, recvJson, error);
......@@ -253,21 +353,90 @@ bool FlowControl::_Login()
return result;
}
bool FlowControl::_PullOrder()
void FlowControl::_PullOrder()
{
QLOG_INFO()<<__FUNCTION__;
if(m_orderPullList.isEmpty())
return true;
return ;
emit hideAlert();
PullOrderInfo info=m_orderPullList.takeFirst();
if(info.orderId.isEmpty())
{
_PullOrderList(info.pageSize,info.pageNumber);
}
else
{
_PullOrderDetail(info.orderId);
}
return ;
}
bool FlowControl::_PullOrderDetail(const QString& orderId)
{
if(m_pullOrderSocket==NULL)
m_pullOrderSocket =new BillSocket(this);
QString error;
bool result;
QJsonObject recvJson;
if(ConfigManger::GetInstance().GetOrderSslConfig())
{
m_pullOrderSocket->SetSslConfig();
QLOG_INFO()<<"load ssl";
}
else{
QLOG_INFO()<<"load not ssl";
}
QString url = ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDER);
url.append(orderId);
QLOG_INFO() << QString("[---pull order---][requestUrl:]")<<url;
m_pullOrderSocket->SetUrl(QUrl(url));
result = m_pullOrderSocket->Get(recvJson, error);
QLOG_INFO() << QString("pull order finsh. [result:%1][msg:%2]")
.arg(result).arg(error)<<recvJson;
if(!result)
{
emit setNetStatus(QString::fromLocal8Bit("<font color='#ff0000'>异常</font>"));
}else
{
qDebug()<<recvJson;
emit setNetStatus(QString::fromLocal8Bit("正常"));
if(JSON_STATUSCODE_OK != recvJson[JSON_ERRCODE].toInt())
{
QString error = recvJson[JSON_ERRMSG].toString();
QLOG_ERROR() << QString("pull orders error.[msg->%1]").arg(error);
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("获取订单失败![%1]").arg(error));
result=false;
}else
{
//获取门店营业状态
QString strOpeStatus=QString::fromLocal8Bit("正常");
emit setOpeStatus(strOpeStatus);
QJsonObject order = recvJson[JSON_DATA].toObject();
_OrderAnalysis(order);
}
}
if(!result)
{
m_pullTimer->start(1000*10);
_AddOrderPull(orderId);
}
qDebug()<<"pull order result"<<result;
return result;
}
bool FlowControl::_PullOrderList(const int &pageSize, const int &pageNo)
{
if(m_pullOrderListSocket==NULL)
{
m_pullOrderListSocket =new BillSocket(this);
}
QString error;
bool result;
QJsonObject sendJson;
QJsonObject recvJson;
int ordertotalSum;
PullOrderInfo info=m_orderPullList.takeFirst();
sendJson = DataManger::GetInstance().GetPullOrderData(info.orderId,info.channel,info.pageNumber,info.pageSize);
sendJson = DataManger::GetInstance().GetPullOrderListData(pageNo,pageSize);
QLOG_INFO() << QString("[---pull order---][requestData:]")<<sendJson;
if(ConfigManger::GetInstance().GetOrderSslConfig())
......@@ -278,9 +447,11 @@ bool FlowControl::_PullOrder()
else{
QLOG_INFO()<<"load not ssl";
}
m_pullOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDER)));
result = m_pullOrderSocket->Request(sendJson, recvJson, error);
m_pullOrderListSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDERLIST)));
QLOG_INFO()<<ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_PULLORDERLIST);
result = m_pullOrderListSocket->Request(sendJson, recvJson, error);
QLOG_INFO() << QString("pull order finsh. [result:%1][msg:%2]")
.arg(result).arg(error)<<recvJson;
if(!result)
......@@ -299,140 +470,26 @@ bool FlowControl::_PullOrder()
}else
{
//获取门店营业状态
// QString strOpeStatus("正常");
// emit setOpeStatus(strOpeStatus);
QString strOpeStatus=QString::fromLocal8Bit("正常");
emit setOpeStatus(strOpeStatus);
QJsonArray orders = recvJson[JSON_DATA].toObject()[JSON_ORDERS].toArray();
foreach(QJsonValue order, orders)
{
QJsonObject jsonObject = order.toObject();
OrderObject *orderObject = NULL;
orderObject = m_ordersMap.value(jsonObject[JSON_ORDERID].toString());
if(orderObject == NULL)
{
//新数据
orderObject = new OrderObject(this);
orderObject->FromJson(jsonObject);
orderObject->isPut = false;
orderObject->isCancle = false;
m_ordersMap.insert(orderObject->order_id, orderObject);
QLOG_INFO() << QString("new order[%1:%2].[data:]")
.arg(orderObject->order_id, orderObject->status_desc)
<<jsonObject;
if(!Orderstatus::getInstance().isorderexit(orderObject->order_id))
{
Orderstatus::getInstance().statusinsert(orderObject->order_id,QDate::currentDate().toString("yyyy-MM-dd"));
if((OrderObject::NewOrder==orderObject->status||OrderObject::Confirmed==orderObject->status))
{
emit startRemind(0);
}
}
emit changeOrderStatus(orderObject);
}else
{
//旧数据有更新
int oldStatus = orderObject->status;
orderObject->FromJson(jsonObject);
QLOG_INFO() << QString("old order[%1:%2].[data:%3]")
.arg(orderObject->order_id, orderObject->status_desc)<<jsonObject;
if(oldStatus != orderObject->status)
{
emit changeOrderStatus(orderObject, oldStatus);
if(m_orderOperatePair.contains(orderObject->order_id))
{
_HandleOrderOperation(orderObject->order_id);
}
}
}
orderObject->update_time=QDateTime::currentDateTime().toTime_t();
if(OrderObject::RequestRefund==orderObject->status)
{
emit startRemind(1);
}
if(Orderstatus::getInstance().isput(orderObject->order_id))
{
orderObject->isPut = true;
}
if(Orderstatus::getInstance().isrefund(orderObject->order_id))
{
orderObject->isCancle = true;
}
QString posSaledId=m_orderIdToPosSalesIdMap.value(orderObject->order_id);
if(posSaledId.isEmpty())
{
Orderstatus::getInstance().getPosSalesId(orderObject->order_id,posSaledId);
}
orderObject->possale_id=posSaledId;
switch (orderObject->status){
case OrderObject::NewOrder:
case OrderObject::Confirmed:
case OrderObject::Sendout:
case OrderObject::ToSend:
case OrderObject::Finished:
case OrderObject::RequestRefund:
if(!orderObject->isPut)
{
orderObject->putType = 1;
orderObject->putTimes = 0;
m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->order_id))
{
m_ordersEntryList.append(orderObject->order_id);
}
m_OrderEntryMutex.unlock();
_ClickOMSAssignArea();
}
break;
case OrderObject::AgreeRefund:
case OrderObject::Refunded:
case OrderObject::Cancled:
if(!orderObject->isCancle)
{
if(!orderObject->isPut)
{
m_OrderEntryMutex.lock();
m_ordersEntryList.removeOne(orderObject->order_id);
m_OrderEntryMutex.unlock();
}
else{
if(!posSaledId.isEmpty())
{
orderObject->putType = 0;
orderObject->putTimes = 0;
m_OrderEntryMutex.lock();
if(!m_ordersEntryList.contains(orderObject->order_id))
{
m_ordersEntryList.append(orderObject->order_id);
}
_ClickOMSAssignArea();
m_OrderEntryMutex.unlock();
}
}
}
break;
default:
break;
}
_OrderAnalysis(order.toObject());
}
if(info.orderId.isEmpty())
ordertotalSum=recvJson[JSON_DATA].toObject()[JSON_COUNT].toInt();
m_orderCount+=50;
if(m_orderCount<ordertotalSum)
{
ordertotalSum=recvJson[JSON_DATA].toObject()[JSON_COUNT].toInt();
m_orderCount+=100;
if(m_orderCount<ordertotalSum)
{
_AddOrderPull(QString(),QString(),info.pageNumber+1,info.pageSize);
_PullOrder();
}
_AddOrderPull(QString(),QString(),pageNo+1,pageSize);
_PullOrder();
}
}
}
if(!result)
{
m_pullTimer->start(1000*5);
_AddOrderPull(info.orderId,info.channel,info.pageNumber,info.pageSize);
m_pullTimer->start(1000*10);
_AddOrderPull(QString(),QString(),pageNo,pageSize);
}
qDebug()<<"pull order result"<<result;
return result;
......@@ -470,13 +527,8 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
{
QString error;
bool result;
QJsonObject sendJson;
QJsonObject recvJson;
sendJson = DataManger::GetInstance().GetConfirmOrderData(orderId,m_ordersMap[orderId]->channel);
emit showAlert(AlertForm::LOADING, QString::fromLocal8Bit("正在通信......"));
QLOG_INFO() << QString("[---confirm order---]. [requestData:%1]")<<sendJson;
if(ConfigManger::GetInstance().GetOrderSslConfig())
{
m_procOrderSocket->SetSslConfig();
......@@ -485,9 +537,12 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
else{
QLOG_INFO()<<"load not ssl";
}
m_procOrderSocket->SetUrl(QUrl(ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_CONFIRM)));
result = m_procOrderSocket->Request(sendJson, recvJson, error);
QString url = ConfigManger::GetInstance().GetOrderServerUrl()+
ConfigManger::GetInstance().GetInterfaceName(INI_INTERFACE_CONFIRM);
url.append(orderId);
QLOG_INFO() << QString("[---confirm order---][requestUrl:]")<<url;
m_procOrderSocket->SetUrl(QUrl(url));
result = m_procOrderSocket->Get(recvJson, error);
QLOG_INFO() << QString("confirm order finsh. [result:%1][msg:%2][recvData:%3]")
.arg(result).arg(error)<<recvJson;
if(!result)
......@@ -501,7 +556,20 @@ bool FlowControl::_ConfirmOrder(const QString &orderId)
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("接单失败![%1]").arg(recvJson[JSON_ERRMSG].toString()));
}else
{
m_orderOperatePair.insert(orderId,1);
QJsonObject data = recvJson[JSON_DATA].toObject();
int status = data[JSON_RECEIVINGSTATUS].toInt();
if(1==status)
{
int orderStatus = data[JSON_ORDERSTATUS].toInt();
OrderObject* orderObject = m_ordersMap.value(orderId);
int oldOrderStatus = orderObject->orderStatus;
orderObject->orderStatus = orderStatus;
emit changeOrderStatus(orderObject, oldOrderStatus);
}
else
{
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("接单失败![%1]").arg(recvJson[JSON_ERRMSG].toString()));
}
}
}
return result;
......@@ -535,8 +603,8 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("拒单成功!"));
// 通知主界面移动订单
OrderObject *orderObject = m_ordersMap.value(orderId);
int oldStatus = orderObject->status;
orderObject->status = recvJson[JSON_STATUS].toInt();
int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
emit changeOrderStatus(orderObject, oldStatus);
}
}
......@@ -546,11 +614,12 @@ bool FlowControl::_RefuseOrder(const QString &orderId, int refuseCode,const QStr
bool FlowControl::_SendOrder(const QString& orderId)
{
if(m_ordersMap.value(orderId)->courier_name.isEmpty()&&m_ordersMap.value(orderId)->delivery_type==1)
{
emit showAlert(AlertForm::MSGERROR,QString::fromLocal8Bit("配送员暂未接单,请等待"));
return true;
}
//TODO
// if(m_ordersMap.value(orderId)->riderName.isEmpty()&&m_ordersMap.value(orderId)->delivery_type==1)
// {
// emit showAlert(AlertForm::MSGERROR,QString::fromLocal8Bit("配送员暂未接单,请等待"));
// return true;
// }
QString error;
bool result;
QJsonObject sendJson;
......@@ -578,8 +647,8 @@ bool FlowControl::_SendOrder(const QString& orderId)
// 通知主界面移动订单
OrderObject *orderObject = m_ordersMap.value(orderId);
int oldStatus = orderObject->status;
orderObject->status = recvJson[JSON_STATUS].toInt();
int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
// TODO 服务器端现还未开发
//orderObject->status_desc = recvJson[JSON_STATUSDESC].toString();
emit changeOrderStatus(orderObject, oldStatus);
......@@ -618,8 +687,8 @@ bool FlowControl::_CompleteOrder(const QString& orderId)
// 通知主界面移动订单
OrderObject *orderObject = m_ordersMap.value(orderId);
int oldStatus = orderObject->status;
orderObject->status = recvJson[JSON_STATUS].toInt();
int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
emit changeOrderStatus(orderObject, oldStatus);
}
}
......@@ -657,8 +726,8 @@ bool FlowControl::_RefuseRefund(const QString& orderId)
// 通知主界面移动订单
OrderObject *orderObject = m_ordersMap.value(orderId);
int oldStatus = orderObject->status;
orderObject->status = recvJson[JSON_STATUS].toInt();
int oldStatus = orderObject->orderStatus;
orderObject->orderStatus = recvJson[JSON_STATUS].toInt();
// TODO 服务器端现还未开发
//orderObject->status_desc = recvJson[JSON_STATUSDESC].toString();
emit changeOrderStatus(orderObject, oldStatus);
......@@ -704,7 +773,20 @@ bool FlowControl::_RefundOrder(const QString &orderId,int reasonCode,const QStri
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("退单失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
}else
{
m_orderOperatePair.insert(orderId,0);
QJsonObject data = recvJson[JSON_DATA].toObject();
int status = data[JSON_RECEIVINGSTATUS].toInt();
if(1==status)
{
int orderStatus = data[JSON_ORDERSTATUS].toInt();
OrderObject* orderObject = m_ordersMap.value(orderId);
int oldOrderStatus = orderObject->orderStatus;
orderObject->orderStatus = orderStatus;
emit changeOrderStatus(orderObject, oldOrderStatus);
}
else
{
emit showAlert(AlertForm::MSGERROR, QString::fromLocal8Bit("退单失败![%1]").arg(recvJson[JSON_ERRMSG].toString()));
}
}
}
......@@ -951,16 +1033,16 @@ void FlowControl::_ClearOrder()
OrderObject *order=NULL;
m_OrderEntryMutex.lock();
foreach (order, m_ordersMap.values()) {
QDateTime createDateTime=QDateTime::fromTime_t(order->update_time);
QDateTime createDateTime=QDateTime::fromTime_t(order->updateTime);
qint64 days=createDateTime.daysTo(currentDateTime);
if(days>=2)
{
QLOG_INFO()<<QString("clear order %1").arg(order->order_id);
emit clearorder(order->order_id,order->status);
m_ordersMap.value(order->order_id)->deleteLater();
m_ordersEntryList.removeOne(order->order_id);
QLOG_INFO()<<QString("clear order %1").arg(order->id);
emit clearorder(order->id,order->orderStatus);
m_ordersMap.value(order->id)->deleteLater();
m_ordersEntryList.removeOne(order->id);
delete m_ordersMap.take(order->order_id);
delete m_ordersMap.take(order->id);
}
}
m_OrderEntryMutex.unlock();
......@@ -1021,7 +1103,7 @@ bool FlowControl::_Get01ReplyJson(const QJsonObject &content, QJsonObject &data,
{
result=_GetLoginReplyJson(content,error);
}
if(result&&content.contains("orderId")){
if(result/*&&content.contains("orderId")*/){
result=_GetQueryReplyJson(data,error,content["orderId"].toString());
}
else{
......@@ -1035,7 +1117,9 @@ bool FlowControl::_Get01ReplyJson(const QJsonObject &content, QJsonObject &data,
}
bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error)
{
QLOG_INFO()<<__FUNCTION__;
return true;
//TODO
/*QLOG_INFO()<<__FUNCTION__;
bool result = true;
if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString();
......@@ -1065,11 +1149,13 @@ bool FlowControl::_Get02ReplyJson(const QJsonObject &content, QJsonObject &data,
result=false;
error=QString::fromLocal8Bit("请求参数错误");
}
return result;
return result;*/
}
bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error)
{
QLOG_INFO()<<__FUNCTION__;
return true;
//TODO
/*QLOG_INFO()<<__FUNCTION__;
bool result = true;
if(m_bLoginResult&&content.contains("orderId")){
QString orderId=content["orderId"].toString();
......@@ -1101,7 +1187,7 @@ bool FlowControl::_Get03ReplyJson(const QJsonObject &content, QJsonObject &data,
result=false;
error=QString::fromLocal8Bit("请求参数错误");
}
return result;
return result;*/
}
bool FlowControl::_Get04ReplyJson(const QJsonObject &content, QJsonObject &data, QString &error)
{
......@@ -1171,12 +1257,12 @@ bool FlowControl::_Get11ReplyJson(const QJsonObject &content, QJsonObject &data,
return false;
}
else{
if(content[JSON_ORDERID].toString().isEmpty())
if(content[JSON_ORDER_ID].toString().isEmpty())
{
error =QString::fromLocal8Bit("订单号不能为空");
return false;
}
emit doPullOrder(content[JSON_ORDERID].toString(),content[JSON_CHANNEL].toString());
emit doPullOrder(content[JSON_ORDER_ID].toString(),content[JSON_CHANNEL].toString());
error = QString("success");
result = true;
}
......@@ -1243,6 +1329,7 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
{
orderObject->putTimes = 0;
}
orderObject->putTimes=orderObject->putTimes+1;
QJsonObject rObj, cObj;
if(orderObject->putType==1)
{
......@@ -1254,38 +1341,39 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
rObj.insert("fm_ver", "1.0");
cObj.insert("pay_id", "002");
cObj.insert("pay_str", QString::fromLocal8Bit("非码外卖"));
cObj.insert("pos_sale_id", orderObject->possale_id);
cObj.insert("order_status",orderObject->status);//订单的状态
cObj.insert("pos_sale_id", orderObject->possaleId);
cObj.insert("order_status",orderObject->orderStatus);//订单的状态
cObj.insert("pay_ebcode", orderObject->channel);
cObj.insert("order_index", orderObject->order_index);
cObj.insert("customer_name", orderObject->customer);
cObj.insert("order_index", orderObject->orderIndex);
cObj.insert("customer_name", orderObject->customerName);
cObj.insert("customer_phone", orderObject->phone);
cObj.insert("customer_address", orderObject->address);
cObj.insert("delivery_time", orderObject->delivery_time);
cObj.insert("create_time",orderObject->create_time);
cObj.insert("remark", orderObject->remark);
cObj.insert("has_invoice",orderObject->has_invoiced);
cObj.insert("invoice_title",orderObject->invoice_title);
cObj.insert("pay_ebcode_str", orderObject->channel_name);
cObj.insert("products_fee", orderObject->product_fee-orderObject->package_fee); // 商品金额
cObj.insert("service_fee", orderObject->service_fee); // 平台佣金
cObj.insert("discount_fee", orderObject->discount_fee); // 优惠总额
cObj.insert("dis_shop_fee", orderObject->dis_shop_fee); // 商家承担优惠金额
cObj.insert("dis_platform_fee", orderObject->dis_platform_fee); // 平台承担优惠金额
cObj.insert("send_fee", orderObject->send_fee); // 配送费
cObj.insert("shop_fee", orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee); // 商户能够拿到的钱(去除平台佣金)
cObj.insert("package_fee", orderObject->package_fee); // 打包费
cObj.insert("invoice_amount",orderObject->user_fee);
cObj.insert("paid_trans_id",orderObject->order_id);
cObj.insert("fm_id",orderObject->fm_id);
cObj.insert("customer_address", orderObject->addressDetail);
cObj.insert("delivery_time", orderObject->deliveryTime);
cObj.insert("create_time",orderObject->createTime);
cObj.insert("remark", orderObject->memo);
cObj.insert("has_invoice",orderObject->needInvoice);
cObj.insert("invoice_title",orderObject->invoiceTitle);
cObj.insert("pay_ebcode_str", orderObject->channel);
//TODO
cObj.insert("products_fee", orderObject->productPrice); // 商品金额
cObj.insert("service_fee", /*orderObject->service_fee*/0); // 平台佣金
cObj.insert("discount_fee", /*orderObject->discount_fee*/0); // 优惠总额
cObj.insert("dis_shop_fee", /*orderObject->dis_shop_fee*/0); // 商家承担优惠金额
cObj.insert("dis_platform_fee", /*orderObject->dis_platform_fee*/0); // 平台承担优惠金额
cObj.insert("send_fee", orderObject->deliveryPrice); // 配送费
cObj.insert("shop_fee", /*orderObject->total_fee-orderObject->send_fee-orderObject->service_fee-orderObject->dis_shop_fee*/0); // 商户能够拿到的钱(去除平台佣金)
cObj.insert("package_fee", orderObject->totalPrice); // 打包费
cObj.insert("invoice_amount",orderObject->totalPrice);
cObj.insert("paid_trans_id",orderObject->id);
//cObj.insert("fm_id",orderObject->fm_id);
rObj.insert("pay_id", cObj);
QJsonArray products;
for(int i=0; i < orderObject->proList.count(); i++)
{
QJsonObject tObj;
DishObject* dish=orderObject->proList.at(i);
tObj.insert("consume_num", orderObject->proList.at(i)->productAmount);
tObj.insert("pid", orderObject->proList.at(i)->pid);
dishesObject* dish=orderObject->proList.at(i);
tObj.insert("consume_num", orderObject->proList.at(i)->qty);
tObj.insert("pid", orderObject->proList.at(i)->id);
tObj.insert("original_price", orderObject->proList.at(i)->price);
if(!dish->sub_products.isEmpty())
{
......@@ -1293,11 +1381,11 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
for(int j=0; j < dish->sub_products.count(); j++)
{
QJsonObject sObj;
DishObject* subDish=dish->sub_products.at(j);
if(!subDish->pid.isEmpty())
dishesObject* subDish=dish->sub_products.at(j);
if(!subDish->id.isEmpty())
{
sObj.insert("consume_num", subDish->productAmount);
sObj.insert("pid", subDish->pid);
sObj.insert("consume_num", subDish->qty);
sObj.insert("pid", subDish->id);
sObj.insert("original_price", subDish->price);
subProduct.insert(0, sObj);
}
......@@ -1312,61 +1400,6 @@ bool FlowControl::_GetQueryReplyJson(QJsonObject &data, QString &error, const QS
return result;
}
void FlowControl::_HandleOrderOperation(const QString &orderId)
{
QLOG_INFO()<<__FUNCTION__;
int index=m_ordersMap.value(orderId)->order_index;
QString channel=m_ordersMap.value(orderId)->channel_name;
OrderObject *orderObject = m_ordersMap.value(orderId);
int status=orderObject->status;
int operation=m_orderOperatePair.value(orderId);
switch (status) {
case 3:
case 100:
if(0==operation)
{
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("%1%2号单取消成功!").arg(channel).arg(index));
QLOG_INFO()<<orderId<<QString::fromLocal8Bit("取消订单成功!");
}
break;
default:
if(1==operation)
{
QString remark(orderObject->remark), deliveryTime;
remark = remark.isEmpty()? "" : QString::fromLocal8Bit("\r\n[备注: %1]").arg(remark);
deliveryTime = QString::fromLocal8Bit("\r\n[期望送达时间: %1]").arg(QDateTime::fromTime_t(orderObject->delivery_time).toString("MM/dd hh:mm"));
emit showAlert(AlertForm::SUCCESS, QString::fromLocal8Bit("%1%2号单接单成功!%3%4").arg(channel).arg(index).arg(remark).arg(deliveryTime));
QLOG_INFO()<<orderId<<QString::fromLocal8Bit("接单成功!%1%2").arg(remark).arg(deliveryTime);
}
break;
}
if(orderOperation.orderId==orderId/*&&0==orderOperation.operation*/)
{
orderOperation.result=1;
if(0==semaphore.available())
{
semaphore.release(1);
}
}
auto iter=m_orderOperatePair.find(orderId);
if(iter!=m_orderOperatePair.end())
{
m_orderOperatePair.erase(iter);
}
}
void FlowControl::_OperateTimeOut()
{
QLOG_INFO()<<__FUNCTION__;
m_bOperateResult=false;
semaphore.release(1);
auto iter=m_orderOperatePair.find(orderOperation.orderId);
if(iter!=m_orderOperatePair.end())
{
m_orderOperatePair.erase(iter);
}
}
QString FlowControl::_Penny2Dollar(int penny)
{
......
......@@ -30,15 +30,6 @@ private:
FlowControl(FlowControl const&);
FlowControl& operator=(FlowControl const&);
// typedef struct ORDER_PROPERPY
// {
// bool bReaded;//是否成功入账过
// bool bCancled;//是否成功退款入账过
// bool entryType;//入账类型
// int pullNum;//入账失败次数
// //QDateTime btimeStamp;
// }OrderProperpy;
typedef struct TOPULL_ORDER
{
int pageSize;
......@@ -68,11 +59,11 @@ private:
QTimer *m_clearTimer;
QTimer *m_heartTimer;
QTimer *m_pullTimer;
QTimer *m_operateTimer;
QTimer *m_loginTimer;
// 网络通信
BillSocket *m_loginSocket;
BillSocket *m_pullOrderSocket;
BillSocket *m_pullOrderListSocket;
BillSocket *m_procOrderSocket;
BillSocket *m_pullDishesSocket;
// 订单容器
......@@ -94,9 +85,7 @@ private:
//订单拉取记录
QList<PullOrderInfo> m_orderPullList;
//订单操作互斥信号
QSemaphore semaphore;
//订单操作状态
OrderOperation orderOperation;
//QSemaphore semaphore;
QMutex m_OrderEntryMutex;
signals:
......@@ -194,10 +183,20 @@ private slots:
* */
bool _Login();
/* 功能:拉取订单
* 参数:[1]订单编号
* 返回:是否成功
* */
void _PullOrder();
/* 功能:拉取指定订单
* 参数:[1]订单编号
* 返回:是否成功
* */
bool _PullOrderDetail(const QString &orderId);
/* 功能:拉取订单
* 参数:NULL
* 返回:是否成功
* */
bool _PullOrder();
bool _PullOrderList(const int &pageSize, const int &pageNo);
/* 功能:发送心跳
* 参数:NULL
* 返回:是否成功
......@@ -258,20 +257,17 @@ private slots:
bool _Get12ReplyJson(const QJsonObject &content, QJsonObject &data,QString &error);
bool _GetLoginReplyJson(const QJsonObject &content, QString &error);
bool _GetQueryReplyJson(QJsonObject &data,QString &error, const QString &orderId);
void _HandleOrderOperation(const QString& orderId);
void _OperateTimeOut();
// 单位转换
QString _Penny2Dollar(int penny);
QString _GetIpAddress();
void _AddOrderPull(const QString& orderId,const QString& channel,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 _GetOrder(const QString& orderId,const QString& channel);
//点击屏幕指定区域
void _ClickOMSAssignArea();
void _ClickToLogin();
void _StartOperateTimer();
void _OrderAnalysis(const QJsonObject &jsonObject);
......
......@@ -63,17 +63,11 @@ QJsonObject DataManger::GetHeartData(const QString &password,
return rObj;
}
QJsonObject DataManger::GetPullOrderData(const QString &orderId, const QString &channel,
const int& pageNumber, const int& pageSize)
QJsonObject DataManger::GetPullOrderListData(const int& pageNumber, const int& pageSize)
{
QJsonObject rObj;
if(orderId.isEmpty())
{
rObj.insert(JSON_PAGENUMBER,pageNumber);
rObj.insert(JSON_PAGESIZE,pageSize);
}
rObj.insert(JSON_BUSINESSID,orderId);
rObj.insert(JSON_CHANNEL, channel);
rObj.insert(JSON_PAGENUMBER,pageNumber);
rObj.insert(JSON_PAGESIZE,pageSize);
rObj.insert(JSON_SHOPCODE,m_storeId);
//rObj.insert(JSON_AUTOCONFIRM, autoconfirm);
return rObj;
......@@ -136,15 +130,15 @@ QJsonObject DataManger::GetCompleteOrderData(const QString &orderId)
QJsonObject DataManger::GetRefundOrderData(int reasonCode,const QString &reason, const QString &orderId,const QString& channel)
{
QJsonObject rObj;
rObj.insert(JSON_BUSINESSID, orderId);
rObj.insert(JSON_ORDERID, orderId);
//TEST
//rObj.insert(JSON_REASON, "其它");
rObj.insert(JSON_REASON, reason);
rObj.insert(JSON_CODE, reasonCode);
rObj.insert("canceledCause", reason);
// rObj.insert(JSON_CODE, reasonCode);
rObj.insert(JSON_CHANNEL,channel);
rObj.insert(JSON_SHOPCODE, m_storeId);
// rObj.insert(JSON_CHANNEL,channel);
// rObj.insert(JSON_SHOPCODE, m_storeId);
return rObj;
}
......
......@@ -39,8 +39,7 @@ public:
* 参数:[1]时间戳
* 返回:登录数据
* */
QJsonObject GetPullOrderData(const QString& orderId, const QString &channel,
const int &pageNumber=0, const int &pageSize=100);
QJsonObject GetPullOrderListData(const int &pageNumber=0, const int &pageSize=100);
/* 功能:获取拉取配送员数据
* 参数:[1]门店号[2]渠道代码
* 返回:登录数据
......
......@@ -16,7 +16,7 @@ void SysTray::_CreatMenu()
{
m_menu = new QMenu();
m_menu->setObjectName("trayMenu");
QAction *acQuit = new QAction("退出", m_menu);
QAction *acQuit = new QAction(QString::fromLocal8Bit("退出"), m_menu);
connect(acQuit, &QAction::triggered, this, &SysTray::onActionQuitTriggered);
m_menu->addAction(acQuit);
......
......@@ -57,24 +57,24 @@ QString GetOperNameByStatus(int status, bool bRefuse)
case 1:
if(bRefuse)
{
return OPERATIONNAME_REFUSE;
return QString::fromLocal8Bit(OPERATIONNAME_REFUSE);
}
return OPERATIONNAME_GETDELIVERS;
return QString::fromLocal8Bit(OPERATIONNAME_GETDELIVERS);
break;
case 2:
if(bRefuse)
{
return OPERATIONNAME_REFUNDORDER;
return QString::fromLocal8Bit(OPERATIONNAME_REFUNDORDER);
}
return OPERATIONNAME_SENDOUT;
return QString::fromLocal8Bit(OPERATIONNAME_SENDOUT);
break;
case 5:
case 4:
if(bRefuse)
{
return OPERATIONNAME_REFUNDORDER;;
return QString::fromLocal8Bit(OPERATIONNAME_REFUNDORDER);
}
return OPERATIONNAME_COMPLETE;
return QString::fromLocal8Bit(OPERATIONNAME_COMPLETE);
break;
case 6:
case 200:
......@@ -83,9 +83,9 @@ QString GetOperNameByStatus(int status, bool bRefuse)
case 20:
if(bRefuse)
{
return OPERATIONNAME_REFUSEREFUND;
return QString::fromLocal8Bit(OPERATIONNAME_REFUSEREFUND);
}
return OPERATIONNAME_REFUNDORDER;
return QString::fromLocal8Bit(OPERATIONNAME_REFUNDORDER);
break;
default:
return "NULL";
......
#include "dishesObject.h"
#include <QJsonArray>
dishesObject::dishesObject(const dishesObject &dish, QObject *parent):QObject(parent)
{
qDeleteAll(sub_products);
sub_products.clear();
const QMetaObject *m = dish.metaObject();
for( int i=m->propertyOffset(); i<m->propertyCount(); i++)
{
QMetaProperty qmp = m->property(i);
QString key = QString::fromLatin1(qmp.name());
QVariant value = dish.property(key.toUtf8());
this->setProperty(key.toUtf8(), value);
}
foreach (auto ptr, dish.sub_products) {
dishesObject *product=new dishesObject(*ptr,this);
this->sub_products.append(product);
}
}
dishesObject& dishesObject::operator =(const dishesObject& dish)
{
qDeleteAll(sub_products);
sub_products.clear();
const QMetaObject *m = dish.metaObject();
for( int i=m->propertyOffset(); i<m->propertyCount(); i++)
{
QMetaProperty qmp = m->property(i);
QString key = QString::fromLatin1(qmp.name());
QVariant value = dish.property(key.toUtf8());
this->setProperty(key.toUtf8(), value);
}
foreach (auto ptr, dish.sub_products) {
dishesObject *product=new dishesObject(*ptr,this);
this->sub_products.append(product);
}
return *this;
}
void dishesObject::FetchDataFromJson(const QJsonObject &json)
{
foreach(QString key, json.keys())
{
setProperty(key.toUtf8(), json[key].toVariant());
}
qDeleteAll(sub_products);
sub_products.clear();
QJsonArray subDishesArray = json["sub_products"].toArray();
foreach(QJsonValue subDish, subDishesArray)
{
dishesObject *item = new dishesObject(this);
item->FetchDataFromJson(subDish.toObject());
sub_products.append(item);
}
return;
}
#ifndef DISHESOBJECT_H
#define DISHESOBJECT_H
#include <QObject>
#include "baseObject.h"
class dishesObject : public BaseObject
#include <QJsonObject>
#include <QVariant>
#include <QMetaProperty>
class dishesObject : public QObject
{
Q_OBJECT
public:
explicit dishesObject(QObject *parent = 0):
BaseObject(parent){}
public:
Q_PROPERTY (QString code READ getcode WRITE setcode)
Q_PROPERTY (QString id READ getId WRITE setId)
Q_PROPERTY (QString specId READ getspecId WRITE setspecId)
Q_PROPERTY (QString name READ getname WRITE setname)
Q_PROPERTY (int status READ getstatus WRITE setstatus)
Q_PROPERTY (QString pic READ getpic WRITE setpic)
Q_PROPERTY (QString specName READ getspecName WRITE setspecName)
Q_PROPERTY (QString code READ getcode WRITE setcode)
Q_PROPERTY (int packagePrice READ getpackagePrice WRITE setpackagePrice)
Q_PROPERTY (int qty READ getqty WRITE setqty)
Q_PROPERTY (int price READ getprice WRITE setprice)
Q_PROPERTY (QString unit READ getunit WRITE setunit)
Q_PROPERTY (int rank READ getrank WRITE setrank)
Q_PROPERTY (QString description READ getdescription WRITE setdescription)
QString code;
public:
explicit dishesObject(QObject *parent = 0):QObject(parent){}
dishesObject(const dishesObject& dish,QObject* parent=0);
dishesObject& operator =(const dishesObject& dish);
void FetchDataFromJson(const QJsonObject &json);
QString id;
QString name;
int status;
QString pic;
QString specId;
QString specName;
QString code;
int qty;
int packagePrice;
int price;
QString unit;
int rank;
QString description;
QList<dishesObject*> sub_products;
protected:
inline QString getcode(){ return code; }
inline void setcode(const QString& v){ code=v; }
inline QString getname(){ return name; }
inline void setname(const QString& v){ name=v; }
inline QString getId(){ return id; }
inline void setId(const QString& v){ id = v; }
inline int getstatus(){ return status; }
inline void setstatus(const int& v){ status=v; }
inline QString getspecId(){ return specId; }
inline void setspecId(const QString& v){ specId = v; }
inline QString getpic(){ return pic; }
inline void setpic(const QString& v){ pic=v; }
inline QString getname(){ return name; }
inline void setname(const QString& v){ name = v; }
inline int getprice(){ return price; }
inline void setprice(const int& v){ price=v; }
inline void setprice(const int& v){ price = v; }
inline QString getunit(){ return unit; }
inline void setunit(const QString& v){ unit=v; }
inline int getpackagePrice(){ return packagePrice; }
inline void setpackagePrice(const int& v){ packagePrice = v; }
inline int getrank(){ return rank; }
inline void setrank(const int& v){ rank=v; }
inline QString getspecName(){ return specName; }
inline void setspecName(const QString& v){ specName = v; }
inline QString getcode(){ return code; }
inline void setcode(const QString& v){ code = v; }
inline QString getdescription(){ return description; }
inline void setdescription(const QString& v){ description=v; }
inline int getqty(){ return qty; }
inline void setqty(const int& v){ qty = v; }
};
#endif // DISHESOBJECT_H
#include "orderObject.h"
#include "preDefine.h"
#include <QJsonArray>
OrderObject::OrderObject(const OrderObject &order, QObject *parent):QObject(parent)
{
qDeleteAll(proList);
proList.clear();
const QMetaObject *m = order.metaObject();
for( int i=m->propertyOffset(); i<m->propertyCount(); i++)
{
QMetaProperty qmp = m->property(i);
QString key = QString::fromLatin1(qmp.name());
QVariant value = order.property(key.toUtf8());
this->setProperty(key.toUtf8(), value);
}
foreach (auto ptr, order.proList) {
dishesObject *product=new dishesObject(*ptr,this);
this->proList.append(product);
}
}
OrderObject& OrderObject::operator =(const OrderObject& order)
{
qDeleteAll(proList);
proList.clear();
const QMetaObject *m = order.metaObject();
for( int i=m->propertyOffset(); i<m->propertyCount(); i++)
{
QMetaProperty qmp = m->property(i);
QString key = QString::fromLatin1(qmp.name());
QVariant value = order.property(key.toUtf8());
this->setProperty(key.toUtf8(), value);
}
foreach (auto ptr, order.proList) {
dishesObject *product=new dishesObject(*ptr,this);
this->proList.append(product);
}
return *this;
}
void OrderObject::FromJson(const QJsonObject &json)
{
......@@ -10,28 +46,50 @@ void OrderObject::FromJson(const QJsonObject &json)
QJsonArray products = json[JSON_PRODUCTS].toArray();
foreach(QJsonValue product, products)
{
QJsonObject dishJson = product.toObject();
DishObject *dishObject = new DishObject(this);
dishObject->FetchDataFromJson(dishJson);
proList.append(dishObject);
QJsonObject proJson = product.toObject();
dishesObject *proObject = new dishesObject(this);
proObject->FetchDataFromJson(proJson);
proList.append(proObject);
}
return;
}
void DishObject::FetchDataFromJson(const QJsonObject &json)
void OrderObject::FetchDataFromJson(const QJsonObject &json)
{
foreach(QString key, json.keys())
QStringList keys = json.keys();
foreach(QString key, keys)
{
setProperty(key.toUtf8(), json[key].toVariant());
}
qDeleteAll(sub_products);
sub_products.clear();
QJsonArray subDishesArray = json["sub_product"].toArray();
foreach(QJsonValue subDish, subDishesArray)
return;
}
QString OrderObject::getChannelName()
{
int value = channel.toInt();
qDebug()<<"value----------"<<value;
switch(value)
{
DishObject *item = new DishObject(this);
item->FetchDataFromJson(subDish.toObject());
sub_products.append(item);
case 1:return QString::fromLocal8Bit("星巴克");
case 2:return QString::fromLocal8Bit("百度外卖");
case 3:return QString::fromLocal8Bit("饿了么");
deafult: return QString::fromLocal8Bit("未知");
}
return;
return QString::fromLocal8Bit("未知");
}
QString OrderObject::getOrderStatusDec()
{
switch(orderStatus)
{
case 1:return QString::fromLocal8Bit("下单待支付");
case 2:return QString::fromLocal8Bit("已支付");
case 3:return QString::fromLocal8Bit("接单");
case 4:return QString::fromLocal8Bit("配送中");
case 5:return QString::fromLocal8Bit("完成");
case 6:return QString::fromLocal8Bit("取消");
deafult: return QString::fromLocal8Bit("未知");
}
return QString::fromLocal8Bit("未知");
}
......@@ -2,106 +2,68 @@
#define ORDEROBJECT_H
#include "Model/baseObject.h"
#include "Model/dishesObject.h"
class DishObject : public QObject
class OrderObject : public QObject
{
Q_OBJECT
Q_PROPERTY (QString pid READ getpid WRITE setpid)
Q_PROPERTY (QString upc READ getupc WRITE setupc)
Q_PROPERTY (QString name READ getname WRITE setname)
Q_PROPERTY (int price READ getprice WRITE setprice)
Q_PROPERTY (int productAmount READ getproduct_amount WRITE setproduct_amount)
Q_PROPERTY (QString spec_id READ getspec_id WRITE setspec_id)
Q_PROPERTY (QString spec_name READ getspec_name WRITE setspec_name)
Q_PROPERTY (QString unit READ getunit WRITE setunit)
Q_PROPERTY (QString property_tags READ getproperty_tags WRITE setproperty_tags)
Q_PROPERTY (int unit_ratio READ getunit_ratio WRITE setunit_ratio)
Q_PROPERTY (int weight READ getweight WRITE setweight)
Q_PROPERTY (int cost READ getcost WRITE setcost)
Q_PROPERTY (QString stock_barcode READ getstock_barcode WRITE setstock_barcode)
Q_PROPERTY (QString bsk_num READ getbsk_num WRITE setbsk_num)
Q_PROPERTY (int qty READ getqty WRITE setqty)
private:
inline QString getpid(){ return pid; }
inline void setpid(const QString& v){ pid = v; }
inline QString getupc(){ return upc; }
inline void setupc(const QString& v){ upc = v; }
inline QString getname(){ return name; }
inline void setname(const QString& v){ name = v; }
inline int getprice(){ return price; }
inline void setprice(const int& v){ price = v; }
inline int getproduct_amount(){ return productAmount; }
inline void setproduct_amount(const int& v){ productAmount = v; }
inline QString getspec_id(){ return spec_id; }
inline void setspec_id(const QString& v){ spec_id = v; }
inline QString getspec_name(){ return spec_name; }
inline void setspec_name(const QString& v){ spec_name = v; }
inline QString getunit(){ return unit; }
inline void setunit(const QString& v){ unit = v; }
inline QString getproperty_tags(){ return property_tags; }
inline void setproperty_tags(const QString& v){ property_tags = v; }
inline int getunit_ratio(){ return unit_ratio; }
inline void setunit_ratio(const int& v){ unit_ratio = v; }
inline int getweight(){ return weight; }
inline void setweight(const int& v){ weight = v; }
inline int getqty(){ return qty; }
inline void setqty(const int& v){ qty = v; }
inline int getcost(){ return cost; }
inline void setcost(const int& v){ cost = v; }
inline QString getstock_barcode(){ return stock_barcode; }
inline void setstock_barcode(const QString& v){ stock_barcode = v; }
inline QString getbsk_num(){ return bsk_num; }
inline void setbsk_num(const QString& v){ bsk_num = v; }
public:
DishObject(QObject* parent = 0):QObject(parent){}
~DishObject(){}
void FetchDataFromJson(const QJsonObject& json);
public:
QString pid; //商品编号
QString upc; //商品UPC码
QString name; //商品名称
int price; //单价
int productAmount; //商品数量
QString spec_id; //规格编码
QString spec_name; //规格名称
QString unit; //单位:如“份”、“杯”
QString property_tags; //属性描述
int unit_ratio; //商家入账单位(规格)转换系数
int weight; //重量
int cost; //成本价
QString stock_barcode; //商户入账商品编号
QString bsk_num; // 商品篮子号
QList<DishObject*> sub_products; //子商品
int qty;
};
Q_PROPERTY (QString id READ getId WRITE setId)
Q_PROPERTY (QString orgOrderId READ getOrgOrderId WRITE setOrgOrderId)
Q_PROPERTY (QString waybillId READ getWaybillId WRITE setWaybillId)
Q_PROPERTY (QString watercourseId READ getWatercourseId WRITE setWatercourseId)
Q_PROPERTY (QString customerId READ getCustomerId WRITE setCustomerId)
Q_PROPERTY (QString customerName READ getCustomerName WRITE setCustomerName)
Q_PROPERTY (QString phone READ getPhone WRITE setPhone)
class OrderObject : public BaseObject
{
Q_OBJECT
Q_PROPERTY (QString msr_no READ getMsr_no WRITE setMsr_no)
Q_PROPERTY (QString storeId READ getStoreId WRITE setStoreId)
Q_PROPERTY (QString storeName READ getStoreName WRITE setStoreName)
Q_PROPERTY (QString storeAddress READ getStoreAddress WRITE setStoreAddress)
Q_PROPERTY (QString channel READ getChannel WRITE setChannel)
Q_PROPERTY (QString payWay READ getPayWay WRITE setPayWay)
Q_PROPERTY (QString deliveryTime READ getDeliveryTime WRITE setDeliveryTime)
Q_PROPERTY (QString riderName READ getRiderName WRITE setRiderName)
Q_PROPERTY (QString riderPhone READ getRiderPhone WRITE setRiderPhone)
Q_PROPERTY (QString createTime READ getCreateTime WRITE setCreateTime)
Q_PROPERTY (QString confirmTime READ getConfirmTime WRITE setConfirmTime)
Q_PROPERTY (QString sendTime READ getSendTime WRITE setSendTime)
Q_PROPERTY (QString finishTime READ getFinishTime WRITE setFinishTime)
Q_PROPERTY (QString cancelTime READ getCancelTime WRITE setCancelTime)
Q_PROPERTY (QString cancelReason READ getCancelReason WRITE setCancelReason)
Q_PROPERTY (QString memo READ getMemo WRITE setMemo)
Q_PROPERTY (QString invoiceType READ getInvoiceType WRITE setInvoiceType)
Q_PROPERTY (QString invoiceTitle READ getInvoiceTitle WRITE setInvoiceTitle)
Q_PROPERTY (QString invoiceTaxpayerId READ getInvoiceTaxpayerId WRITE setInvoiceTaxpayerId)
Q_PROPERTY (QString firstName READ getFirstName WRITE setFirstName)
Q_PROPERTY (QString lastName READ getLastName WRITE setLastName)
Q_PROPERTY (QString longitude READ getLongitude WRITE setLongitude)
Q_PROPERTY (QString latitude READ getLatitude WRITE setLatitude)
Q_PROPERTY (QString street READ getStreet WRITE setStreet)
Q_PROPERTY (QString addressDetail READ getAddressDetail WRITE setAddressDetail)
Q_PROPERTY (QString possaleId READ getPossaleId WRITE setPossaleId)
Q_PROPERTY (int updateTime READ getUpdateTime WRITE setUpdateTime)
Q_PROPERTY (int needInvoice READ getNeedInvoice WRITE setNeedInvoice)
Q_PROPERTY (int deliveryPrice READ getDeliveryPrice WRITE setDeliveryPrice)
Q_PROPERTY (int productPrice READ getProductPrice WRITE setProductPrice)
Q_PROPERTY (int totalPrice READ getTotalPrice WRITE setTotalPrice)
Q_PROPERTY (int orderStatus READ getOrderStatus WRITE setOrderStatus)
Q_PROPERTY (int deliveryStatus READ getDeliveryStatus WRITE setDeliveryStatus)
Q_PROPERTY (int payStatus READ getPayStatus WRITE setPayStatus)
Q_PROPERTY (int refundStatus READ getRefundStatus WRITE setRefundStatus)
Q_PROPERTY (int deliveryChannel READ getDeliveryChannel WRITE setDeliveryChannel)
Q_PROPERTY (int customerSex READ getCustomerSex WRITE setCustomerSex)
Q_PROPERTY (int orderIndex READ getOrderIndex WRITE setOrderIndex)
public:
OrderObject(QObject *parent=0)
:BaseObject(parent){}
:QObject(parent){}
OrderObject(const OrderObject& order,QObject* parent);
OrderObject& operator =(const OrderObject& order);
typedef enum {
NewOrder=1,Confirmed,Cancled,Sendout,ToSend,
NewOrder=2,Confirmed,Cancled,Sendout,ToSend,
Finished,Locked=-1,RequestRefund=20,
AgreeRefund=30,RefuseRefund=40,Refunded=100
}OrderStatus;
......@@ -110,303 +72,205 @@ public:
* 参数:[1]JSon对象
* 返回:NULL
* */
void FromJson(const QJsonObject& json);
void FromJson(const QJsonObject &json);
void FetchDataFromJson(const QJsonObject& json);
QList<dishesObject*>proList;
public:
Q_PROPERTY (QString channel READ getChannel WRITE setChannel)
Q_PROPERTY (QString channel_name READ getchannelName WRITE setchannelName)
Q_PROPERTY (QString phone READ getphone WRITE setphone)
Q_PROPERTY (QString address READ getaddress WRITE setaddress)
Q_PROPERTY (QString customer READ getcustomer WRITE setcustomer)
Q_PROPERTY (QString delivery_party READ getdelivery_party WRITE setdelivery_party)
Q_PROPERTY (QString order_id READ getOrder_id WRITE setOrder_id)
Q_PROPERTY (QString posorder_id READ getposorder_id WRITE setposorder_id)
Q_PROPERTY (QString coupon READ getCoupon WRITE setCoupon)
Q_PROPERTY (QString remark READ getRemark WRITE setRemark)
Q_PROPERTY (QString timestamp READ getTimestamp WRITE setTimestamp)
Q_PROPERTY (QString pay_type READ getpay_type WRITE setpay_type)
Q_PROPERTY (QString printcfg READ getprintcfg WRITE setprintcfg)
Q_PROPERTY (int delivery_type READ getDelivery_type WRITE setDelivery_type)
Q_PROPERTY (int paid_fee READ getpaid_fee WRITE setpaid_fee)
Q_PROPERTY (int rest_fee READ getrest_fee WRITE setrest_fee)
Q_PROPERTY (int user_fee READ getuser_fee WRITE setuser_fee)
Q_PROPERTY (int shop_fee READ getshop_fee WRITE setshop_fee)
Q_PROPERTY (int status READ getstatus WRITE setstatus)
Q_PROPERTY (int create_time READ getCreate_time WRITE setCreate_time)
Q_PROPERTY (int expire_time READ getExpire_time WRITE setExpire_time)
Q_PROPERTY (int total_fee READ gettotal_fee WRITE settotal_fee)
Q_PROPERTY (int discount_fee READ getdiscount_fee WRITE setdiscount_fee)
Q_PROPERTY (int send_fee READ getsend_fee WRITE setsend_fee)
Q_PROPERTY (int total_amount READ gettotal_Amount WRITE settotal_Amount)
Q_PROPERTY (int channelNum READ getchannelNum WRITE setchannelNum)
Q_PROPERTY (int order_index READ getorder_index WRITE setorder_index)
Q_PROPERTY (bool has_invoiced READ gethas_invoiced WRITE sethas_invoiced)
Q_PROPERTY (bool isPut READ getisPut WRITE setisPut)
Q_PROPERTY (bool isCancle READ getisCancle WRITE setisCancle)
Q_PROPERTY (QString invoice_title READ getinvoice_title WRITE setinvoice_title)
Q_PROPERTY (QString courier_name READ getcourier_name WRITE setcourier_name)
Q_PROPERTY (QString courier_phone READ getcourier_phone WRITE setcourier_phone)
Q_PROPERTY (QString status_desc READ getstatus_desc WRITE setstatus_desc)
Q_PROPERTY (int delivery_time READ getdelivery_time WRITE setdelivery_time)
Q_PROPERTY (int delivery_status READ getdelivery_status WRITE setdelivery_status)
Q_PROPERTY (QString fm_id READ getfm_id WRITE setfm_id)
Q_PROPERTY (QString possale_id READ getpossale_id WRITE setpossale_id)
Q_PROPERTY (QStringList records READ getrecords WRITE setrecords)
Q_PROPERTY (int service_fee READ getservice_fee WRITE setservice_fee)
Q_PROPERTY (int dis_platform_fee READ getdis_platform_fee WRITE setdis_platform_fee)
Q_PROPERTY (int dis_shop_fee READ getdis_shop_fee WRITE setdis_shop_fee)
Q_PROPERTY (int package_fee READ getpackage_fee WRITE setpackage_fee)
Q_PROPERTY (int product_fee READ getproduct_fee WRITE setproduct_fee)
Q_PROPERTY (int order_type READ getorder_type WRITE setorder_type)
Q_PROPERTY (int update_time READ getupdate_time WRITE setupdate_time)
Q_PROPERTY (int putType READ getputType WRITE setputType)
Q_PROPERTY (int putTimes READ getputTimes WRITE setputTimes)
int service_fee; //平台佣金
int dis_platform_fee; //平台承担的优惠金额
int dis_shop_fee; //商户承担的优惠金额
int package_fee; //打包费
QString possale_id; //pos短号
bool isPut; //是否入账
bool isCancle; //是否撤单
int putType; //入账类型
int putTimes; //入账次数
QString address; //地址
QString channel; //渠道
QString channel_name; //渠道名称
QString customer; //用户姓名
QString coupon; //码
QString courier_name; //配送员信息
QString courier_phone; //配送员电话
int channelNum; //渠道当天序号
int create_time; //订单时间
int delivery_type; //自配送/平台配送
QString delivery_party; //派送方式
int delivery_time; //期望送达时间
int delivery_status; //配送状态
int discount_fee; //商品优惠
int expire_time; //订单倒计时
QString fm_id; //非码订单编号
bool has_invoiced; //是否需要发票
QString invoice_title; //发票抬头
QString order_id; //订单号
int order_index; //渠道当天序号
QString pay_type; //支付方式
QString phone; //电话
QString posorder_id; //pos订单号
QString printcfg; //打印联
QList<DishObject *> proList; //商品明细
int paid_fee; //已付金额
QString remark; //备注
int rest_fee; //未付
QString status_desc; //订单状态描述
int status; //订单状态
int shop_fee; //应收金额(商家和骑士看到的)
int send_fee; //运费金额
QString timestamp; //时间戳
int total_fee; //商品金额
int total_amount; //总件数
int user_fee; //应付金额
QStringList records; //订单操作记录
int product_fee; // 商户商品金额=商品金额+打包费
int order_type; //订单类型
int update_time; //期望送达时间
protected:
inline bool getisPut() const{return isPut;}
inline void setisPut(const bool &v){isPut = v;}
inline bool getisCancle() const{return isCancle;}
inline void setisCancle(const bool &v){isCancle = v;}
inline int getputType() const{return putType;}
inline void setputType(const int &v){putType = v;}
inline int getputTimes() const{return putTimes;}
inline void setputTimes(const int &v){putTimes = v;}
inline int getupdate_time() const{return update_time;}
inline void setupdate_time(const int &v){update_time = v;}
inline int getproduct_fee() const{return product_fee;}
inline void setproduct_fee(const int &v){product_fee = v;}
inline int getservice_fee() const{return service_fee;}
QString id; //编号
QString orgOrderId; //原始订单编号
QString waybillId; //运单号
QString watercourseId; //流水号(取餐号)
QString customerId; //用户编号
QString customerName;//用户名称
QString possaleId;
QString phone;
QString msr_no;
QString storeId;
QString storeName;
QString storeAddress;
QString channel;
QString payWay;
QString deliveryTime;
QString riderName;
QString riderPhone;
QString createTime;
QString confirmTime;
QString sendTime;
QString finishTime;
QString cancelTime;
QString cancelReason;
QString memo;
QString invoiceType;
QString invoiceTitle;
QString invoiceTaxpayerId;
QString firstName;
QString lastName;
QString longitude;
QString latitude;
QString street;
QString addressDetail;
int orderIndex;
int updateTime;
int customerSex; //用户性别 1- 男2- 女
int needInvoice;
int deliveryPrice;
int productPrice;
int totalPrice;
int orderStatus;
int deliveryStatus;
int payStatus;
int refundStatus;
int deliveryChannel;
int putType;
int putTimes;
bool isPut;
bool isCancle;
QString getChannelName();
QString getOrderStatusDec();
inline QString getId()const{return id;}
inline void setId(const QString& v){id = v;}
inline void setservice_fee(const int &v){service_fee = v;}
inline QString getOrgOrderId()const{return orgOrderId;}
inline void setOrgOrderId(const QString& v){orgOrderId = v;}
inline int getdis_platform_fee() const{return dis_platform_fee;}
inline QString getWaybillId()const{return waybillId;}
inline void setWaybillId(const QString& v){waybillId = v;}
inline void setdis_platform_fee(const int &v){dis_platform_fee = v;}
inline QString getWatercourseId()const{return watercourseId;}
inline void setWatercourseId(const QString& v){watercourseId = v;}
inline int getdis_shop_fee() const{return dis_shop_fee;}
inline QString getCustomerId()const{return customerId;}
inline void setCustomerId(const QString& v){customerId = v;}
inline void setdis_shop_fee(const int &v){dis_shop_fee = v;}
inline QString getCustomerName()const{return customerName;}
inline void setCustomerName(const QString& v){customerName = v;}
inline int getpackage_fee() const{return package_fee;}
inline QString getPhone()const{return phone;}
inline void setPhone(const QString& v){phone = v;}
inline void setpackage_fee(const int &v){package_fee = v;}
inline QString getMsr_no()const{return msr_no;}
inline void setMsr_no(const QString& v){msr_no = v;}
inline int getDelivery_type() const{return delivery_type;}
inline QString getStoreId()const{return storeId;}
inline void setStoreId(const QString& v){storeId = v;}
inline void setDelivery_type(const int &v){delivery_type=v;}
inline QString getStoreName()const{return storeName;}
inline void setStoreName(const QString& v){storeName = v;}
inline int getstatus() const{return status;}
inline QString getStoreAddress()const{return storeAddress;}
inline void setStoreAddress(const QString& v){storeAddress = v;}
inline void setstatus(const int &v){status = v;}
inline QString getChannel()const{return channel;}
inline void setChannel(const QString& v){channel = v;}
inline QString getChannel() const{return channel;}
inline QString getPayWay()const{return payWay;}
inline void setPayWay(const QString& v){payWay = v;}
inline void setChannel(const QString &v){channel = v;}
inline QString getDeliveryTime()const{return deliveryTime;}
inline void setDeliveryTime(const QString& v){deliveryTime = v;}
inline QString getchannelName() const{return channel_name;}
inline QString getRiderName()const{return riderName;}
inline void setRiderName(const QString& v){riderName = v;}
inline void setchannelName(const QString &v){channel_name = v;}
inline QString getRiderPhone()const{return riderPhone;}
inline void setRiderPhone(const QString& v){riderPhone = v;}
inline void setpossale_id(const QString &v){possale_id = v;}
inline QString getCreateTime()const{return createTime;}
inline void setCreateTime(const QString& v){createTime = v;}
inline QString getpossale_id() const{return possale_id;}
inline QString getConfirmTime()const{return confirmTime;}
inline void setConfirmTime(const QString& v){confirmTime = v;}
inline QString getphone() const{return phone;}
inline QString getSendTime()const{return sendTime;}
inline void setSendTime(const QString& v){sendTime = v;}
inline void setphone(const QString& v){phone = v;}
inline QString getFinishTime()const{return finishTime;}
inline void setFinishTime(const QString& v){finishTime = v;}
inline QString getaddress() const{return address;}
inline QString getCancelTime()const{return cancelTime;}
inline void setCancelTime(const QString& v){cancelTime = v;}
inline void setaddress(const QString& v){address = v;}
inline QString getCancelReason()const{return cancelReason;}
inline void setCancelReason(const QString& v){cancelReason = v;}
inline QString getcustomer() const{return customer;}
inline QString getMemo()const{return memo;}
inline void setMemo(const QString& v){memo = v;}
inline void setcustomer(const QString& v){customer = v;}
inline QString getInvoiceType()const{return invoiceType;}
inline void setInvoiceType(const QString& v){invoiceType = v;}
inline QString getdelivery_party() const{return delivery_party;}
inline QString getInvoiceTitle()const{return invoiceTitle;}
inline void setInvoiceTitle(const QString& v){invoiceTitle = v;}
inline void setdelivery_party(const QString& v){delivery_party = v;}
inline QString getInvoiceTaxpayerId()const{return invoiceTaxpayerId;}
inline void setInvoiceTaxpayerId(const QString& v){invoiceTaxpayerId = v;}
inline QString getOrder_id() const{return order_id;}
inline QString getFirstName()const{return firstName;}
inline void setFirstName(const QString& v){firstName = v;}
inline void setOrder_id(const QString &v){order_id = v;}
inline QString getLastName()const{return lastName;}
inline void setLastName(const QString& v){lastName = v;}
inline QString getposorder_id() const{return posorder_id;}
inline QString getLongitude()const{return longitude;}
inline void setLongitude(const QString& v){longitude = v;}
inline void setposorder_id(const QString &v){posorder_id = v;}
inline QString getLatitude()const{return latitude;}
inline void setLatitude(const QString& v){latitude = v;}
inline int getpaid_fee() const{return paid_fee;}
inline QString getStreet()const{return street;}
inline void setStreet(const QString& v){street = v;}
inline void setpaid_fee(const int &v){paid_fee = v;}
inline QString getAddressDetail()const{return addressDetail;}
inline void setAddressDetail(const QString& v){addressDetail = v;}
inline int getshop_fee() const{return shop_fee;}
inline QString getPossaleId()const{return possaleId;}
inline void setPossaleId(const QString& v){possaleId = v;}
inline void setshop_fee(const int &v){shop_fee = v;}
inline int getOrderIndex()const{return orderIndex;}
inline void setOrderIndex(const int& v){orderIndex = v;}
inline int getrest_fee() const{return rest_fee ;}
inline int getUpdateTime()const{return updateTime;}
inline void setUpdateTime(const int& v){updateTime = v;}
inline void setrest_fee(const int &v){rest_fee = v;}
inline int getNeedInvoice()const{return needInvoice;}
inline void setNeedInvoice(const int& v){needInvoice = v;}
inline int getuser_fee() const { return user_fee ; }
inline int getDeliveryPrice()const{return deliveryPrice;}
inline void setDeliveryPrice(const int& v){deliveryPrice = v;}
inline void setuser_fee(const int &v) { user_fee = v; }
inline int getProductPrice()const{return productPrice;}
inline void setProductPrice(const int& v){productPrice = v;}
inline QString getCoupon() const { return coupon; }
inline int getTotalPrice()const{return totalPrice;}
inline void setTotalPrice(const int& v){totalPrice = v;}
inline void setCoupon(const QString &v) { coupon = v; }
inline int getOrderStatus()const{return orderStatus;}
inline void setOrderStatus(const int& v){orderStatus = v;}
inline QString getRemark() const { return remark; }
inline int getDeliveryStatus()const{return deliveryStatus;}
inline void setDeliveryStatus(const int& v){deliveryStatus = v;}
inline void setRemark(const QString &v) { remark = v; }
inline int getPayStatus()const{return payStatus;}
inline void setPayStatus(const int& v){payStatus = v;}
inline int getCreate_time() const { return create_time; }
inline int getDeliveryChannel()const{return deliveryChannel;}
inline void setDeliveryChannel(const int& v){deliveryChannel = v;}
inline void setCreate_time(const int &v){create_time = v;}
inline int getRefundStatus()const{return refundStatus;}
inline void setRefundStatus(const int& v){refundStatus = v;}
inline int getExpire_time() const{return expire_time;}
inline void setExpire_time(const int &v){expire_time = v;}
inline QString getTimestamp() const{return timestamp;}
inline void setTimestamp(const QString &v){timestamp = v;}
inline QString getpay_type() const{return pay_type;}
inline void setpay_type(const QString &v){pay_type = v;}
inline QString getprintcfg() const{return printcfg;}
inline void setprintcfg(const QString &v){printcfg = v;}
inline int gettotal_fee() const{return total_fee;}
inline void settotal_fee(const int &v){total_fee = v;}
inline int getdiscount_fee() const{return discount_fee;}
inline void setdiscount_fee(const int &v){discount_fee = v;}
inline int getsend_fee() const{return send_fee;}
inline void setsend_fee(const int &v){send_fee = v;}
inline int gettotal_Amount() const{return total_amount;}
inline void settotal_Amount(const int &v){total_amount = v;}
inline int getchannelNum() const{return channelNum;}
inline void setchannelNum(const int &v){channelNum = v;}
inline int getorder_index() const{return order_index;}
inline void setorder_index(const int &v){order_index = v;}
inline bool gethas_invoiced() const{return has_invoiced;}
inline void sethas_invoiced(const bool &v){has_invoiced = v;}
inline QString getinvoice_title() const{return invoice_title;}
inline void setinvoice_title(const QString &v){invoice_title = v;}
inline QString getcourier_name() const{return courier_name;}
inline void setcourier_name(const QString &v){courier_name =v;}
inline QString getcourier_phone() const{return courier_phone;}
inline void setcourier_phone(const QString &v){courier_phone = v;}
inline QString getstatus_desc() const{return status_desc;}
inline void setstatus_desc(const QString &v){status_desc = v;}
inline int getdelivery_time() const{return delivery_time;}
inline void setdelivery_time(const int &v){delivery_time = v;}
inline QString getfm_id() const{return fm_id;}
inline void setfm_id(const QString &v){fm_id = v;}
inline int getdelivery_status() const{return delivery_status;}
inline void setdelivery_status(const int &v){delivery_status = v;}
inline int getCustomerSex()const{return customerSex;}
inline void setCustomerSex(const int& v){customerSex = v;}
};
inline QStringList getrecords() const{return records;}
inline void setrecords(const QStringList &v){records = v;}
inline int getorder_type() const{return order_type;}
inline void setorder_type(const int& v){order_type=v;}
};
#endif // ORDEROBJECT_H
......@@ -51,6 +51,39 @@ bool BillSocket::Request(const QJsonObject &requestJson, QJsonObject &recvJson,
return true;
}
bool BillSocket::Get( QJsonObject &recvJson, QString &error)
{
if(QNetworkAccessManager::Accessible != m_networkManger.networkAccessible())
{
m_networkManger.setNetworkAccessible(QNetworkAccessManager::Accessible);
}
QEventLoop eventLoop;
QNetworkReply *reply = m_networkManger.get(m_networkRequest);
connect(&m_networkManger, SIGNAL(networkAccessibleChanged(QNetworkAccessManager::NetworkAccessibility)), &eventLoop, SLOT(quit()));
connect(reply, SIGNAL(finished()), &eventLoop, SLOT(quit()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), &eventLoop, SLOT(quit()));
// 加用定时器防止网络出现异常长时间不返回导致的阻塞
QTimer::singleShot(VALUE_NETTIMEOUT, &eventLoop, &QEventLoop::quit);
eventLoop.exec();
if(reply->error() != QNetworkReply::NoError)
{
error = reply->errorString();
return false;
}
QByteArray recvArray = reply->readAll();
if(recvArray.size() == 0)
{
error = "nothing recved";
return false;
}
recvJson = QJsonDocument::fromJson(recvArray).object();
reply->deleteLater();
return true;
}
void BillSocket::SetUrl(QUrl url)
{
m_networkRequest.setUrl(url);
......
......@@ -15,6 +15,7 @@ public:
~BillSocket();
bool Request(const QJsonObject& requestJson, QJsonObject& recvJson, QString& error);
bool Get(QJsonObject& recvJson, QString& error);
void SetUrl(QUrl url);
void SetSslConfig();
......
......@@ -34,19 +34,17 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailBtn1->hide();
ui->detailBtn0->hide();
// 初始化界面
ui->detailLab0->setText(QString("[%1 # %2][%3][%4]").arg(QString::number(orderObject->order_index),orderObject->channel_name,
orderObject->status_desc,
orderObject->order_id));
//ui->detailLab5->setText(QString("[%1]").arg(orderObject->remark));
ui->detailLab1->setText(QString("%1:%2").arg(orderObject->customer,orderObject->phone));
//ui->detailLab3->setText(orderObject->address);
//ui->detailLab4->setText(QString("[配送方式]%1 [配送费]%2").arg(orderObject->delivery_party,Penny2Dollar(orderObject->send_fee)));
ui->detailLab2->setText(orderObject->delivery_time==0? QString::fromLocal8Bit("立即送出") : QDateTime::fromTime_t(orderObject->delivery_time).toString("MM/dd hh:mm"));
ui->detailLab3->setText(orderObject->courier_name.isEmpty() ? QString::fromLocal8Bit("暂未指定") : QString::fromLocal8Bit("[姓名]%1 [电话]%2")
.arg(orderObject->courier_name, orderObject->courier_phone));
ui->detailLab4->setText(Penny2Dollar(orderObject->product_fee));
//ui->detailLab8->setText(orderObject->has_invoiced? QString("发票抬头:%1").arg(orderObject->invoice_title) : "不需要发票");
ui->detailLab5->setText(QString("[%1]").arg(orderObject->remark));
ui->detailLab0->setText(QString("[%1 # %2][%3][%4]").arg(QString::number(orderObject->orderIndex),orderObject->getChannelName(),
orderObject->getOrderStatusDec(),
orderObject->id));
ui->detailLab1->setText(QString("%1:%2").arg(orderObject->customerName,orderObject->phone));
ui->detailLab2->setText(orderObject->deliveryTime.isEmpty()? QString::fromLocal8Bit("立即送出") : orderObject->deliveryTime);
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->detailLab6->setText(orderObject->needInvoice? orderObject->invoiceTitle : QString::fromLocal8Bit("不需要发票"));
ui->detailLab5->setText(QString("[%1]").arg(orderObject->memo));
for(int i=0; i<orderObject->proList.count(); i++)
{
ui->detailTable0->insertRow(i);
......@@ -54,35 +52,35 @@ void DetailForm::InitData(OrderObject *orderObject)
ui->detailTable0->item(i, 0)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 1, new QTableWidgetItem(Penny2Dollar(orderObject->proList.at(i)->price))); // 价格
ui->detailTable0->item(i, 1)->setTextAlignment(Qt::AlignCenter);
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->productAmount))); // 数量
ui->detailTable0->setItem(i, 2, new QTableWidgetItem(QString::number(orderObject->proList.at(i)->qty))); // 数量
ui->detailTable0->item(i, 2)->setTextAlignment(Qt::AlignCenter);
}
QString records;
foreach(QString record, orderObject->records)
{
records.append(record+"\r\n");
}
ui->detailLabRecord->setText(records);
//TODO
// QString records;
// foreach(QString record, orderObject->records)
// {
// records.append(record+"\r\n");
// }
// ui->detailLabRecord->setText(records);
// if(!ConfigManger::GetInstance().GetIsExistReEntryOrder())
// {
// ui->detailBtn0->hide();
// }
ui->detailBtn2->setText(GetOperNameByStatus(orderObject->status, true));
ui->detailBtn2->setProperty("operation", GetOperByStatus(orderObject->status, true));
ui->detailBtn2->setProperty("orderId", orderObject->order_id);
if(orderObject->status != 1 && orderObject->status != 20&& orderObject->status != 2&& orderObject->status != 4)
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 != 4)
{
ui->detailBtn2->hide();
}
ui->detailBtn3->setText(GetOperNameByStatus(orderObject->status));
ui->detailBtn3->setProperty("operation", GetOperByStatus(orderObject->status));
ui->detailBtn3->setProperty("orderId", orderObject->order_id);
ui->detailBtn3->setText(GetOperNameByStatus(orderObject->orderStatus));
ui->detailBtn3->setProperty("operation", GetOperByStatus(orderObject->orderStatus));
ui->detailBtn3->setProperty("orderId", orderObject->id);
if(!GetOperByStatus(orderObject->status).compare("NULL"))
if(!GetOperByStatus(orderObject->orderStatus).compare("NULL"))
{
ui->detailBtn3->hide();
}
......@@ -109,12 +107,12 @@ void DetailForm::_Init()
ui->detailTable0->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
}
QString DetailForm::GetProductName(DishObject* dish)
QString DetailForm::GetProductName(dishesObject *dish)
{
QString name;
QString propertyTags;
name.append(dish->name).append("\r\n");
propertyTags=dish->property_tags;
propertyTags=dish->specId;
if(!propertyTags.isEmpty())
{
name.append(QString("(%1)").arg(propertyTags));
......
......@@ -39,7 +39,7 @@ private:
RejectForm *m_rejectForm;
RefuseForm *m_refuseForm;
QString GetProductName(DishObject* dish);
QString GetProductName(dishesObject* dish);
signals:
/* 功能:处理订单
......
......@@ -668,7 +668,7 @@
</size>
</property>
<property name="text">
<string/>
<string>发票抬头:</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
......
......@@ -26,7 +26,7 @@ void disTabWdg::IniDishesData(QString channelCode, QList<dishesObject> disObjLis
QMap<int, dishesObject> sortMap;
foreach (dishesObject obj, disObjList)
{
sortMap.insert(obj.rank, obj);
//sortMap.insert(obj.rank, obj);
}
QMap<int, dishesObject>::iterator iter;
......@@ -40,14 +40,14 @@ void disTabWdg::IniDishesData(QString channelCode, QList<dishesObject> disObjLis
foreach(dishesObject dObj, m_disObjList)
//foreach(dishesObject dObj, disObjList)
{
dishesItem *item = new dishesItem(m_channelCode, dObj.code, dObj.status, dObj.name,this);
//dishesItem *item = new dishesItem(m_channelCode, dObj.code, dObj.status, dObj.name,this);
if(index==0)
{
row = ui->disTabWdg_tablewdg->rowCount();
ui->disTabWdg_tablewdg->insertRow(row);
}
ui->disTabWdg_tablewdg->setCellWidget(row, index, item);
//ui->disTabWdg_tablewdg->setCellWidget(row, index, item);
index++;
if(index==2)
{
......
......@@ -32,7 +32,7 @@ SOURCES += main.cpp\
DTools/dataManger.cpp \
Model/orderObject.cpp \
Model/baseObject.cpp \
Model/productObject.cpp \
Model/dishesObject.cpp \
DTools/util.cpp \
settingForm.cpp \
floatForm.cpp \
......@@ -50,7 +50,6 @@ SOURCES += main.cpp\
disTabWdg.cpp \
refdishesForm.cpp \
refuseForm.cpp \
Model/dishesObject.cpp \
dailyreportForm.cpp \
Model/dailyObject.cpp
......@@ -64,7 +63,7 @@ HEADERS += \
DTools/dataManger.h \
Model/orderObject.h \
Model/baseObject.h \
Model/productObject.h \
Model/dishesObject.h \
DTools/util.h \
settingForm.h \
floatForm.h \
......@@ -82,7 +81,6 @@ HEADERS += \
disTabWdg.h \
refdishesForm.h \
refuseForm.h \
Model/dishesObject.h \
dailyreportForm.h \
Model/dailyObject.h \
DTools/dump.h
......
IDI_ICON1 ICON DISCARDABLE "logo.ico"
\ No newline at end of file
IDI_ICON ICON DISCARDABLE "logo.ico"
\ No newline at end of file
......@@ -342,19 +342,20 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
// 非首次收到的订单需要现在原先表中删除
if(oldStatus != -100)
{
if(2==orderObject->order_type&&(1==oldStatus||2==oldStatus))
{
table=ui->mainTableReserve;
tabBtn = ui->mainBtnReserve;
}
else{
//TODO
// if(/*2==orderObject->order_type&&*/(1==oldStatus||2==oldStatus))
// {
// table=ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(oldStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
}
//}
for(int i=0; i<table->rowCount(); i++)
{
if(!table->item(i, 1)->text().compare(orderObject->order_id))
if(!table->item(i, 1)->text().compare(orderObject->id))
{
table->removeRow(i);
QString btnText(tabBtn->property("name").toString());
......@@ -364,39 +365,40 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
}
}
// 将数据插入到表中
if(2==orderObject->order_type&&(1==orderObject->status||2==orderObject->status))
{
table = ui->mainTableReserve;
tabBtn = ui->mainBtnReserve;
}
else{
tabBtn = _GetTabBtnByOrderStatus(orderObject->status);
//TODO
// if(/*2==orderObject->order_type&&*/(1==orderObject->orderStatus||2==orderObject->orderStatus))
// {
// table = ui->mainTableReserve;
// tabBtn = ui->mainBtnReserve;
// }
//else{
tabBtn = _GetTabBtnByOrderStatus(orderObject->orderStatus);
table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
}
//}
table->insertRow(0);
QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->channel_name);
QTableWidgetItem *item0 = new QTableWidgetItem(orderObject->getChannelName());
item0->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 0, item0); // 渠道
QTableWidgetItem *item1 = new QTableWidgetItem(orderObject->order_id);
QTableWidgetItem *item1 = new QTableWidgetItem(orderObject->id);
item1->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 1, item1); // 订单ID
QTableWidgetItem *item2 = new QTableWidgetItem(Penny2Dollar(orderObject->product_fee));
QTableWidgetItem *item2 = new QTableWidgetItem(Penny2Dollar(orderObject->totalPrice));
item2->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 2, item2); // 金额
QTableWidgetItem *item3 = new QTableWidgetItem(orderObject->customer);
QTableWidgetItem *item3 = new QTableWidgetItem(orderObject->customerName);
item3->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 3, item3); // 姓名
QTableWidgetItem *item4 = new QTableWidgetItem(orderObject->phone);
item4->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 4, item4); // 联系方式
QTableWidgetItem *item5 = new QTableWidgetItem(QDateTime::fromTime_t(orderObject->create_time).toString("MM-dd hh:mm"));
//QTableWidgetItem *item5 = new QTableWidgetItem(QDateTime::fromTime_t(orderObject->createTime).toString("MM-dd hh:mm"));
QTableWidgetItem *item5 = new QTableWidgetItem(orderObject->createTime);
item5->setTextAlignment(Qt::AlignCenter);
table->setItem(0, 5, item5); // 下单时间
if(table != ui->mainTableFinsh)
{
if(!table->property("operationName").toString().compare("接单")&&1==orderObject->status)
if(/*!table->property("operationName").toString().compare("接单")&&*/2==orderObject->orderStatus)
{
qDebug()<<table->objectName()<<"------";
QWidget *pWdg = new QWidget(table);
......@@ -405,7 +407,7 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
pBtn->setFixedSize(70, 30);
pBtn->setFocusPolicy(Qt::NoFocus);
pBtn->setObjectName("mainProcBtn");
pBtn->setProperty("orderId", orderObject->order_id);
pBtn->setProperty("orderId", orderObject->id);
pBtn->setProperty("operation", table->property("operation").toString());
pBtn->setText(table->property("operationName").toString());
hLayout->addWidget(pBtn);
......
......@@ -55,11 +55,13 @@
#define JSON_USERID "userId"
#define JSON_BUSINESSDATE "business_date"
#define JSON_STATUSCODE "statusCode"
#define JSON_ERRCODE "errcode"
#define JSON_ERRCODE "code"
#define JSON_STATUS "status"
#define JSON_ORDERSTATUS "orderStatus"
#define JSON_STATUSDESC "status_desc"
#define JSON_MESSAGE "msg"
#define JSON_ERRMSG "errmsg"
#define JSON_ERRMSG "msg"
#define JSON_RECEIVINGSTATUS "receivingStatus"
#define JSON_TIMESTAMPS "timestamp"
#define JSON_AUTOCONFIRM "autoconfirm"
#define JSON_TOKEN "PosToken"
......@@ -68,17 +70,19 @@
#define JSON_ORDERS "orders"
#define JSON_COUNT "count"
#define JSON_PRODUCTS "products"
#define JSON_ORDERID "order_id"
#define JSON_ID "id"
#define JSON_ORDERID "orderId"
#define JSON_ORDER_ID "order_id"
#define JSON_BUSINESSID "businessId"
#define JSON_REASON "reason"
#define JSON_REASONCODE "reason_code"
#define JSON_SYNCTIME "sync_time"
#define JSON_SHOPCODE "shopCode"
#define JSON_SHOPCODE "storeId"
#define JSON_CHANNEL "channel"
#define JSON_BUSINESSSTATUS "business_status"
#define JSON_CODE "code"
#define JSON_PAGENUMBER "pageNumber"
#define JSON_PAGESIZE "pageSize"
#define JSON_PAGENUMBER "page_no"
#define JSON_PAGESIZE "page_size"
#define JSON_DELIVERS "deliverymans"
#define JSON_DELIVERYID "deliveryman_id"
#define JSON_DELIVERYNAME "deliveryman_name"
......@@ -122,9 +126,10 @@
//接口地址
#define INI_INTERFACE_ILOGIN "login"
#define INI_INTERFACE_GETSTORESTATE "getstorestate"
#define INI_INTERFACE_UPDATESTATE "updatestate"
#define INI_INTERFACE_GETSTORESTATE "getStoreState"
#define INI_INTERFACE_UPDATESTATE "updateState"
#define INI_INTERFACE_PULLORDER "pullOrder"
#define INI_INTERFACE_PULLORDERLIST "pullOrderList"
#define INI_INTERFACE_HEART "heart"
#define INI_INTERFACE_CONFIRM "confirm"
#define INI_INTERFACE_CANCLE "cancle"
......
......@@ -26,13 +26,13 @@ void refDishesForm::InitData(OrderObject *obj)
_Init();
int i=0;
foreach (DishObject *product, obj->proList)
foreach (dishesObject *product, obj->proList)
{
QPushButton *btn = new QPushButton(this);
btn->setFixedSize(260, 50);
btn->setCheckable(true);
btn->setText(product->name);
btn->setObjectName(product->pid);
btn->setObjectName(product->id);
btn->setStyleSheet("QPushButton{ color: #3d3d3d; \
background-color: rgb(255, 255, 255); \
border: 1px solid #C0C0C0; \
......
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