Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
FmTakeaway
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shangshang.dai
FmTakeaway
Commits
76ee0f47
Commit
76ee0f47
authored
Jul 25, 2017
by
shangshang.dai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 1:自提订单核销的接口改动
parent
f4c0918c
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
137 additions
and
135 deletions
+137
-135
fmTakeaway/Control/flowControl.cpp
+96
-132
fmTakeaway/Control/flowControl.h
+6
-0
fmTakeaway/DTools/dataManger.cpp
+13
-1
fmTakeaway/DTools/dataManger.h
+6
-0
fmTakeaway/detailForm.cpp
+8
-1
fmTakeaway/mainForm.cpp
+8
-1
No files found.
fmTakeaway/Control/flowControl.cpp
View file @
76ee0f47
...
...
@@ -166,6 +166,15 @@ bool FlowControl::_PullOrder()
//新数据
orderObject
=
new
OrderObject
(
this
);
orderObject
->
FromJson
(
jsonObject
);
//将 非码Mall 改为 鲜丰App
if
(
!
orderObject
->
channelName
.
compare
(
"非码Mall"
))
{
orderObject
->
channelName
=
"鲜丰App"
;
}
//------------------------------
m_ordersMap
.
insert
(
orderObject
->
order_id
,
orderObject
);
if
(
!
orderObject
->
order_view_id
.
isEmpty
())
{
...
...
@@ -176,12 +185,6 @@ bool FlowControl::_PullOrder()
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
jsonObject
));
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if
(
orderObject
->
order_type
==
3
&&
orderObject
->
status
==
2
)
{
orderObject
->
status
=
4
;
}
emit
changeOrderStatus
(
orderObject
);
if
(
!
Orderstatus
::
getInstance
().
isorderexit
(
orderId
))
...
...
@@ -211,16 +214,18 @@ bool FlowControl::_PullOrder()
}
}
else
{
// 如果是自提单则自动变为送出状态(方便自提单只做完成动作)
if
(
orderObject
->
order_type
==
3
&&
orderObject
->
status
==
2
)
{
orderObject
->
status
=
4
;
}
//旧数据有更新
int
oldStatus
=
orderObject
->
status
;
orderObject
->
FromJson
(
jsonObject
);
//将 非码Mall 改为 鲜丰App
if
(
!
orderObject
->
channelName
.
compare
(
"非码Mall"
))
{
orderObject
->
channelName
=
"鲜丰App"
;
}
//------------------------------
QLOG_INFO
()
<<
QString
(
"
\r\n\r\n
old order[%1:%2].[data:%3]"
)
.
arg
(
orderObject
->
order_id
,
orderObject
->
status_desc
)
.
arg
(
_GetJsonStr
(
jsonObject
));
...
...
@@ -237,49 +242,49 @@ bool FlowControl::_PullOrder()
}
// 订单完成后两小时写销售单
if
(
orderObject
->
status
==
6
||
orderObject
->
status
==
200
)
{
bool
bWrite
=
true
;
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
foreach
(
ProductObject
*
pro
,
orderObject
->
proList
)
{
if
(
pro
->
sub_products
.
isEmpty
())
{
if
(
pro
->
unit_ratio
<=
0
)
{
bWrite
=
false
;
break
;
}
}
else
{
foreach
(
ProductObject
*
cpro
,
pro
->
sub_products
)
{
if
(
cpro
->
unit_ratio
<=
0
)
{
bWrite
=
false
;
break
;
}
}
}
}
if
(
bWrite
)
{
QLOG_INFO
()
<<
QString
(
"will entry %1"
).
arg
(
orderObject
->
order_id
);
//TODO
QTimer
::
singleShot
(
1000
*
60
*
60
*
2
,
[
orderObject
,
this
](){
QLOG_INFO
()
<<
QString
(
"订单[%1]进入队列"
).
arg
(
orderObject
->
order_id
);
m_mutex
.
lock
();
m_billList
.
append
(
orderObject
);
m_mutex
.
unlock
();
});
}
else
{
_ReportBillEntryResult
(
orderObject
->
order_id
,
0
,
QString
(
"销售单数据有误"
));
QLOG_INFO
()
<<
QString
(
"销售单数据有误 %1"
).
arg
(
orderObject
->
order_id
);
}
}
//
if(orderObject->status == 6 || orderObject->status == 200)
//
{
//
bool bWrite = true;
//
// 检查转换信息是否正常、不正常则不写销售单(防止数据出问题影响门店正常数据)
//
foreach(ProductObject* pro, orderObject->proList)
//
{
//
if(pro->sub_products.isEmpty())
//
{
//
if(pro->unit_ratio <= 0)
//
{
//
bWrite = false;
//
break;
//
}
//
}else
//
{
//
foreach(ProductObject* cpro, pro->sub_products)
//
{
//
if(cpro->unit_ratio <= 0)
//
{
//
bWrite = false;
//
break;
//
}
//
}
//
}
//
}
//
if(bWrite)
//
{
//
QLOG_INFO() << QString("will entry %1").arg(orderObject->order_id);
//
//TODO
//
QTimer::singleShot(1000*60*60*2, [orderObject, this](){
//
QLOG_INFO() << QString("订单[%1]进入队列").arg(orderObject->order_id);
//
m_mutex.lock();
//
m_billList.append(orderObject);
//
m_mutex.unlock();
//
});
//
}else
//
{
// //
_ReportBillEntryResult(orderObject->order_id, 0, QString("销售单数据有误"));
//
QLOG_INFO() << QString("销售单数据有误 %1").arg(orderObject->order_id);
//
}
//
}
m_timestamp
=
orderObject
->
timestamp
;
}
syncTime
=
recvJson
[
JSON_SYNCTIME
].
toInt
()
*
1000
;
...
...
@@ -402,81 +407,8 @@ bool FlowControl::_GetDelivers(const QString &orderId)
bool
FlowControl
::
_ConfirmOrder
(
const
QString
&
orderId
,
const
DeliverObject
&
deliverObj
)
{
// QString error;
// bool result;
// QJsonObject sendJson;
// QJsonObject recvJson;
// sendJson = DataManger::GetInstance().GetConfirmOrderData(orderId, deliverObj.id, deliverObj.name, deliverObj.phone);
// emit showAlert(AlertForm::LOADING, "正在通信......");
// QLOG_INFO() << QString("[---confirm order---]. [requestData:%1]").arg(_GetJsonStr(sendJson));
// result = m_procOrderSocket->Request(sendJson, recvJson, error);
// QLOG_INFO() << QString("confirm order finsh. [result:%1][msg:%2][recvData:%3]")
// .arg(result).arg(error, _GetJsonStr(recvJson));
// if(!result)
// {
// emit showAlert(AlertForm::ERROR, "接单失败![网络错误]");
// }else
// {
// if(JSON_STATUSCODE_OK != recvJson[JSON_STATUSCODE].toInt())
// {
// result = false;
// emit showAlert(AlertForm::ERROR, QString("接单失败![%1]").arg(recvJson[JSON_MESSAGE].toString()));
// }else
// {
// OrderObject *orderObject = m_ordersMap.value(orderId);
// emit showAlert(AlertForm::LOADING, "正在录入天天饮食......");
// QLOG_INFO() << QString("[---order entry begin---]");
// QString orderEntryError("");
// if(!FmPlugin::GetInstance().DoOrderEntry(orderObject, m_cashierObject.id, m_cashierObject.name,
// m_cashierObject.shiftId, m_cashierObject.shiftName, error))
// {
// QString dirPath = QString("%1/orders").arg(QApplication::applicationDirPath());
// QDir dir;
// dir.mkdir(dirPath);
// QFile file(QString("%1/%2").arg(dirPath, orderObject->order_id));
// if(!file.exists())
// {
// file.open(QFile::WriteOnly);
// file.close();
// }
// orderEntryError = QString("<font color=\"#FF0000\">[此单录入天天饮食失败,请务必及时在订单详情页补录]</font>");
// QLOG_ERROR() << QString("order entry failed,[%1]").arg(error);
// }else
// {
// QLOG_INFO() << QString("order entry success.");
// }
// QString remark(orderObject->remark), deliveryTime;
// remark = remark.isEmpty()? "" : QString("[备注: %1]").arg(remark);
// deliveryTime = QString("[期望送达时间: %1]").arg(orderObject->delivery_time==0? "立即送出" : QDateTime::fromTime_t(orderObject->delivery_time).toString("yyyy-MM-dd hh:mm:ss"));
// emit showAlert(AlertForm::SUCCESS, QString("接单成功!%1<br/>%2<br/>%3").arg(remark).arg(deliveryTime).arg(orderEntryError));
// // 通知主界面移动订单
// int oldStatus = orderObject->status;
// orderObject->status = recvJson[JSON_STATUS].toInt();
// orderObject->status_desc = recvJson[JSON_STATUSDESC].toString();
// emit changeOrderStatus(orderObject, oldStatus);
// if(orderObject->status==2&&!orderObject->courier_name.isEmpty())
// {
// // 打印
// QLOG_INFO() << QString("[---begin print---].");
// orderObject->courier_name = deliverObj.name;
// orderObject->courier_phone = deliverObj.phone;
// if(FmPrinter::GetInstance().DoPrint(ConfigManger::GetInstance().GetPrinterName(), orderObject))
// {
// QLOG_INFO() << QString("print sucessful");
// }else
// {
// QLOG_INFO() << QString("print failed");
// }
// }
// }
// }
Q_UNUSED
(
orderId
)
Q_UNUSED
(
deliverObj
)
return
true
;
}
...
...
@@ -635,6 +567,23 @@ bool FlowControl::_ReportBillEntryResult(const QString &orderId, int status, con
return
result
;
}
bool
FlowControl
::
_ChargeOffOrder
(
const
QString
&
orderId
)
{
bool
result
;
QJsonObject
sendJson
;
QJsonObject
recvJson
;
sendJson
=
DataManger
::
GetInstance
().
GetChargeOffData
(
orderId
);
QLOG_INFO
()
<<
QString
(
"[---chargeoff order---]. [requestData:%1]"
).
arg
(
_GetJsonStr
(
sendJson
));
QString
error1
;
result
=
m_procOrderSocket
->
Request
(
sendJson
,
recvJson
,
error1
);
QLOG_INFO
()
<<
QString
(
"chargeoff order finsh. [result:%1][msg:%2][recvData:%3]"
)
.
arg
(
result
).
arg
(
error1
,
_GetJsonStr
(
recvJson
));
return
result
;
}
bool
FlowControl
::
_RefuseRefund
(
const
QString
&
orderId
)
{
QString
error
;
...
...
@@ -869,10 +818,25 @@ void FlowControl::onProcessOrder(const QString &operation, const QString &orderI
_RefuseOrder
(
orderId
,
2
);
}
else
if
(
!
operation
.
compare
(
OPERATION_SENDOUT
))
{
_SendOrder
(
orderId
,
deliverObj
);
// 如果是自提订单则核销
if
(
m_ordersMap
.
value
(
orderId
)
->
order_type
==
3
)
{
_ChargeOffOrder
(
orderId
);
}
else
{
_SendOrder
(
orderId
,
deliverObj
);
}
}
else
if
(
!
operation
.
compare
(
OPERATION_COMPLETE
))
{
_CompleteOrder
(
orderId
);
// 如果是自提订单则核销
if
(
m_ordersMap
.
value
(
orderId
)
->
order_type
==
3
)
{
_ChargeOffOrder
(
orderId
);
}
else
{
_CompleteOrder
(
orderId
);
}
}
else
if
(
!
operation
.
compare
(
OPERATION_REFUSEREFUND
))
{
_RefuseRefund
(
orderId
);
...
...
fmTakeaway/Control/flowControl.h
View file @
76ee0f47
...
...
@@ -183,6 +183,12 @@ private slots:
* */
bool
_ReportBillEntryResult
(
const
QString
&
orderId
,
int
status
,
const
QString
&
error
);
/* 功能:核销订单(用于自提订单)
* 参数:NULL
* 返回:是否成功
* */
bool
_ChargeOffOrder
(
const
QString
&
orderId
);
/* 功能:获取Json对象的字符
* 参数:NULL
* 返回:Json字符串
...
...
fmTakeaway/DTools/dataManger.cpp
View file @
76ee0f47
...
...
@@ -8,7 +8,7 @@ enum
REFUSE_ORDER
,
COMPLETE_ORDER
=
16
,
REFUSE_REFUND
=
18
,
SEND_ORDER
=
19
,
REFUND_ORDER
=
20
,
GET_DELIVER
=
21
,
REPORT_BILL_RESULT
=
23
,
REPORT_BILL_RESULT
=
23
,
CHARGEOFF_ORDER
=
71
,
UPDATE_STOCK
=
80
};
...
...
@@ -165,3 +165,15 @@ QJsonObject DataManger::GetReportOERData(const QString &orderId, int status, con
rObj
.
insert
(
JSON_POSVERSION
,
APP_VERSION
);
return
rObj
;
}
QJsonObject
DataManger
::
GetChargeOffData
(
const
QString
&
orderId
)
{
QJsonObject
rObj
,
cObj
;
rObj
.
insert
(
JSON_REQTYPE
,
CHARGEOFF_ORDER
);
cObj
.
insert
(
JSON_ORDERID
,
orderId
);
// 暂时没有取餐码
cObj
.
insert
(
"delivery_code"
,
orderId
);
rObj
.
insert
(
JSON_ORDER
,
cObj
);
rObj
.
insert
(
JSON_POSVERSION
,
APP_VERSION
);
return
rObj
;
}
fmTakeaway/DTools/dataManger.h
View file @
76ee0f47
...
...
@@ -74,6 +74,12 @@ public:
* */
QJsonObject
GetReportOERData
(
const
QString
&
orderId
,
int
status
,
const
QString
&
error
);
/* 功能:获取核销订单的数据
* 参数:[1]订单ID
* 返回:汇报销售单写入结果数据
* */
QJsonObject
GetChargeOffData
(
const
QString
&
orderId
);
private
:
DataManger
(){}
DataManger
(
DataManger
const
&
);
...
...
fmTakeaway/detailForm.cpp
View file @
76ee0f47
...
...
@@ -105,7 +105,14 @@ void DetailForm::InitData(OrderObject *orderObject)
ui
->
detailBtn2
->
setText
(
"同意退款"
);
}
ui
->
detailBtn3
->
setText
(
GetOperNameByStatus
(
orderObject
->
status
));
if
(
orderObject
->
order_type
==
3
)
{
ui
->
detailBtn3
->
setText
(
"核销"
);
}
else
{
ui
->
detailBtn3
->
setText
(
GetOperNameByStatus
(
orderObject
->
status
));
}
ui
->
detailBtn3
->
setProperty
(
"operation"
,
GetOperByStatus
(
orderObject
->
status
));
ui
->
detailBtn3
->
setProperty
(
"orderId"
,
orderObject
->
order_id
);
...
...
fmTakeaway/mainForm.cpp
View file @
76ee0f47
...
...
@@ -394,7 +394,14 @@ void MainForm::onChangeOrderStatus(OrderObject *orderObject, int oldStatus)
pBtn
->
setObjectName
(
"mainProcBtn"
);
pBtn
->
setProperty
(
"orderId"
,
orderObject
->
order_id
);
pBtn
->
setProperty
(
"operation"
,
table
->
property
(
"operation"
).
toString
());
pBtn
->
setText
(
table
->
property
(
"operationName"
).
toString
());
if
(
orderObject
->
order_type
==
3
)
{
pBtn
->
setText
(
"核销"
);
}
else
{
pBtn
->
setText
(
table
->
property
(
"operationName"
).
toString
());
}
hLayout
->
addWidget
(
pBtn
);
hLayout
->
setMargin
(
0
);
pWdg
->
setLayout
(
hLayout
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment