Commit f64e3c5e authored by linj's avatar linj

impl Query_GetTokenBuyOrderByStatus

parent bd9c1bd3
...@@ -17,6 +17,10 @@ func (t *trade) Query_GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder) (typ ...@@ -17,6 +17,10 @@ func (t *trade) Query_GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder) (typ
// GetTokenSellOrderByStatus by status // GetTokenSellOrderByStatus by status
// sell & TokenSymbol & status sort by price // sell & TokenSymbol & status sort by price
func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int32) (types.Message, error) { func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int32) (types.Message, error) {
return t.GetTokenOrderByStatus(true, req, status)
}
func (t *trade) GetTokenOrderByStatus(isSell bool, 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
} }
...@@ -31,7 +35,7 @@ func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int ...@@ -31,7 +35,7 @@ func (t *trade) GetTokenSellOrderByStatus(req *pty.ReqTokenSellOrder, status int
order.PriceSymbol = t.GetAPI().GetConfig().GetCoinSymbol() order.PriceSymbol = t.GetAPI().GetConfig().GetCoinSymbol()
order.PriceExec = defaultAssetExec order.PriceExec = defaultAssetExec
order.IsSellOrder = true order.IsSellOrder = isSell
order.Status = req.Status order.Status = req.Status
...@@ -66,38 +70,16 @@ func (t *trade) Query_GetTokenBuyOrderByStatus(req *pty.ReqTokenBuyOrder) (types ...@@ -66,38 +70,16 @@ func (t *trade) Query_GetTokenBuyOrderByStatus(req *pty.ReqTokenBuyOrder) (types
// GetTokenBuyOrderByStatus by status // GetTokenBuyOrderByStatus by status
// buy & TokenSymbol & status buy sort by price // buy & TokenSymbol & status buy sort by price
func (t *trade) GetTokenBuyOrderByStatus(req *pty.ReqTokenBuyOrder, status int32) (types.Message, error) { 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 是升序, 买单是要降序, 把高价买的放前面, 在下一页操作时, 显示买价低的。 // List Direction 是升序, 买单是要降序, 把高价买的放前面, 在下一页操作时, 显示买价低的。
direction := 1 - req.Direction direction := 1 - req.Direction
values, err := t.GetLocalDB().List(calcTokensBuyOrderPrefixStatus(req.TokenSymbol, status), fromKey, req.Count, direction) req2 := pty.ReqTokenSellOrder{
if err != nil { TokenSymbol: req.TokenSymbol,
return nil, err FromKey: req.FromKey,
} Count: req.Count,
var replys pty.ReplyTradeOrders Direction: direction,
for _, key := range values { Status: req.Status,
reply := t.loadOrderFromKey(key) }
if reply == nil { return t.GetTokenOrderByStatus(false, &req2, status)
continue
}
tradelog.Debug("trade Query", "getSellOrderFromID", string(key))
replys.Orders = append(replys.Orders, reply)
}
return &replys, nil
} }
// addr part // addr part
......
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