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
e44d14b0
Commit
e44d14b0
authored
Jun 08, 2017
by
ss.dai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix 1: 修复写销售单Retry时间过短(5秒),改为2分钟;
parent
734bebeb
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
97 additions
and
53 deletions
+97
-53
fmPlugin/fmPlugin.cpp
+68
-29
fmPlugin/fmPlugin.h
+10
-2
fmTakeaway/Control/flowControl.cpp
+9
-3
fmTakeaway/mainForm.cpp
+6
-14
run/config.ini
+4
-5
No files found.
fmPlugin/fmPlugin.cpp
View file @
e44d14b0
...
@@ -65,7 +65,7 @@ bool HTTP::post(const QNetworkRequest &request, const QByteArray &appendData, QB
...
@@ -65,7 +65,7 @@ bool HTTP::post(const QNetworkRequest &request, const QByteArray &appendData, QB
},
},
[
&
eventLoop
,
this
](
const
QNetworkReply
::
NetworkError
&
error
)
[
&
eventLoop
,
this
](
const
QNetworkReply
::
NetworkError
&
error
)
{
{
this
->
error_
=
QString
::
number
(
error
);
this
->
error_
=
QString
::
number
(
(
int
)
error
);
eventLoop
.
exit
(
false
);
eventLoop
.
exit
(
false
);
},
},
[
&
failFlag
,
&
eventLoop
,
this
]()
[
&
failFlag
,
&
eventLoop
,
this
]()
...
@@ -216,8 +216,10 @@ bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &er
...
@@ -216,8 +216,10 @@ bool FmPlugin::GetOnDutyCashiers(QList<CashierObject> &cashiersList, QString &er
return
true
;
return
true
;
}
}
bool
FmPlugin
::
DoOrderEntry
(
const
OrderObject
*
orderObject
,
const
QString
&
cashierId
,
const
QString
&
cashierName
,
const
QString
&
shiftId
,
const
QString
&
shiftName
,
QString
&
error
)
bool
FmPlugin
::
DoOrderEntry
(
const
OrderObject
*
orderObject
,
const
QString
&
cashierId
,
const
QString
&
cashierName
,
QString
&
bill_data
,
QString
&
fee_data
,
QString
&
error
)
{
{
Q_UNUSED
(
cashierId
)
Q_UNUSED
(
cashierName
)
QString
apppath
=
QCoreApplication
::
applicationDirPath
();
QString
apppath
=
QCoreApplication
::
applicationDirPath
();
// 检查这单之前是否写过
// 检查这单之前是否写过
QString
remark_file_path
=
QString
(
"%1/orders/%2/%3_%4"
).
arg
(
apppath
,
QDateTime
::
fromTime_t
(
orderObject
->
create_time
).
toString
(
"yyyy-MM-dd"
),
orderObject
->
channel
,
orderObject
->
order_id
);
QString
remark_file_path
=
QString
(
"%1/orders/%2/%3_%4"
).
arg
(
apppath
,
QDateTime
::
fromTime_t
(
orderObject
->
create_time
).
toString
(
"yyyy-MM-dd"
),
orderObject
->
channel
,
orderObject
->
order_id
);
...
@@ -230,59 +232,78 @@ bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashi
...
@@ -230,59 +232,78 @@ bool FmPlugin::DoOrderEntry(const OrderObject *orderObject, const QString &cashi
QString
inipath
=
apppath
+
QString
(
"/config.ini"
);
QString
inipath
=
apppath
+
QString
(
"/config.ini"
);
QSettings
set
(
inipath
,
QSettings
::
IniFormat
);
QSettings
set
(
inipath
,
QSettings
::
IniFormat
);
QUrl
url
,
url_fee
;
QUrl
url_bill
,
url_fee
,
url_vip
;
url
=
set
.
value
(
"HdServer/url"
).
toUrl
();
url_bill
=
set
.
value
(
"HdServer/url_bill"
).
toUrl
();
url_fee
=
set
.
value
(
"HdServer/url1"
).
toUrl
();
url_fee
=
set
.
value
(
"HdServer/url_fee"
).
toUrl
();
url_vip
=
set
.
value
(
"HdServer/url_vip"
).
toUrl
();
HTTP
http
;
HTTP
http
;
QByteArray
recvArray
;
QByteArray
recvArray
;
QNetworkRequest
qRequset
;
QNetworkRequest
request_vip
,
requset_bill
,
request_fee
;
qRequset
.
setUrl
(
url
);
request_vip
.
setUrl
(
url_vip
);
qRequset
.
setRawHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
request_vip
.
setRawHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
qRequset
.
setRawHeader
(
"Accept"
,
"application/json;charset=utf-8"
);
request_vip
.
setRawHeader
(
"Accept"
,
"application/json;charset=utf-8"
);
error
=
_GetOrderEntryData
(
orderObject
);
QString
authorData
=
"Basic "
+
QString
(
"admin:www.hd123.com"
).
toLocal8Bit
().
toBase64
();
request_vip
.
setRawHeader
(
"Authorization"
,
authorData
.
toLocal8Bit
());
requset_bill
.
setUrl
(
url_bill
);
requset_bill
.
setRawHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
requset_bill
.
setRawHeader
(
"Accept"
,
"application/json;charset=utf-8"
);
request_fee
.
setUrl
(
url_fee
);
request_fee
.
setRawHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
request_fee
.
setRawHeader
(
"Accept"
,
"application/json;charset=utf-8"
);
if
(
http
.
post
(
qRequset
,
_GetOrderEntryData
(
orderObject
),
recvArray
,
15000
))
// 查询会员号
QString
memberCode
(
""
);
if
(
http
.
post
(
request_vip
,
_GetVipQueryData
(
orderObject
->
phone
,
QDateTime
::
fromTime_t
(
orderObject
->
create_time
).
toString
(
"yyyy-MM-ddThh:mm:ss.zzz+0800"
)),
recvArray
,
10000
))
{
{
QJsonObject
recvJson
;
QJsonObject
recvJson
;
recvJson
=
QJsonDocument
::
fromJson
(
recvArray
).
object
();
recvJson
=
QJsonDocument
::
fromJson
(
recvArray
).
object
();
memberCode
=
recvJson
[
"response"
].
toObject
()[
"member"
].
toObject
()[
"id"
].
toString
();
}
qDebug
()
<<
"写销售单获取到的返回数据"
<<
recvJson
;
// 写入销售单
bill_data
=
_GetOrderEntryData
(
orderObject
,
memberCode
);
if
(
http
.
post
(
requset_bill
,
_GetOrderEntryData
(
orderObject
,
memberCode
),
recvArray
,
20000
))
{
QJsonObject
recvJson
;
recvJson
=
QJsonDocument
::
fromJson
(
recvArray
).
object
();
QString
uuid
=
recvJson
[
"uuid"
].
toString
();
QString
uuid
=
recvJson
[
"uuid"
].
toString
();
if
(
uuid
.
isEmpty
())
if
(
uuid
.
isEmpty
())
{
{
error
.
append
(
recvJson
[
"echoMessage"
].
toString
()
);
error
=
recvJson
[
"echoMessage"
].
toString
(
);
return
false
;
return
false
;
}
}
recvArray
.
clear
();
recvArray
.
clear
();
QNetworkRequest
qRequset1
;
// 写入配送费&服务费
qRequset1
.
setUrl
(
url_fee
);
fee_data
=
_GetFeeData
(
orderObject
,
uuid
);
qRequset1
.
setRawHeader
(
"Content-Type"
,
"application/json;charset=utf-8"
);
if
(
http
.
post
(
request_fee
,
_GetFeeData
(
orderObject
,
uuid
),
recvArray
,
20000
))
qRequset1
.
setRawHeader
(
"Accept"
,
"application/json;charset=utf-8"
);
error
.
append
(
"配送费:"
+
_GetFeeData
(
orderObject
,
uuid
));
if
(
http
.
post
(
qRequset1
,
_GetFeeData
(
orderObject
,
uuid
),
recvArray
,
15000
))
{
{
QJsonObject
recvJson
;
QJsonObject
recvJson
;
recvJson
=
QJsonDocument
::
fromJson
(
recvArray
).
object
();
recvJson
=
QJsonDocument
::
fromJson
(
recvArray
).
object
();
qDebug
()
<<
"记配送费获取到的返回数据"
<<
recvJson
;
if
(
recvJson
[
"echoCode"
].
toString
()
!=
"0"
)
if
(
recvJson
[
"echoCode"
].
toString
()
!=
"0"
)
{
{
error
=
recvJson
[
"echoMessage"
].
toString
();
error
=
recvJson
[
"echoMessage"
].
toString
();
return
false
;
return
false
;
}
}
}
QDir
().
mkpath
(
remark_file_path
.
mid
(
0
,
remark_file_path
.
lastIndexOf
(
"/"
)));
// 记录为文件形式下次直接跳过
file
.
open
(
QFile
::
WriteOnly
);
QDir
().
mkpath
(
remark_file_path
.
mid
(
0
,
remark_file_path
.
lastIndexOf
(
"/"
)));
file
.
close
();
file
.
open
(
QFile
::
WriteOnly
);
return
true
;
file
.
close
();
return
true
;
}
else
{
error
=
"配送费服务器,连接出错"
;
}
}
else
{
error
=
"销售单服务器,连接出错"
;
}
}
error
=
http
.
error
();
return
false
;
return
false
;
}
}
...
@@ -471,7 +492,24 @@ double FmPlugin::_Penny2Dollar(int penny)
...
@@ -471,7 +492,24 @@ double FmPlugin::_Penny2Dollar(int penny)
return
dollar
;
return
dollar
;
}
}
QByteArray
FmPlugin
::
_GetOrderEntryData
(
const
OrderObject
*
orderObject
)
QByteArray
FmPlugin
::
_GetVipQueryData
(
const
QString
&
phone
,
const
QString
&
time
)
{
QJsonObject
rObj
,
cObj
,
cObj1
,
ccObj
;
ccObj
.
insert
(
"namespace"
,
""
);
ccObj
.
insert
(
"id"
,
""
);
ccObj
.
insert
(
"fullName"
,
""
);
cObj
.
insert
(
"time"
,
time
);
cObj
.
insert
(
"operator"
,
ccObj
);
cObj
.
insert
(
"terminalId"
,
""
);
cObj
.
insert
(
"store"
,
"FM001"
);
cObj1
.
insert
(
"type"
,
"mobile"
);
cObj1
.
insert
(
"id"
,
phone
);
rObj
.
insert
(
"operCtx"
,
cObj
);
rObj
.
insert
(
"accout"
,
cObj1
);
return
QJsonDocument
(
rObj
).
toJson
(
QJsonDocument
::
Compact
);
}
QByteArray
FmPlugin
::
_GetOrderEntryData
(
const
OrderObject
*
orderObject
,
const
QString
&
memberCode
)
{
{
QJsonObject
rObj
;
QJsonObject
rObj
;
rObj
.
insert
(
"uuid"
,
orderObject
->
order_view_id
.
isEmpty
()
?
orderObject
->
order_id
:
orderObject
->
order_view_id
);
rObj
.
insert
(
"uuid"
,
orderObject
->
order_view_id
.
isEmpty
()
?
orderObject
->
order_id
:
orderObject
->
order_view_id
);
...
@@ -495,6 +533,7 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
...
@@ -495,6 +533,7 @@ QByteArray FmPlugin::_GetOrderEntryData(const OrderObject *orderObject)
rObj
.
insert
(
"deliverAddress"
,
orderObject
->
address
);
rObj
.
insert
(
"deliverAddress"
,
orderObject
->
address
);
rObj
.
insert
(
"remark"
,
serviceFee
);
rObj
.
insert
(
"remark"
,
serviceFee
);
rObj
.
insert
(
"ocrDate"
,
QDateTime
::
fromTime_t
(
orderObject
->
create_time
).
toString
(
"yyyy-MM-ddThh:mm:ss.zzz+0800"
));
rObj
.
insert
(
"ocrDate"
,
QDateTime
::
fromTime_t
(
orderObject
->
create_time
).
toString
(
"yyyy-MM-ddThh:mm:ss.zzz+0800"
));
rObj
.
insert
(
"membercode"
,
memberCode
);
rObj
.
insert
(
"filler"
,
"*"
);
rObj
.
insert
(
"filler"
,
"*"
);
rObj
.
insert
(
"seller"
,
"*"
);
rObj
.
insert
(
"seller"
,
"*"
);
rObj
.
insert
(
"souceOrderCls"
,
""
);
rObj
.
insert
(
"souceOrderCls"
,
""
);
...
...
fmPlugin/fmPlugin.h
View file @
e44d14b0
...
@@ -57,7 +57,8 @@ public slots:
...
@@ -57,7 +57,8 @@ public slots:
* 返回:是否成功
* 返回:是否成功
* */
* */
bool
DoOrderEntry
(
OrderObject
const
*
orderObject
,
const
QString
&
cashierId
,
const
QString
&
cashierName
,
bool
DoOrderEntry
(
OrderObject
const
*
orderObject
,
const
QString
&
cashierId
,
const
QString
&
cashierName
,
const
QString
&
shiftId
,
const
QString
&
shiftName
,
QString
&
error
);
QString
&
bill_data
,
QString
&
fee_data
,
QString
&
error
);
/* 功能:获取库存信息
/* 功能:获取库存信息
* 参数:[1]_out库存信息
* 参数:[1]_out库存信息
* 返回:是否成功
* 返回:是否成功
...
@@ -118,11 +119,18 @@ private:
...
@@ -118,11 +119,18 @@ private:
* 返回:元
* 返回:元
* */
* */
double
_Penny2Dollar
(
int
penny
);
double
_Penny2Dollar
(
int
penny
);
/* 功能:获取写销售单的数据
* 参数:[1]订单对象
* 返回:销售单数据
* */
QByteArray
_GetVipQueryData
(
const
QString
&
phone
,
const
QString
&
time
);
/* 功能:获取写销售单的数据
/* 功能:获取写销售单的数据
* 参数:[1]订单对象
* 参数:[1]订单对象
* 返回:销售单数据
* 返回:销售单数据
* */
* */
QByteArray
_GetOrderEntryData
(
const
OrderObject
*
);
QByteArray
_GetOrderEntryData
(
const
OrderObject
*
,
const
QString
&
memberCode
);
/* 功能:获取写配送费的数据
/* 功能:获取写配送费的数据
* 参数:[1]订单对象
* 参数:[1]订单对象
* 返回:销售单数据
* 返回:销售单数据
...
...
fmTakeaway/Control/flowControl.cpp
View file @
e44d14b0
...
@@ -250,22 +250,28 @@ bool FlowControl::_PullOrder()
...
@@ -250,22 +250,28 @@ bool FlowControl::_PullOrder()
{
{
QLOG_INFO
()
<<
QString
(
"will entry %1"
).
arg
(
orderObject
->
order_id
);
QLOG_INFO
()
<<
QString
(
"will entry %1"
).
arg
(
orderObject
->
order_id
);
//QTimer::singleShot(1000*60*120, [orderObject, this](){
//QTimer::singleShot(1000*60*120, [orderObject, this](){
QTimer
::
singleShot
(
1000
*
2
0
,
[
orderObject
,
this
](){
QTimer
::
singleShot
(
1000
*
1
0
,
[
orderObject
,
this
](){
if
(
orderObject
->
status
==
6
||
orderObject
->
status
==
200
)
if
(
orderObject
->
status
==
6
||
orderObject
->
status
==
200
)
{
{
QString
error
;
QString
error
,
bill_data
,
fee_data
;
for
(
int
i
=
0
;
i
<
5
;
i
++
)
for
(
int
i
=
0
;
i
<
5
;
i
++
)
{
{
if
(
FmPlugin
::
GetInstance
().
DoOrderEntry
(
orderObject
,
""
,
""
,
""
,
""
,
error
))
QLOG_INFO
()
<<
QString
(
"第%1次尝试写入订单%2"
).
arg
(
i
+
1
).
arg
(
orderObject
->
order_id
);
if
(
FmPlugin
::
GetInstance
().
DoOrderEntry
(
orderObject
,
""
,
""
,
bill_data
,
fee_data
,
error
))
{
{
QLOG_INFO
()
<<
QString
(
"销售单数据%1 配送费数据%2"
).
arg
(
bill_data
,
fee_data
);
QLOG_INFO
()
<<
QString
(
"_PullOrder DoOrderEntry successful %1 %2"
).
arg
(
orderObject
->
order_id
).
arg
(
error
);
QLOG_INFO
()
<<
QString
(
"_PullOrder DoOrderEntry successful %1 %2"
).
arg
(
orderObject
->
order_id
).
arg
(
error
);
this
->
_ReportBillEntryResult
(
orderObject
->
order_id
,
1
,
QString
(
"成功"
));
this
->
_ReportBillEntryResult
(
orderObject
->
order_id
,
1
,
QString
(
"成功"
));
break
;
break
;
}
else
}
else
{
{
QLOG_INFO
()
<<
QString
(
"销售单数据%1 配送费数据%2"
).
arg
(
bill_data
,
fee_data
);
QLOG_INFO
()
<<
QString
(
"_PullOrder DoOrderEntry failed %1 %2"
).
arg
(
orderObject
->
order_id
,
error
);
QLOG_INFO
()
<<
QString
(
"_PullOrder DoOrderEntry failed %1 %2"
).
arg
(
orderObject
->
order_id
,
error
);
this
->
_ReportBillEntryResult
(
orderObject
->
order_id
,
0
,
error
);
this
->
_ReportBillEntryResult
(
orderObject
->
order_id
,
0
,
error
);
}
}
QEventLoop
loop
;
QTimer
::
singleShot
(
1000
*
60
*
2
,
&
loop
,
&
QEventLoop
::
quit
);
loop
.
exec
();
}
}
}
else
}
else
{
{
...
...
fmTakeaway/mainForm.cpp
View file @
e44d14b0
...
@@ -313,31 +313,23 @@ void MainForm::onSetNetStatus(const QString &status)
...
@@ -313,31 +313,23 @@ void MainForm::onSetNetStatus(const QString &status)
void
MainForm
::
onChangeOrderStatus
(
OrderObject
*
orderObject
,
int
oldStatus
)
void
MainForm
::
onChangeOrderStatus
(
OrderObject
*
orderObject
,
int
oldStatus
)
{
{
qDebug
()
<<
"--------状态------"
<<
oldStatus
;
_SetTablesSortEnable
(
false
);
_SetTablesSortEnable
(
false
);
QTableWidget
*
table
;
QTableWidget
*
table
;
QPushButton
*
tabBtn
;
QPushButton
*
tabBtn
;
// 非首次收到的订单需要现在原先表中删除
// 非首次收到的订单需要现在原先表中删除
if
(
oldStatus
!=
-
100
)
if
(
oldStatus
!=
-
100
)
{
{
// if(orderObject->delivery_status==2)
// {
// tabBtn = ui->mainBtnOur;
// }else
// {
// tabBtn = _GetTabBtnByOrderStatus(oldStatus);
// }
// table = findChild<QTableWidget*>(tabBtn->property("tableName").toString());
qDebug
()
<<
"--------状态------"
<<
orderObject
->
curt_table_btn
->
property
(
"tableName"
).
toString
();
QTableWidget
*
table
=
findChild
<
QTableWidget
*>
(
orderObject
->
curt_table_btn
->
property
(
"tableName"
).
toString
());
QTableWidget
*
table
=
findChild
<
QTableWidget
*>
(
orderObject
->
curt_table_btn
->
property
(
"tableName"
).
toString
());
qDebug
()
<<
"--------状态------"
<<
table
->
objectName
();
for
(
int
i
=
0
;
i
<
table
->
rowCount
();
i
++
)
for
(
int
i
=
0
;
i
<
table
->
rowCount
();
i
++
)
{
{
qDebug
()
<<
"数字"
<<
i
<<
table
->
item
(
i
,
1
)
->
text
()
<<
orderObject
->
order_view_id
;
if
(
!
table
->
item
(
i
,
1
)
->
text
().
compare
(
orderObject
->
order_view_id
.
isEmpty
()
?
orderObject
->
order_id
:
orderObject
->
order_view_id
))
if
(
!
table
->
item
(
i
,
1
)
->
text
().
compare
(
orderObject
->
order_view_id
.
isEmpty
()
?
orderObject
->
order_id
:
orderObject
->
order_view_id
))
{
{
qDebug
()
<<
"移除"
;
table
->
removeRow
(
i
);
table
->
removeRow
(
i
);
QString
btnText
(
orderObject
->
curt_table_btn
->
property
(
"name"
).
toString
());
QString
btnText
(
orderObject
->
curt_table_btn
->
property
(
"name"
).
toString
());
if
(
table
->
rowCount
()
!=
0
)
if
(
table
->
rowCount
()
!=
0
)
...
...
run/config.ini
View file @
e44d14b0
...
@@ -5,8 +5,7 @@ url1=http://123.207.193.166/api
...
@@ -5,8 +5,7 @@ url1=http://123.207.193.166/api
[RefundListener]
[RefundListener]
port
=
34953
port
=
34953
;url为销售单写入地址
;url1为服务费&配送费写入地址
[HdServer]
[HdServer]
url
=
http://101.71.13.138:7782/h4rest2/rest/h5rest-server/core/wholesaleservice/wholesale
url_bill
=
http://192.168.1.60:7782/h4rest2/rest/h5rest-server/core/wholesaleservice/wholesale
url1
=
http://60.12.240.242:8980/h4rest-server/rest/h5rest-server/core/feeservice/fee/savenew
url_fee
=
http://192.168.1.60:7782/h4rest2/rest/h5rest-server/core/feeservice/fee/savenew
\ No newline at end of file
url_vip
=
http://122.224.171.126:8880/jcrm-server-card/rest/account/check
\ No newline at end of file
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