Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
plugin
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
link33
plugin
Commits
2b9422dd
Commit
2b9422dd
authored
Sep 03, 2019
by
linj
Committed by
vipwzw
Sep 05, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
移动代码
parent
1ab627b0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
192 additions
and
183 deletions
+192
-183
query.go
plugin/dapp/trade/executor/query.go
+0
-182
query_v1.go
plugin/dapp/trade/executor/query_v1.go
+192
-1
No files found.
plugin/dapp/trade/executor/query.go
View file @
2b9422dd
...
@@ -24,33 +24,6 @@ import (
...
@@ -24,33 +24,6 @@ import (
// 由于现价买/卖是没有orderID的, 用txhash 代替作为key
// 由于现价买/卖是没有orderID的, 用txhash 代替作为key
// key 有两种 orderID, txhash (0xAAAAAAAAAAAAAAA)
// key 有两种 orderID, txhash (0xAAAAAAAAAAAAAAA)
// 根据token 分页显示未完成成交买单
func
(
t
*
trade
)
Query_GetTokenBuyOrderByStatus
(
req
*
pty
.
ReqTokenBuyOrder
)
(
types
.
Message
,
error
)
{
if
req
.
Status
==
0
{
req
.
Status
=
pty
.
TradeOrderStatusOnBuy
}
return
t
.
GetTokenBuyOrderByStatus
(
req
,
req
.
Status
)
}
// addr part
// addr(-token) 的所有订单, 不分页
func
(
t
*
trade
)
Query_GetOnesSellOrder
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesSellOrder
(
req
)
}
func
(
t
*
trade
)
Query_GetOnesBuyOrder
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesBuyOrder
(
req
)
}
// 按 用户状态来 addr-status
func
(
t
*
trade
)
Query_GetOnesSellOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesSellOrdersWithStatus
(
req
)
}
func
(
t
*
trade
)
Query_GetOnesBuyOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesBuyOrdersWithStatus
(
req
)
}
func
(
t
*
trade
)
Query_GetOnesOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
func
(
t
*
trade
)
Query_GetOnesOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesOrderWithStatus
(
req
)
return
t
.
GetOnesOrderWithStatus
(
req
)
}
}
...
@@ -59,161 +32,6 @@ func (t *trade) Query_GetOneOrder(req *pty.ReqAddrAssets) (types.Message, error)
...
@@ -59,161 +32,6 @@ func (t *trade) Query_GetOneOrder(req *pty.ReqAddrAssets) (types.Message, error)
return
t
.
GetOneOrder
(
req
)
return
t
.
GetOneOrder
(
req
)
}
}
func
(
t
*
trade
)
GetOnesSellOrder
(
addrTokens
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
keys
[][]
byte
if
0
==
len
(
addrTokens
.
Token
)
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixAddr
(
addrTokens
.
Addr
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of sellID"
,
len
(
values
))
keys
=
append
(
keys
,
values
...
)
}
}
else
{
for
_
,
token
:=
range
addrTokens
.
Token
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixToken
(
token
,
addrTokens
.
Addr
),
nil
,
0
,
0
)
tradelog
.
Debug
(
"trade Query"
,
"Begin to list addr with token"
,
token
,
"got values"
,
len
(
values
))
if
err
!=
nil
&&
err
!=
types
.
ErrNotFound
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
keys
=
append
(
keys
,
values
...
)
}
}
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
keys
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
func
(
t
*
trade
)
GetOnesBuyOrder
(
addrTokens
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
keys
[][]
byte
if
0
==
len
(
addrTokens
.
Token
)
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixAddr
(
addrTokens
.
Addr
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of buy keys"
,
len
(
values
))
keys
=
append
(
keys
,
values
...
)
}
}
else
{
for
_
,
token
:=
range
addrTokens
.
Token
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixToken
(
token
,
addrTokens
.
Addr
),
nil
,
0
,
0
)
tradelog
.
Debug
(
"trade Query"
,
"Begin to list addr with token"
,
token
,
"got values"
,
len
(
values
))
if
err
!=
nil
&&
err
!=
types
.
ErrNotFound
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
keys
=
append
(
keys
,
values
...
)
}
}
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
keys
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
func
(
t
*
trade
)
GetOnesSellOrdersWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
sellIDs
[][]
byte
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixStatus
(
req
.
Addr
,
req
.
Status
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of sellID"
,
len
(
values
))
sellIDs
=
append
(
sellIDs
,
values
...
)
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
sellIDs
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
func
(
t
*
trade
)
GetOnesBuyOrdersWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
sellIDs
[][]
byte
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixStatus
(
req
.
Addr
,
req
.
Status
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of buy keys"
,
len
(
values
))
sellIDs
=
append
(
sellIDs
,
values
...
)
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
sellIDs
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
func
(
t
*
trade
)
GetTokenBuyOrderByStatus
(
req
*
pty
.
ReqTokenBuyOrder
,
status
int32
)
(
types
.
Message
,
error
)
{
if
req
.
Count
<=
0
||
(
req
.
Direction
!=
1
&&
req
.
Direction
!=
0
)
{
return
nil
,
types
.
ErrInvalidParam
}
fromKey
:=
[]
byte
(
""
)
if
len
(
req
.
FromKey
)
!=
0
{
buy
:=
t
.
replyReplyBuyOrderfromID
([]
byte
(
req
.
FromKey
))
if
buy
==
nil
{
tradelog
.
Error
(
"GetTokenBuyOrderByStatus"
,
"key not exist"
,
req
.
FromKey
)
return
nil
,
types
.
ErrInvalidParam
}
fromKey
=
calcTokensBuyOrderKeyStatus
(
buy
.
TokenSymbol
,
buy
.
Status
,
calcPriceOfToken
(
buy
.
PricePerBoardlot
,
buy
.
AmountPerBoardlot
),
buy
.
Owner
,
buy
.
Key
)
}
tradelog
.
Debug
(
"GetTokenBuyOrderByStatus"
,
"fromKey "
,
fromKey
)
// List Direction 是升序, 买单是要降序, 把高价买的放前面, 在下一页操作时, 显示买价低的。
direction
:=
1
-
req
.
Direction
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcTokensBuyOrderPrefixStatus
(
req
.
TokenSymbol
,
status
),
fromKey
,
req
.
Count
,
direction
)
if
err
!=
nil
{
return
nil
,
err
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
values
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
// query reply utils
// query reply utils
func
(
t
*
trade
)
replyReplySellOrderfromID
(
key
[]
byte
)
*
pty
.
ReplySellOrder
{
func
(
t
*
trade
)
replyReplySellOrderfromID
(
key
[]
byte
)
*
pty
.
ReplySellOrder
{
tradelog
.
Debug
(
"trade Query"
,
"id"
,
string
(
key
),
"check-prefix"
,
sellIDPrefix
)
tradelog
.
Debug
(
"trade Query"
,
"id"
,
string
(
key
),
"check-prefix"
,
sellIDPrefix
)
...
...
plugin/dapp/trade/executor/query_v1.go
View file @
2b9422dd
...
@@ -5,11 +5,12 @@ import (
...
@@ -5,11 +5,12 @@ import (
pty
"github.com/33cn/plugin/plugin/dapp/trade/types"
pty
"github.com/33cn/plugin/plugin/dapp/trade/types"
)
)
// 根据token 分页显示未完成成交卖单
//
1.8
根据token 分页显示未完成成交卖单
func
(
t
*
trade
)
Query_GetTokenSellOrderByStatus
(
req
*
pty
.
ReqTokenSellOrder
)
(
types
.
Message
,
error
)
{
func
(
t
*
trade
)
Query_GetTokenSellOrderByStatus
(
req
*
pty
.
ReqTokenSellOrder
)
(
types
.
Message
,
error
)
{
return
t
.
GetTokenSellOrderByStatus
(
req
,
req
.
Status
)
return
t
.
GetTokenSellOrderByStatus
(
req
,
req
.
Status
)
}
}
// GetTokenSellOrderByStatus by status
func
(
t
*
trade
)
GetTokenSellOrderByStatus
(
req
*
pty
.
ReqTokenSellOrder
,
status
int32
)
(
types
.
Message
,
error
)
{
func
(
t
*
trade
)
GetTokenSellOrderByStatus
(
req
*
pty
.
ReqTokenSellOrder
,
status
int32
)
(
types
.
Message
,
error
)
{
if
req
.
Count
<=
0
||
(
req
.
Direction
!=
1
&&
req
.
Direction
!=
0
)
{
if
req
.
Count
<=
0
||
(
req
.
Direction
!=
1
&&
req
.
Direction
!=
0
)
{
return
nil
,
types
.
ErrInvalidParam
return
nil
,
types
.
ErrInvalidParam
...
@@ -39,3 +40,193 @@ func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int
...
@@ -39,3 +40,193 @@ func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int
}
}
return
&
replys
,
nil
return
&
replys
,
nil
}
}
// 1.3 根据token 分页显示未完成成交买单
func
(
t
*
trade
)
Query_GetTokenBuyOrderByStatus
(
req
*
pty
.
ReqTokenBuyOrder
)
(
types
.
Message
,
error
)
{
if
req
.
Status
==
0
{
req
.
Status
=
pty
.
TradeOrderStatusOnBuy
}
return
t
.
GetTokenBuyOrderByStatus
(
req
,
req
.
Status
)
}
// GetTokenBuyOrderByStatus by status
func
(
t
*
trade
)
GetTokenBuyOrderByStatus
(
req
*
pty
.
ReqTokenBuyOrder
,
status
int32
)
(
types
.
Message
,
error
)
{
if
req
.
Count
<=
0
||
(
req
.
Direction
!=
1
&&
req
.
Direction
!=
0
)
{
return
nil
,
types
.
ErrInvalidParam
}
fromKey
:=
[]
byte
(
""
)
if
len
(
req
.
FromKey
)
!=
0
{
buy
:=
t
.
replyReplyBuyOrderfromID
([]
byte
(
req
.
FromKey
))
if
buy
==
nil
{
tradelog
.
Error
(
"GetTokenBuyOrderByStatus"
,
"key not exist"
,
req
.
FromKey
)
return
nil
,
types
.
ErrInvalidParam
}
fromKey
=
calcTokensBuyOrderKeyStatus
(
buy
.
TokenSymbol
,
buy
.
Status
,
calcPriceOfToken
(
buy
.
PricePerBoardlot
,
buy
.
AmountPerBoardlot
),
buy
.
Owner
,
buy
.
Key
)
}
tradelog
.
Debug
(
"GetTokenBuyOrderByStatus"
,
"fromKey "
,
fromKey
)
// List Direction 是升序, 买单是要降序, 把高价买的放前面, 在下一页操作时, 显示买价低的。
direction
:=
1
-
req
.
Direction
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcTokensBuyOrderPrefixStatus
(
req
.
TokenSymbol
,
status
),
fromKey
,
req
.
Count
,
direction
)
if
err
!=
nil
{
return
nil
,
err
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
values
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
// addr part
// 1.4 addr(-token) 的所有订单, 不分页
func
(
t
*
trade
)
Query_GetOnesSellOrder
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesSellOrder
(
req
)
}
// 1.1 addr(-token) 的所有订单, 不分页
func
(
t
*
trade
)
Query_GetOnesBuyOrder
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesBuyOrder
(
req
)
}
// GetOnesSellOrder by address or address-token
func
(
t
*
trade
)
GetOnesSellOrder
(
addrTokens
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
keys
[][]
byte
if
0
==
len
(
addrTokens
.
Token
)
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixAddr
(
addrTokens
.
Addr
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of sellID"
,
len
(
values
))
keys
=
append
(
keys
,
values
...
)
}
}
else
{
for
_
,
token
:=
range
addrTokens
.
Token
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixToken
(
token
,
addrTokens
.
Addr
),
nil
,
0
,
0
)
tradelog
.
Debug
(
"trade Query"
,
"Begin to list addr with token"
,
token
,
"got values"
,
len
(
values
))
if
err
!=
nil
&&
err
!=
types
.
ErrNotFound
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
keys
=
append
(
keys
,
values
...
)
}
}
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
keys
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
// GetOnesBuyOrder by address or address-token
func
(
t
*
trade
)
GetOnesBuyOrder
(
addrTokens
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
keys
[][]
byte
if
0
==
len
(
addrTokens
.
Token
)
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixAddr
(
addrTokens
.
Addr
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of buy keys"
,
len
(
values
))
keys
=
append
(
keys
,
values
...
)
}
}
else
{
for
_
,
token
:=
range
addrTokens
.
Token
{
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixToken
(
token
,
addrTokens
.
Addr
),
nil
,
0
,
0
)
tradelog
.
Debug
(
"trade Query"
,
"Begin to list addr with token"
,
token
,
"got values"
,
len
(
values
))
if
err
!=
nil
&&
err
!=
types
.
ErrNotFound
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
keys
=
append
(
keys
,
values
...
)
}
}
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
keys
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
// 1.5 没找到
// 按 用户状态来 addr-status
func
(
t
*
trade
)
Query_GetOnesSellOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesSellOrdersWithStatus
(
req
)
}
// 1.2 按 用户状态来 addr-status
func
(
t
*
trade
)
Query_GetOnesBuyOrderWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
return
t
.
GetOnesBuyOrdersWithStatus
(
req
)
}
// GetOnesSellOrdersWithStatus by address-status
func
(
t
*
trade
)
GetOnesSellOrdersWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
sellIDs
[][]
byte
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesSellOrderPrefixStatus
(
req
.
Addr
,
req
.
Status
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of sellID"
,
len
(
values
))
sellIDs
=
append
(
sellIDs
,
values
...
)
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
sellIDs
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
// GetOnesBuyOrdersWithStatus by address-status
func
(
t
*
trade
)
GetOnesBuyOrdersWithStatus
(
req
*
pty
.
ReqAddrAssets
)
(
types
.
Message
,
error
)
{
var
sellIDs
[][]
byte
values
,
err
:=
t
.
GetLocalDB
()
.
List
(
calcOnesBuyOrderPrefixStatus
(
req
.
Addr
,
req
.
Status
),
nil
,
0
,
0
)
if
err
!=
nil
{
return
nil
,
err
}
if
len
(
values
)
!=
0
{
tradelog
.
Debug
(
"trade Query"
,
"get number of buy keys"
,
len
(
values
))
sellIDs
=
append
(
sellIDs
,
values
...
)
}
var
replys
pty
.
ReplyTradeOrders
for
_
,
key
:=
range
sellIDs
{
reply
:=
t
.
loadOrderFromKey
(
key
)
if
reply
==
nil
{
continue
}
tradelog
.
Debug
(
"trade Query"
,
"getSellOrderFromID"
,
string
(
key
))
replys
.
Orders
=
append
(
replys
.
Orders
,
reply
)
}
return
&
replys
,
nil
}
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