Commit f947ef51 authored by pengjun's avatar pengjun

#627 add query index

parent 491ce6b8
...@@ -983,7 +983,7 @@ func (action *Action) CollateralizeFeed(feed *pty.CollateralizeFeed) (*types.Rec ...@@ -983,7 +983,7 @@ func (action *Action) CollateralizeFeed(feed *pty.CollateralizeFeed) (*types.Rec
return nil, pty.ErrPriceInvalid return nil, pty.ErrPriceInvalid
} }
ids, err := queryCollateralizeByStatus(action.localDB, pty.CollateralizeStatusCreated) ids, err := queryCollateralizeByStatus(action.localDB, pty.CollateralizeStatusCreated, 0)
if err != nil { if err != nil {
clog.Error("CollateralizePriceFeed", "get collateralize record error", err) clog.Error("CollateralizePriceFeed", "get collateralize record error", err)
return nil, err return nil, err
...@@ -1095,8 +1095,14 @@ func queryCollateralizeByID(db dbm.KV, collateralizeID string) (*pty.Collaterali ...@@ -1095,8 +1095,14 @@ func queryCollateralizeByID(db dbm.KV, collateralizeID string) (*pty.Collaterali
return &coll, nil return &coll, nil
} }
func queryCollateralizeByStatus(localdb dbm.Lister, status int32) ([]string, error) { func queryCollateralizeByStatus(localdb dbm.Lister, status int32, index int64) ([]string, error) {
data, err := localdb.List(calcCollateralizeStatusPrefix(status), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcCollateralizeStatusPrefix(status), calcCollateralizeStatusKey(status, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcCollateralizeStatusPrefix(status), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Debug("queryCollateralizesByStatus", "error", err) clog.Debug("queryCollateralizesByStatus", "error", err)
return nil, err return nil, err
...@@ -1116,8 +1122,14 @@ func queryCollateralizeByStatus(localdb dbm.Lister, status int32) ([]string, err ...@@ -1116,8 +1122,14 @@ func queryCollateralizeByStatus(localdb dbm.Lister, status int32) ([]string, err
return ids, nil return ids, nil
} }
func queryCollateralizeByAddr(localdb dbm.Lister, addr string) ([]string, error) { func queryCollateralizeByAddr(localdb dbm.Lister, addr string, index int64) ([]string, error) {
data, err := localdb.List(calcCollateralizeAddrPrefix(addr), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcCollateralizeAddrPrefix(addr), calcCollateralizeAddrKey(addr, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcCollateralizeAddrPrefix(addr), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Debug("queryCollateralizesByAddr", "error", err) clog.Debug("queryCollateralizesByAddr", "error", err)
return nil, err return nil, err
...@@ -1160,8 +1172,14 @@ func queryCollateralizeRecordByID(db dbm.KV, collateralizeID string, recordID st ...@@ -1160,8 +1172,14 @@ func queryCollateralizeRecordByID(db dbm.KV, collateralizeID string, recordID st
return nil, types.ErrNotFound return nil, types.ErrNotFound
} }
func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string) ([]*pty.BorrowRecord, error) { func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string, index int64) ([]*pty.BorrowRecord, error) {
data, err := localdb.List(calcCollateralizeRecordAddrPrefix(addr), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcCollateralizeRecordAddrPrefix(addr), calcCollateralizeRecordAddrKey(addr, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcCollateralizeRecordAddrPrefix(addr), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByAddr", "error", err) clog.Debug("queryCollateralizeRecordByAddr", "error", err)
return nil, err return nil, err
...@@ -1187,7 +1205,7 @@ func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string) ...@@ -1187,7 +1205,7 @@ func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string)
return records, nil return records, nil
} }
func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.Lister, status int32) ([]*pty.BorrowRecord, error) { func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.Lister, status int32, index int64) ([]*pty.BorrowRecord, error) {
var statusKey string var statusKey string
if status == 0 { if status == 0 {
statusKey = "" statusKey = ""
...@@ -1195,7 +1213,13 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.Lister, status int3 ...@@ -1195,7 +1213,13 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.Lister, status int3
statusKey = fmt.Sprintf("%d", status) statusKey = fmt.Sprintf("%d", status)
} }
data, err := localdb.List(calcCollateralizeRecordStatusPrefix(statusKey), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcCollateralizeRecordStatusPrefix(statusKey), calcCollateralizeRecordStatusKey(status, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcCollateralizeRecordStatusPrefix(statusKey), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Debug("queryCollateralizeRecordByStatus", "error", err) clog.Debug("queryCollateralizeRecordByStatus", "error", err)
return nil, err return nil, err
......
...@@ -52,7 +52,7 @@ func (c *Collateralize) Query_CollateralizeInfoByIDs(req *pty.ReqCollateralizeIn ...@@ -52,7 +52,7 @@ func (c *Collateralize) Query_CollateralizeInfoByIDs(req *pty.ReqCollateralizeIn
func (c *Collateralize) Query_CollateralizeByStatus(req *pty.ReqCollateralizeByStatus) (types.Message, error) { func (c *Collateralize) Query_CollateralizeByStatus(req *pty.ReqCollateralizeByStatus) (types.Message, error) {
ids := &pty.RepCollateralizeIDs{} ids := &pty.RepCollateralizeIDs{}
collIDRecords, err := queryCollateralizeByStatus(c.GetLocalDB(), req.Status) collIDRecords, err := queryCollateralizeByStatus(c.GetLocalDB(), req.Status, req.Index)
if err != nil { if err != nil {
clog.Error("Query_CollateralizeByStatus", "get collateralize record error", err) clog.Error("Query_CollateralizeByStatus", "get collateralize record error", err)
return nil, err return nil, err
...@@ -64,7 +64,7 @@ func (c *Collateralize) Query_CollateralizeByStatus(req *pty.ReqCollateralizeByS ...@@ -64,7 +64,7 @@ func (c *Collateralize) Query_CollateralizeByStatus(req *pty.ReqCollateralizeByS
func (c *Collateralize) Query_CollateralizeByAddr(req *pty.ReqCollateralizeByAddr) (types.Message, error) { func (c *Collateralize) Query_CollateralizeByAddr(req *pty.ReqCollateralizeByAddr) (types.Message, error) {
ids := &pty.RepCollateralizeIDs{} ids := &pty.RepCollateralizeIDs{}
collIDRecords, err := queryCollateralizeByAddr(c.GetLocalDB(), req.Addr) collIDRecords, err := queryCollateralizeByAddr(c.GetLocalDB(), req.Addr, req.Index)
if err != nil { if err != nil {
clog.Error("Query_CollateralizeByAddr", "get collateralize record error", err) clog.Error("Query_CollateralizeByAddr", "get collateralize record error", err)
return nil, err return nil, err
...@@ -88,7 +88,7 @@ func (c *Collateralize) Query_CollateralizeRecordByID(req *pty.ReqCollateralizeR ...@@ -88,7 +88,7 @@ func (c *Collateralize) Query_CollateralizeRecordByID(req *pty.ReqCollateralizeR
func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateralizeRecordByAddr) (types.Message, error) { func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateralizeRecordByAddr) (types.Message, error) {
ret := &pty.RepCollateralizeRecords{} ret := &pty.RepCollateralizeRecords{}
records, err := queryCollateralizeRecordByAddr(c.GetStateDB(), c.GetLocalDB(), req.Addr) records, err := queryCollateralizeRecordByAddr(c.GetStateDB(), c.GetLocalDB(), req.Addr, req.Index)
if err != nil { if err != nil {
clog.Error("Query_CollateralizeRecordByAddr", "get collateralize record error", err) clog.Error("Query_CollateralizeRecordByAddr", "get collateralize record error", err)
return nil, err return nil, err
...@@ -100,7 +100,7 @@ func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateraliz ...@@ -100,7 +100,7 @@ func (c *Collateralize) Query_CollateralizeRecordByAddr(req *pty.ReqCollateraliz
func (c *Collateralize) Query_CollateralizeRecordByStatus(req *pty.ReqCollateralizeRecordByStatus) (types.Message, error) { func (c *Collateralize) Query_CollateralizeRecordByStatus(req *pty.ReqCollateralizeRecordByStatus) (types.Message, error) {
ret := &pty.RepCollateralizeRecords{} ret := &pty.RepCollateralizeRecords{}
records, err := queryCollateralizeRecordByStatus(c.GetStateDB(), c.GetLocalDB(), req.Status) records, err := queryCollateralizeRecordByStatus(c.GetStateDB(), c.GetLocalDB(), req.Status, req.Index)
if err != nil { if err != nil {
clog.Error("Query_CollateralizeRecordByStatus", "get collateralize record error", err) clog.Error("Query_CollateralizeRecordByStatus", "get collateralize record error", err)
return nil, err return nil, err
......
...@@ -160,11 +160,13 @@ message RepCollateralizeCurrentInfos { ...@@ -160,11 +160,13 @@ message RepCollateralizeCurrentInfos {
// 根据借贷状态查询 // 根据借贷状态查询
message ReqCollateralizeByStatus { message ReqCollateralizeByStatus {
int32 status = 1; int32 status = 1;
int64 index = 2;
} }
// 根据用户地址查询 // 根据用户地址查询
message ReqCollateralizeByAddr { message ReqCollateralizeByAddr {
string addr = 1; string addr = 1;
int64 index = 2;
} }
// 返回借贷ID列表 // 返回借贷ID列表
...@@ -176,12 +178,14 @@ message RepCollateralizeIDs { ...@@ -176,12 +178,14 @@ message RepCollateralizeIDs {
message ReqCollateralizeRecordByAddr { message ReqCollateralizeRecordByAddr {
string collateralizeId = 1; string collateralizeId = 1;
string addr = 2; string addr = 2;
int64 index = 3;
} }
// 根据状态和借贷ID混合查询具体借贷记录 // 根据状态和借贷ID混合查询具体借贷记录
message ReqCollateralizeRecordByStatus { message ReqCollateralizeRecordByStatus {
string collateralizeId = 1; string collateralizeId = 1;
int32 status = 2; int32 status = 2;
int64 index = 3;
} }
// 返回借贷记录 // 返回借贷记录
......
...@@ -864,7 +864,7 @@ func (action *Action) IssuanceFeed(feed *pty.IssuanceFeed) (*types.Receipt, erro ...@@ -864,7 +864,7 @@ func (action *Action) IssuanceFeed(feed *pty.IssuanceFeed) (*types.Receipt, erro
return nil, pty.ErrPriceInvalid return nil, pty.ErrPriceInvalid
} }
ids, err := queryIssuanceByStatus(action.localDB, pty.IssuanceStatusCreated) ids, err := queryIssuanceByStatus(action.localDB, pty.IssuanceStatusCreated, 0)
if err != nil { if err != nil {
clog.Error("IssuancePriceFeed", "get issuance record error", err) clog.Error("IssuancePriceFeed", "get issuance record error", err)
return nil, err return nil, err
...@@ -981,8 +981,14 @@ func queryIssuanceByID(db dbm.KV, issuanceID string) (*pty.Issuance, error) { ...@@ -981,8 +981,14 @@ func queryIssuanceByID(db dbm.KV, issuanceID string) (*pty.Issuance, error) {
} }
// 根据发行状态查找发行ID // 根据发行状态查找发行ID
func queryIssuanceByStatus(localdb dbm.Lister, status int32) ([]string, error) { func queryIssuanceByStatus(localdb dbm.Lister, status int32, index int64) ([]string, error) {
data, err := localdb.List(calcIssuanceStatusPrefix(status), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcIssuanceStatusPrefix(status), calcIssuanceStatusKey(status, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcIssuanceStatusPrefix(status), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Debug("queryIssuancesByStatus", "error", err) clog.Debug("queryIssuancesByStatus", "error", err)
return nil, err return nil, err
...@@ -1026,7 +1032,7 @@ func queryIssuanceRecordByID(db dbm.KV, issuanceID string, debtID string) (*pty. ...@@ -1026,7 +1032,7 @@ func queryIssuanceRecordByID(db dbm.KV, issuanceID string, debtID string) (*pty.
} }
// 根据发行状态查找 // 根据发行状态查找
func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32) ([]*pty.DebtRecord, error) { func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32, index int64) ([]*pty.DebtRecord, error) {
var statusKey string var statusKey string
if status == 0 { if status == 0 {
statusKey = "" statusKey = ""
...@@ -1034,7 +1040,13 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32) ( ...@@ -1034,7 +1040,13 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32) (
statusKey = fmt.Sprintf("%d", status) statusKey = fmt.Sprintf("%d", status)
} }
data, err := localdb.List(calcIssuanceRecordStatusPrefix(statusKey), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcIssuanceRecordStatusPrefix(statusKey), calcIssuanceRecordStatusKey(status, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcIssuanceRecordStatusPrefix(statusKey), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Error("queryIssuanceRecordsByStatus", "error", err) clog.Error("queryIssuanceRecordsByStatus", "error", err)
return nil, err return nil, err
...@@ -1061,8 +1073,14 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32) ( ...@@ -1061,8 +1073,14 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.Lister, status int32) (
} }
// 根据用户地址查找 // 根据用户地址查找
func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string) ([]*pty.DebtRecord, error) { func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.Lister, addr string, index int64) ([]*pty.DebtRecord, error) {
data, err := localdb.List(calcIssuanceRecordAddrPrefix(addr), nil, DefultCount, ListDESC) var data [][]byte
var err error
if index != 0 {
data, err = localdb.List(calcIssuanceRecordAddrPrefix(addr), calcIssuanceRecordAddrKey(addr, index), DefultCount, ListDESC)
} else {
data, err = localdb.List(calcIssuanceRecordAddrPrefix(addr), nil, DefultCount, ListDESC)
}
if err != nil { if err != nil {
clog.Error("queryIssuanceRecordByAddr", "error", err) clog.Error("queryIssuanceRecordByAddr", "error", err)
return nil, err return nil, err
......
...@@ -52,7 +52,7 @@ func (c *Issuance) Query_IssuanceInfoByIDs(req *pty.ReqIssuanceInfos) (types.Mes ...@@ -52,7 +52,7 @@ func (c *Issuance) Query_IssuanceInfoByIDs(req *pty.ReqIssuanceInfos) (types.Mes
func (c *Issuance) Query_IssuanceByStatus(req *pty.ReqIssuanceByStatus) (types.Message, error) { func (c *Issuance) Query_IssuanceByStatus(req *pty.ReqIssuanceByStatus) (types.Message, error) {
ids := &pty.RepIssuanceIDs{} ids := &pty.RepIssuanceIDs{}
issuIDRecords, err := queryIssuanceByStatus(c.GetLocalDB(), req.Status) issuIDRecords, err := queryIssuanceByStatus(c.GetLocalDB(), req.Status, req.Index)
if err != nil { if err != nil {
clog.Error("Query_IssuanceByStatus", "get issuance error", err) clog.Error("Query_IssuanceByStatus", "get issuance error", err)
return nil, err return nil, err
...@@ -76,7 +76,7 @@ func (c *Issuance) Query_IssuanceRecordByID(req *pty.ReqIssuanceDebtInfo) (types ...@@ -76,7 +76,7 @@ func (c *Issuance) Query_IssuanceRecordByID(req *pty.ReqIssuanceDebtInfo) (types
func (c *Issuance) Query_IssuanceRecordsByAddr(req *pty.ReqIssuanceRecordsByAddr) (types.Message, error) { func (c *Issuance) Query_IssuanceRecordsByAddr(req *pty.ReqIssuanceRecordsByAddr) (types.Message, error) {
ret := &pty.RepIssuanceRecords{} ret := &pty.RepIssuanceRecords{}
records, err := queryIssuanceRecordByAddr(c.GetStateDB(), c.GetLocalDB(), req.Addr) records, err := queryIssuanceRecordByAddr(c.GetStateDB(), c.GetLocalDB(), req.Addr, req.Index)
if err != nil { if err != nil {
clog.Error("Query_IssuanceDebtInfoByAddr", "get issuance record error", err) clog.Error("Query_IssuanceDebtInfoByAddr", "get issuance record error", err)
return nil, err return nil, err
...@@ -88,7 +88,7 @@ func (c *Issuance) Query_IssuanceRecordsByAddr(req *pty.ReqIssuanceRecordsByAddr ...@@ -88,7 +88,7 @@ func (c *Issuance) Query_IssuanceRecordsByAddr(req *pty.ReqIssuanceRecordsByAddr
func (c *Issuance) Query_IssuanceRecordsByStatus(req *pty.ReqIssuanceRecordsByStatus) (types.Message, error) { func (c *Issuance) Query_IssuanceRecordsByStatus(req *pty.ReqIssuanceRecordsByStatus) (types.Message, error) {
ret := &pty.RepIssuanceRecords{} ret := &pty.RepIssuanceRecords{}
records, err := queryIssuanceRecordsByStatus(c.GetStateDB(), c.GetLocalDB(), req.Status) records, err := queryIssuanceRecordsByStatus(c.GetStateDB(), c.GetLocalDB(), req.Status, req.Index)
if err != nil { if err != nil {
clog.Error("Query_IssuanceDebtInfoByStatus", "get issuance record error", err) clog.Error("Query_IssuanceDebtInfoByStatus", "get issuance record error", err)
return nil, err return nil, err
......
...@@ -150,6 +150,7 @@ message RepIssuanceCurrentInfos { ...@@ -150,6 +150,7 @@ message RepIssuanceCurrentInfos {
// 根据发行状态查询 // 根据发行状态查询
message ReqIssuanceByStatus { message ReqIssuanceByStatus {
int32 status = 1; int32 status = 1;
int64 index = 2;
} }
// 返回借贷ID列表 // 返回借贷ID列表
...@@ -161,12 +162,14 @@ message RepIssuanceIDs { ...@@ -161,12 +162,14 @@ message RepIssuanceIDs {
message ReqIssuanceRecordsByAddr { message ReqIssuanceRecordsByAddr {
string issuanceId = 1; string issuanceId = 1;
string addr = 2; string addr = 2;
int64 index = 3;
} }
// 根据状态查询发行记录 // 根据状态查询发行记录
message ReqIssuanceRecordsByStatus { message ReqIssuanceRecordsByStatus {
string issuanceId = 1; string issuanceId = 1;
int32 status = 2; int32 status = 2;
int64 index = 3;
} }
// 返回记录列表 // 返回记录列表
......
This diff is collapsed.
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