Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
T
takeout_sbk
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
yunpeng.song
takeout_sbk
Commits
ab0c400b
Commit
ab0c400b
authored
Jun 26, 2018
by
wuyang.zou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bug: 新增代码注释:梳理代码日志打印更加清晰
parent
38ff4990
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
380 deletions
+41
-380
fmTakeaway/Control/flowControl.cpp
+0
-0
fmTakeaway/Network/billSocket.cpp
+7
-3
fmTakeaway/Network/billSocket.h
+31
-3
fmTakeaway/preDefine.h
+3
-3
isl/FMOMS.isl
+0
-371
No files found.
fmTakeaway/Control/flowControl.cpp
View file @
ab0c400b
This diff is collapsed.
Click to expand it.
fmTakeaway/Network/billSocket.cpp
View file @
ab0c400b
...
...
@@ -9,6 +9,7 @@
BillSocket
::
BillSocket
(
QObject
*
parent
)
:
QObject
(
parent
)
{
//设置Http请求的 请求头;
m_networkRequest
.
setRawHeader
(
"Content-Type"
,
"application/json"
);
}
...
...
@@ -17,12 +18,14 @@ BillSocket::~BillSocket()
}
bool
BillSocket
::
Request
(
const
QJsonObject
&
requestJson
,
QJsonObject
&
recvJson
,
QString
&
error
)
bool
BillSocket
::
Post
Request
(
const
QJsonObject
&
requestJson
,
QJsonObject
&
recvJson
,
QString
&
error
)
{
//设置Http请求管理的网络访问权限设置;
if
(
QNetworkAccessManager
::
Accessible
!=
m_networkManger
.
networkAccessible
())
{
m_networkManger
.
setNetworkAccessible
(
QNetworkAccessManager
::
Accessible
);
}
//设置Http请求的请求参数:requestJson;
QByteArray
sendArray
=
QJsonDocument
(
requestJson
).
toJson
(
QJsonDocument
::
Compact
);
QEventLoop
eventLoop
;
QNetworkReply
*
reply
=
m_networkManger
.
post
(
m_networkRequest
,
sendArray
);
...
...
@@ -33,6 +36,7 @@ bool BillSocket::Request(const QJsonObject &requestJson, QJsonObject &recvJson,
QTimer
::
singleShot
(
VALUE_NETTIMEOUT
,
&
eventLoop
,
&
QEventLoop
::
quit
);
eventLoop
.
exec
();
//获取Http请求的返回json数据;
if
(
reply
->
error
()
!=
QNetworkReply
::
NoError
)
{
error
=
reply
->
errorString
();
...
...
@@ -51,7 +55,7 @@ bool BillSocket::Request(const QJsonObject &requestJson, QJsonObject &recvJson,
return
true
;
}
bool
BillSocket
::
Get
(
QJsonObject
&
recvJson
,
QString
&
error
)
bool
BillSocket
::
Get
Request
(
QJsonObject
&
recvJson
,
QString
&
error
)
{
if
(
QNetworkAccessManager
::
Accessible
!=
m_networkManger
.
networkAccessible
())
{
...
...
@@ -84,7 +88,7 @@ bool BillSocket::Get( QJsonObject &recvJson, QString &error)
return
true
;
}
void
BillSocket
::
SetUrl
(
QUrl
url
)
void
BillSocket
::
SetUrl
(
QUrl
&
url
)
{
m_networkRequest
.
setUrl
(
url
);
}
...
...
fmTakeaway/Network/billSocket.h
View file @
ab0c400b
...
...
@@ -7,6 +7,9 @@
#include <QtNetwork/QNetworkRequest>
#include <QUrl>
/* 类名:BillSocket [账单socket];
* 功能:Socket通用型的http通信请求;
* */
class
BillSocket
:
public
QObject
{
Q_OBJECT
...
...
@@ -14,13 +17,38 @@ public:
explicit
BillSocket
(
QObject
*
parent
=
0
);
~
BillSocket
();
bool
Request
(
const
QJsonObject
&
requestJson
,
QJsonObject
&
recvJson
,
QString
&
error
);
bool
Get
(
QJsonObject
&
recvJson
,
QString
&
error
);
void
SetUrl
(
QUrl
url
);
/* 功能:带json参数的Http请求 [POST请求]:
* 参数:1、json数据入参;2、接受返回json数据的Buff;3、error字符串;
* 返回:TRUE[请求成功] / FALSE[请求失败];
* */
bool
PostRequest
(
const
QJsonObject
&
requestJson
,
QJsonObject
&
recvJson
,
QString
&
error
);
/* 功能:不带参数的Http请求 [GET请求]:
* 参数:1、接受返回json数据的Buff;3、error字符串;
* 返回:TRUE[请求成功] / FALSE[请求失败];
* */
bool
GetRequest
(
QJsonObject
&
recvJson
,
QString
&
error
);
/* 功能:设置Http请求的 URL地址:
* 参数:1、URL地址;
* 返回:void;
* */
void
SetUrl
(
QUrl
&
url
);
/* 功能:设置Http请求的 ssl配置:
* 参数:void;
* 返回:void;
* */
void
SetSslConfig
();
private
:
/*
* http请求管理成员变量:用户维护Http请求队列;
*/
QNetworkAccessManager
m_networkManger
;
/*
* http请求成员变量:用于绑定请求的相关数据;
*/
QNetworkRequest
m_networkRequest
;
};
...
...
fmTakeaway/preDefine.h
View file @
ab0c400b
...
...
@@ -59,9 +59,9 @@
#define JSON_STATUS "status"
#define JSON_ORDERSTATUS "orderStatus"
#define JSON_STATUSDESC "status_desc"
#define JSON_MESSAGE "m
sg
"
#define JSON_ERRMSG "m
sg
"
#define JSON_RECEIVINGSTATUS "
receiving
Status"
#define JSON_MESSAGE "m
essage
"
#define JSON_ERRMSG "m
essage
"
#define JSON_RECEIVINGSTATUS "
operation
Status"
#define JSON_TIMESTAMPS "timestamp"
#define JSON_AUTOCONFIRM "autoconfirm"
#define JSON_TOKEN "PosToken"
...
...
isl/FMOMS.isl
deleted
100644 → 0
View file @
38ff4990
retainglobalvar
UseISLTimeOuts
var dll_handle : N9
//var reqMsg : A50 = "01 999900000100000120170816"
var reqMsg : A50 = "01 00000100000100000120170922"
//var resMsg : A100
var msgCode:A4
// Constant Values Begin
var RESPONSE_SUCCESS : a4 = "1000"
var RESPONSE_CONTINUE : a4 = "1001"
var RESPONSE_NOMORE : a4 = "1002"
var RESPONSE_REFUND : a4 = "1009"
var SYMB_LEVEL1 : A10 = "^"
var SYMB_LEVEL2 : A10 = "~"
var PRODUCTS_SIZE : N3 = 200
var logText:a10000
var globalRefNum : A30
var productList[200]:A32
var discountFee:$10
var OpenChecks : N4
var productLength : N4
var ORDER_EVENT : N4 = 2
var requestString : A100
//Event Begin_Check
// format logText as "in OMS begin - tremp ", @Tremp
// call log_printf_tdsfs(logText, 0)
// format logText as "in OMS begin - ckcshr ", @CKCSHR
// call log_printf_tdsfs(logText, 0)
// call get_para_string(requestString)
// format logText as "in OMS begin - requestString [", requestString, "]"
// call log_printf_tdsfs(logText, 0)
//EndEvent
sub get_para_string(ref out)
var TransType:A2 = "01"
var StoreNo:A8 = @PROPERTY
call get_fixed_String(8,StoreNo)
var deviceNo:A6 = @WSID
call get_fixed_String(6,deviceNo)
var cashierNo:A6 = @TREMP
call get_fixed_String(6,cashierNo)
var businessDay:A8
call get_format_date(businessDay)
var reserved:A64 = " "
format out as TransType,StoreNo,deviceNo,cashierNo,businessDay,reserved
endsub
sub get_format_date(ref str)
var temp:A10
format temp as @Year,"-",@Month,"-",@Day
var year1:A4
var mon1:A2
var day1:A2
split temp,"-",year1,mon1,day1
year1 = mid(year1, 2, 2)
if( Len(mon1) = 1 )
format str as "20",year1,"0",mon1
else
format str as "20",year1,mon1
endif
if( Len(day1) = 1 )
format str as str,"0",day1
else
format str as str,day1
endif
endsub
sub get_fixed_String(var length: N4, ref str)
str = trim(str)
var leng:N4 = Len(str)
if(length > leng)
Var i : n3
for i = 1 to length - leng
format str as str," "
endfor
endif
if(length < leng)
str = mid(str, 1, length)
endif
endsub
event tmed:79
format logText as "in event tmed:79: ", globalRefNum
call log_printf(logText, 0)
saverefinfo globalRefNum
endevent
event inq:66
if(@numdtlt > 0)
ExitWithError "当前交易未完成,请结束交易后重试"
endif
// User logged in
// Has cashier
if (dll_handle = 0)
DLLLoad dll_handle, "C:\FreeMud\OMSFreemudAPI.dll"
endif
var orderMsg:A20000
if(dll_handle = 0)
format logText as "FreeMud OMS Service not available."
call log_printf_tdsfs(logText, 0)
ExitWithError logText
endif
DLLCallW dll_handle, FMGetResponse(reqMsg, ref orderMsg)
format logText as "Order data: ", orderMsg
call log_printf_tdsfs(logText, 0)
// Parse respnose code
var retMsg1 : A200
split orderMsg, SYMB_LEVEL1, retMsg1
var msgLen : N3 = len(retMsg1) - 4
var msgText:a100 = trim(mid(orderMsg, 5, msgLen))
msgCode = trim(mid(orderMsg, 1, 4))
if (msgCode <> RESPONSE_SUCCESS AND msgCode <> RESPONSE_CONTINUE)
//No new orders
if (msgCode = RESPONSE_NOMORE)
format logText as "No more order."
call log_printf_tdsfs(logText, 0)
// DllFree
DLLFree dll_handle
dll_handle = 0
ExitCancel
endif
//Refund
if (msgCode = RESPONSE_REFUND)
format logText as "Refunded order "
call log_printf_tdsfs(logText, 0)
// Parse response body
var msg:a104
var shop:a100
var order:a200
var discount:a50
var checkNo:a8
split orderMsg, SYMB_LEVEL1, msg, shop, order, discount, checkNo
checkNo = trim(checkNo)
var orderId:A100 = trim(mid(order, 1, 100))
format logText as "Refund order:", orderId, " Check:", checkNo
InfoMessage "Refund order ", orderId, " Check: ", checkNo
loadkybdmacro defkey("VoidClosedCheck"), MakeKeys(checkNo), @KEY_ENTER, @KEY_ENTER
call ReportCheckNo(orderId, checkNo)
ExitContinue
endif
format logText as "Error occured: " , "-", msgCode, ":", trim(msgText)
call log_printf_tdsfs(logText, 0)
// DllFree
DLLFree dll_handle
dll_handle = 0
ExitWithError trim(msgText)
endif
// Parse response body
var msg:a104
var shop:a100
var order:a200
var discount:a50
var products:a20000
split orderMsg, SYMB_LEVEL1, msg, shop, order, discount, products
var productArray[PRODUCTS_SIZE]:A32
var shopId:A50 = trim(mid(shop, 1, 50))
var orderId:A100 = trim(mid(order, 1, 100))
var totalFee:A15 = trim(mid(order, 101, 15))
var feeStr : A20 = trim(mid(discount, 1, 10))
format logText as "Order:", orderId, " TotalFee:", totalFee, " DiscountFee:", feeStr
call log_printf_tdsfs(logText, 0)
globalRefNum = orderId
discountFee = feeStr + 0.00
// Read products
format logText as "Product string length: ", len(products)
call log_printf_tdsfs(logText, 0)
split products, SYMB_LEVEL2, #PRODUCTS_SIZE, productArray[]
var arraylength : N3 = 0
var i : N3
for i = 1 to PRODUCTS_SIZE
productList[i] = productArray[i]
if(trim(productArray[i]) <> "")
arraylength = arraylength + 1
endif
endfor
productLength = arraylength
OpenChecks = arraylength
format logText as "Product number : " , OpenChecks
call log_printf_tdsfs(logText, 0)
DLLFree dll_handle
dll_handle = 0
loadkybdmacro defkey("OrderType", N:2)
loadkybdmacro defkey("SimInquire", A:"FMOMS:ORDER_EVENT")
endevent
event inq:ORDER_EVENT
if OpenChecks > 0
call OrderProduct()
else
call PayOrder()
//Report Check number
call ReportCheckNo(globalRefNum, @Cknum)
//End, Reset globalRefNum
globalRefNum = ""
endif
endevent
event mi
if (globalRefNum <> "")
format logText as "Menu Item Left: ", OpenChecks, "Quantity: ", @TTL, @QTY
call log_printf_tdsfs(logText, 0)
loadkybdmacro defkey("SimInquire", A:"FMOMS:ORDER_EVENT")
endif
endevent
sub log_printf_tdsfs(ref xml,var flag:N1)
var credit:A10000
var current_time:a10
format current_time as @Hour,":",@Minute,":",@Second
if flag = 1
format credit as "send,",current_time," ",xml
elseif flag = 2
format credit as "recv,",current_time," ",xml
elseif flag = 0
format credit as current_time," ",xml
endif
var fn:N5
var logfile:a100
format logfile as "C:\FreeMud\log\simlog-",@Year,"-",@Month,"-",@Day,".log"
fopen fn,logfile,append,unicode
if fn = 0
errormessage @File_errstr
exitcontinue
endif
fwrite fn,credit
fclose fn
endsub
sub OrderProduct()
format logText as "Start processing products. Left: ", OpenChecks
call log_printf_tdsfs(logText, 0)
var skuId:A10
var productAmount:A3
var productPrice:A10
var i:N10 = productLength - OpenChecks + 1
if (trim(productList[i]) <> "")
skuId = trim(mid(productList[i], 1, 10))
productAmount = trim(mid(productList[i], 11, 3))
productPrice = trim(mid(productList[i], 14, 10))
OpenChecks = OpenChecks - 1
format logText as "Product[", i , "] : " , skuId, " ", productAmount
call log_printf_tdsfs(logText, 0)
loadkybdmacro MakeKeys(productAmount), key(1, skuId)
format logText as "Product ", skuId, " ordered."
call log_printf_tdsfs(logText, 0)
else
format logText as "Error parsing product, index: ", i
call log_printf_tdsfs(logText, 0)
endif
endsub
sub PayOrder()
// Pay the check
if (discountFee > 0)
format logText as "Discount fee: ", discountFee
call log_printf_tdsfs(logText, 0)
loadkybdmacro key(3, 100), MakeKeys(discountFee / 100), @KEY_ENTER, makekeys("FM discount"), @KEY_ENTER
endif
format logText as "Payment for order ", globalRefNum
call log_printf_tdsfs(logText, 0)
loadkybdmacro @KEY_ENTER, defkey("Payment", N:79, A:"Cash:Cash"), makekeys(globalRefNum), @KEY_ENTER
endsub
sub ReportCheckNo(var order:A30, var check:A8)
//Report Check number
if (dll_handle = 0)
DLLLoad dll_handle, "C:\FreeMud\OMSFreemudAPI.dll"
endif
var rptChkMsg:A122
var rptChkRsp:A128
var orderId:A20
var chkNo:A8
orderId = order
chkNo = check
call get_fixed_String(20, orderId)
call get_fixed_String(8, chkNo)
format rptChkMsg as "040000000100000100000120180101", orderId, chkNo
DllCallW dll_handle, FMGetResponse(rptChkMsg, ref rptChkRsp)
format logText as "Check number report response: ", rptChkRsp
call log_printf_tdsfs(logText, 0)
DllFree dll_handle
dll_handle = 0
endsub
event inq:67
loadkybdmacro @KEY_ENTER, key(9,1), @KEY_ENTER
loadkybdmacro defkey("SimInquire", A:"FMOMS:66")
endevent
event inq:68
loadkybdmacro defkey("SimInquire", A:"FMOMS:66")
endevent
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