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
f2dc03fd
Commit
f2dc03fd
authored
Dec 31, 2019
by
pengjun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
#627 add user balance query api
parent
749115d7
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
264 additions
and
25 deletions
+264
-25
cmd.go
plugin/dapp/collateralize/commands/cmd.go
+33
-0
collateralize_test.go
plugin/dapp/collateralize/executor/collateralize_test.go
+10
-0
collateralizedb.go
plugin/dapp/collateralize/executor/collateralizedb.go
+74
-9
query.go
plugin/dapp/collateralize/executor/query.go
+10
-0
collateralize.proto
plugin/dapp/collateralize/proto/collateralize.proto
+6
-0
collateralize.pb.go
plugin/dapp/collateralize/types/collateralize.pb.go
+0
-0
cmd.go
plugin/dapp/issuance/commands/cmd.go
+33
-10
issuance_test.go
plugin/dapp/issuance/executor/issuance_test.go
+10
-0
issuancedb.go
plugin/dapp/issuance/executor/issuancedb.go
+70
-5
query.go
plugin/dapp/issuance/executor/query.go
+12
-1
issuance.proto
plugin/dapp/issuance/proto/issuance.proto
+6
-0
issuance.pb.go
plugin/dapp/issuance/types/issuance.pb.go
+0
-0
No files found.
plugin/dapp/collateralize/commands/cmd.go
View file @
f2dc03fd
...
...
@@ -360,6 +360,38 @@ func CollateralizeQueryPrice(cmd *cobra.Command, args []string) {
ctx
.
Run
()
}
func
CollateralizeQueryUserBalanceCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"balance"
,
Short
:
"Query user balance"
,
Run
:
CollateralizeQueryUserBalance
,
}
addCollateralizeQueryBalanceFlags
(
cmd
)
return
cmd
}
func
addCollateralizeQueryBalanceFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"address"
,
"a"
,
""
,
"address"
)
cmd
.
MarkFlagRequired
(
"address"
)
}
func
CollateralizeQueryUserBalance
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
addr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"address"
)
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
pkt
.
CollateralizeX
params
.
FuncName
=
"CollateralizeUserBalance"
req
:=
&
pkt
.
ReqCollateralizeRecordByAddr
{
Addr
:
addr
,
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepCollateralizeUserBalance
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
// CollateralizeQueryCmd 查询命令行
func
CollateralizeQueryCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
@@ -371,6 +403,7 @@ func CollateralizeQueryCmd() *cobra.Command {
cmd
.
AddCommand
(
CollateralizeQueryCfgCmd
(),
CollateralizeQueryPriceCmd
(),
CollateralizeQueryUserBalanceCmd
(),
)
return
cmd
}
...
...
plugin/dapp/collateralize/executor/collateralize_test.go
View file @
f2dc03fd
...
...
@@ -314,6 +314,11 @@ func TestCollateralize(t *testing.T) {
types
.
Encode
(
&
pkt
.
ReqCollateralizeRecordByAddr
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
res
)
// query collateralize user balance
res
,
err
=
exec
.
Query
(
"CollateralizeUserBalance"
,
types
.
Encode
(
&
pkt
.
ReqCollateralizeRecordByAddr
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
int64
(
100
),
res
.
(
*
pkt
.
RepCollateralizeUserBalance
)
.
Balance
)
// collateralize append
p5
:=
&
pkt
.
CollateralizeAppendTx
{
...
...
@@ -406,6 +411,11 @@ func TestCollateralize(t *testing.T) {
types
.
Encode
(
&
pkt
.
ReqCollateralizeRecordByAddr
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
6
}))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
res
)
// query collateralize user balance
res
,
err
=
exec
.
Query
(
"CollateralizeUserBalance"
,
types
.
Encode
(
&
pkt
.
ReqCollateralizeRecordByAddr
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
int64
(
0
),
res
.
(
*
pkt
.
RepCollateralizeUserBalance
)
.
Balance
)
// collateralize liquidate
p7
:=
&
pkt
.
CollateralizeBorrowTx
{
...
...
plugin/dapp/collateralize/executor/collateralizedb.go
View file @
f2dc03fd
...
...
@@ -21,7 +21,7 @@ import (
const
(
ListDESC
=
int32
(
0
)
// list降序
ListASC
=
int32
(
1
)
// list升序
DefultCount
=
int32
(
20
)
// 默认一次取多少条记录
Def
a
ultCount
=
int32
(
20
)
// 默认一次取多少条记录
MaxCount
=
int32
(
100
)
// 最多取100条
)
...
...
@@ -1172,7 +1172,7 @@ func queryCollateralizeByStatus(localdb dbm.KVDB, status int32, collID string) (
CollateralizeId
:
collID
,
Status
:
status
,
}
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeByStatus.List"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1201,13 +1201,13 @@ func queryCollateralizeByAddr(localdb dbm.KVDB, addr string, status int32, collI
var
rows
[]
*
table
.
Row
var
err
error
if
status
==
0
{
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeByAddr.List"
,
"index"
,
"addr"
,
"error"
,
err
)
return
nil
,
err
}
}
else
{
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeByAddr.List"
,
"index"
,
"addr_status"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1260,19 +1260,19 @@ func queryCollateralizeRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, st
var
rows
[]
*
table
.
Row
var
err
error
if
len
(
collID
)
!=
0
{
rows
,
err
=
query
.
List
(
"id_addr"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"id_addr"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByAddr.List"
,
"index"
,
"id_addr"
,
"error"
,
err
)
return
nil
,
err
}
}
else
if
status
!=
0
{
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByAddr.List"
,
"index"
,
"addr_status"
,
"error"
,
err
)
return
nil
,
err
}
}
else
{
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByAddr.List"
,
"index"
,
"addr"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1307,13 +1307,13 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32,
var
rows
[]
*
table
.
Row
var
err
error
if
len
(
collID
)
==
0
{
rows
,
err
=
query
.
List
(
"status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByStatus.List"
,
"index"
,
"status"
,
"error"
,
err
)
return
nil
,
err
}
}
else
{
rows
,
err
=
query
.
List
(
"id_status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"id_status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByStatus.List"
,
"index"
,
"id_status"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1332,3 +1332,67 @@ func queryCollateralizeRecordByStatus(db dbm.KV, localdb dbm.KVDB, status int32,
return
records
,
nil
}
func
queryCollateralizeUserBalanceStatus
(
db
dbm
.
KV
,
localdb
dbm
.
KVDB
,
addr
string
,
status
int32
)
(
int64
,
error
)
{
var
totalBalance
int64
query
:=
pty
.
NewRecordTable
(
localdb
)
.
GetQuery
(
localdb
)
var
primary
[]
byte
var
data
=
&
pty
.
ReceiptCollateralize
{
AccountAddr
:
addr
,
Status
:
status
,
}
var
rows
[]
*
table
.
Row
var
err
error
for
{
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
DefaultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByAddr.List"
,
"index"
,
"addr"
,
"error"
,
err
)
return
-
1
,
err
}
for
_
,
row
:=
range
rows
{
record
,
err
:=
queryCollateralizeRecordByID
(
db
,
row
.
Data
.
(
*
pty
.
ReceiptCollateralize
)
.
CollateralizeId
,
row
.
Data
.
(
*
pty
.
ReceiptCollateralize
)
.
RecordId
)
if
err
!=
nil
{
clog
.
Debug
(
"queryCollateralizeRecordByStatus.queryCollateralizeRecordByID"
,
"error"
,
err
)
continue
}
totalBalance
+=
record
.
DebtValue
}
if
len
(
rows
)
<
int
(
DefaultCount
)
{
break
}
primary
=
[]
byte
(
rows
[
DefaultCount
-
1
]
.
Data
.
(
*
pty
.
ReceiptCollateralize
)
.
RecordId
)
}
return
totalBalance
,
nil
}
func
queryCollateralizeUserBalance
(
db
dbm
.
KV
,
localdb
dbm
.
KVDB
,
addr
string
)
(
int64
,
error
)
{
var
totalBalance
int64
balance
,
err
:=
queryCollateralizeUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
CollateralizeUserStatusCreate
)
if
err
!=
nil
{
clog
.
Error
(
"queryCollateralizeUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
balance
,
err
=
queryCollateralizeUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
CollateralizeUserStatusWarning
)
if
err
!=
nil
{
clog
.
Error
(
"queryCollateralizeUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
balance
,
err
=
queryCollateralizeUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
CollateralizeUserStatusExpire
)
if
err
!=
nil
{
clog
.
Error
(
"queryCollateralizeUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
return
totalBalance
,
nil
}
\ No newline at end of file
plugin/dapp/collateralize/executor/query.go
View file @
f2dc03fd
...
...
@@ -167,3 +167,13 @@ func (c *Collateralize) Query_CollateralizePrice(req *pty.ReqCollateralizeRecord
return
&
pty
.
RepCollateralizePrice
{
Price
:
price
},
nil
}
func
(
c
*
Collateralize
)
Query_CollateralizeUserBalance
(
req
*
pty
.
ReqCollateralizeRecordByAddr
)
(
types
.
Message
,
error
)
{
balance
,
err
:=
queryCollateralizeUserBalance
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Addr
)
if
err
!=
nil
{
clog
.
Error
(
"Query_CollateralizeRecordByAddr"
,
"get collateralize record error"
,
err
)
return
nil
,
err
}
return
&
pty
.
RepCollateralizeUserBalance
{
Balance
:
balance
},
nil
}
plugin/dapp/collateralize/proto/collateralize.proto
View file @
f2dc03fd
...
...
@@ -215,3 +215,8 @@ message RepCollateralizeConfig {
message
RepCollateralizePrice
{
int64
price
=
1
;
//当前抵押物最新价格
}
// 返回用户借贷总额
message
RepCollateralizeUserBalance
{
int64
balance
=
1
;
//返回用户借贷总额
}
\ No newline at end of file
plugin/dapp/collateralize/types/collateralize.pb.go
View file @
f2dc03fd
This diff is collapsed.
Click to expand it.
plugin/dapp/issuance/commands/cmd.go
View file @
f2dc03fd
...
...
@@ -291,6 +291,38 @@ func IssuanceQueryPrice(cmd *cobra.Command, args []string) {
ctx
.
Run
()
}
func
IssuanceQueryUserBalanceCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
Use
:
"balance"
,
Short
:
"Query user balance"
,
Run
:
IssuanceQueryUserBalance
,
}
addIssuanceQueryBalanceFlags
(
cmd
)
return
cmd
}
func
addIssuanceQueryBalanceFlags
(
cmd
*
cobra
.
Command
)
{
cmd
.
Flags
()
.
StringP
(
"address"
,
"a"
,
""
,
"address"
)
cmd
.
MarkFlagRequired
(
"address"
)
}
func
IssuanceQueryUserBalance
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
rpcLaddr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"rpc_laddr"
)
addr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"address"
)
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
pkt
.
IssuanceX
params
.
FuncName
=
"IssuanceUserBalance"
req
:=
&
pkt
.
ReqIssuanceRecords
{
Addr
:
addr
,
}
params
.
Payload
=
types
.
MustPBToJSON
(
req
)
var
res
pkt
.
RepIssuanceUserBalance
ctx
:=
jsonrpc
.
NewRPCCtx
(
rpcLaddr
,
"Chain33.Query"
,
params
,
&
res
)
ctx
.
Run
()
}
// IssuanceQueryCmd 查询命令行
func
IssuanceQueryCmd
()
*
cobra
.
Command
{
cmd
:=
&
cobra
.
Command
{
...
...
@@ -301,6 +333,7 @@ func IssuanceQueryCmd() *cobra.Command {
addIssuanceQueryFlags
(
cmd
)
cmd
.
AddCommand
(
IssuacneQueryPriceCmd
(),
IssuanceQueryUserBalanceCmd
(),
)
return
cmd
}
...
...
@@ -319,21 +352,11 @@ func IssuanceQuery(cmd *cobra.Command, args []string) {
issuanceID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"issuanceID"
)
address
,
_
:=
cmd
.
Flags
()
.
GetString
(
"address"
)
statusStr
,
_
:=
cmd
.
Flags
()
.
GetString
(
"status"
)
// indexstr, _ := cmd.Flags().GetString("index")
issuanceIDs
,
_
:=
cmd
.
Flags
()
.
GetString
(
"issuanceIDs"
)
debtID
,
_
:=
cmd
.
Flags
()
.
GetString
(
"debtID"
)
var
params
rpctypes
.
Query4Jrpc
params
.
Execer
=
pkt
.
IssuanceX
//if indexstr != "" {
// index, err := strconv.ParseInt(indexstr, 10, 64)
// if err != nil {
// fmt.Println(err)
// cmd.Help()
// return
// }
// req.Index = index
//}
var
status
int64
var
err
error
...
...
plugin/dapp/issuance/executor/issuance_test.go
View file @
f2dc03fd
...
...
@@ -291,6 +291,11 @@ func TestIssuance(t *testing.T) {
types
.
Encode
(
&
pkt
.
ReqIssuanceRecords
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
res
)
// query issuance user balance
res
,
err
=
exec
.
Query
(
"IssuanceUserBalance"
,
types
.
Encode
(
&
pkt
.
ReqIssuanceRecords
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
100
*
types
.
Coin
,
res
.
(
*
pkt
.
RepIssuanceUserBalance
)
.
Balance
)
// issuance repay
p5
:=
&
pkt
.
IssuanceRepayTx
{
...
...
@@ -336,6 +341,11 @@ func TestIssuance(t *testing.T) {
types
.
Encode
(
&
pkt
.
ReqIssuanceRecords
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
6
}))
assert
.
Nil
(
t
,
err
)
assert
.
NotNil
(
t
,
res
)
// query issuance user balance
res
,
err
=
exec
.
Query
(
"IssuanceUserBalance"
,
types
.
Encode
(
&
pkt
.
ReqIssuanceRecords
{
Addr
:
string
(
Nodes
[
1
]),
Status
:
1
}))
assert
.
Nil
(
t
,
err
)
assert
.
Equal
(
t
,
int64
(
0
),
res
.
(
*
pkt
.
RepIssuanceUserBalance
)
.
Balance
)
// issuance liquidate
p6
:=
&
pkt
.
IssuanceDebtTx
{
...
...
plugin/dapp/issuance/executor/issuancedb.go
View file @
f2dc03fd
...
...
@@ -19,7 +19,7 @@ import (
const
(
ListDESC
=
int32
(
0
)
// list降序
ListASC
=
int32
(
1
)
// list升序
DefultCount
=
int32
(
20
)
// 默认一次取多少条记录
Def
a
ultCount
=
int32
(
20
)
// 默认一次取多少条记录
MaxCount
=
int32
(
100
)
// 最多取100条
)
...
...
@@ -973,7 +973,7 @@ func queryIssuanceByStatus(localdb dbm.KVDB, status int32, issuanceID string) ([
IssuanceId
:
issuanceID
,
Status
:
status
,
}
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceByStatus.List"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1021,7 +1021,7 @@ func queryIssuanceRecordsByStatus(db dbm.KV, localdb dbm.KVDB, status int32, deb
var
data
=
&
pty
.
ReceiptIssuance
{
Status
:
status
,
}
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
:=
query
.
List
(
"status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceRecordsByStatus.List"
,
"index"
,
"status"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1056,13 +1056,13 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status
var
rows
[]
*
table
.
Row
var
err
error
if
status
==
0
{
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceRecordByAddr.List"
,
"index"
,
"addr"
,
"error"
,
err
)
return
nil
,
err
}
}
else
{
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
DefultCount
,
ListDESC
)
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
Def
a
ultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceRecordByAddr.List"
,
"index"
,
"addr_status"
,
"error"
,
err
)
return
nil
,
err
...
...
@@ -1081,3 +1081,67 @@ func queryIssuanceRecordByAddr(db dbm.KV, localdb dbm.KVDB, addr string, status
return
records
,
nil
}
func
queryIssuanceUserBalanceStatus
(
db
dbm
.
KV
,
localdb
dbm
.
KVDB
,
addr
string
,
status
int32
)
(
int64
,
error
)
{
var
totalBalance
int64
query
:=
pty
.
NewRecordTable
(
localdb
)
.
GetQuery
(
localdb
)
var
primary
[]
byte
var
data
=
&
pty
.
ReceiptIssuance
{
AccountAddr
:
addr
,
Status
:
status
,
}
var
rows
[]
*
table
.
Row
var
err
error
for
{
rows
,
err
=
query
.
List
(
"addr_status"
,
data
,
primary
,
DefaultCount
,
ListDESC
)
if
err
!=
nil
{
clog
.
Debug
(
"queryIssuanceRecordByAddr.List"
,
"index"
,
"addr"
,
"error"
,
err
)
return
-
1
,
err
}
for
_
,
row
:=
range
rows
{
record
,
err
:=
queryIssuanceRecordByID
(
db
,
row
.
Data
.
(
*
pty
.
ReceiptIssuance
)
.
IssuanceId
,
row
.
Data
.
(
*
pty
.
ReceiptIssuance
)
.
DebtId
)
if
err
!=
nil
{
clog
.
Debug
(
"queryIssuanceRecordByStatus.queryIssuanceRecordByID"
,
"error"
,
err
)
continue
}
totalBalance
+=
record
.
DebtValue
}
if
len
(
rows
)
<
int
(
DefaultCount
)
{
break
}
primary
=
[]
byte
(
rows
[
DefaultCount
-
1
]
.
Data
.
(
*
pty
.
ReceiptIssuance
)
.
DebtId
)
}
return
totalBalance
,
nil
}
func
queryIssuanceUserBalance
(
db
dbm
.
KV
,
localdb
dbm
.
KVDB
,
addr
string
)
(
int64
,
error
)
{
var
totalBalance
int64
balance
,
err
:=
queryIssuanceUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
IssuanceUserStatusCreate
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
balance
,
err
=
queryIssuanceUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
IssuanceUserStatusWarning
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
balance
,
err
=
queryIssuanceUserBalanceStatus
(
db
,
localdb
,
addr
,
pty
.
IssuanceUserStatusExpire
)
if
err
!=
nil
{
clog
.
Error
(
"queryIssuanceUserBalance"
,
"err"
,
err
)
}
else
{
totalBalance
+=
balance
}
return
totalBalance
,
nil
}
\ No newline at end of file
plugin/dapp/issuance/executor/query.go
View file @
f2dc03fd
...
...
@@ -116,9 +116,19 @@ func (c *Issuance) Query_IssuanceRecordsByStatus(req *pty.ReqIssuanceRecords) (t
func
(
c
*
Issuance
)
Query_IssuancePrice
(
req
*
pty
.
ReqIssuanceRecords
)
(
types
.
Message
,
error
)
{
price
,
err
:=
getLatestPrice
(
c
.
GetStateDB
())
if
err
!=
nil
{
clog
.
Error
(
"Query_
Collateraliz
ePrice"
,
"error"
,
err
)
clog
.
Error
(
"Query_
Issuanc
ePrice"
,
"error"
,
err
)
return
nil
,
err
}
return
&
pty
.
RepIssuancePrice
{
Price
:
price
},
nil
}
func
(
c
*
Issuance
)
Query_IssuanceUserBalance
(
req
*
pty
.
ReqIssuanceRecords
)
(
types
.
Message
,
error
)
{
balance
,
err
:=
queryIssuanceUserBalance
(
c
.
GetStateDB
(),
c
.
GetLocalDB
(),
req
.
Addr
)
if
err
!=
nil
{
clog
.
Error
(
"Query_IssuanceRecordByAddr"
,
"get issuance record error"
,
err
)
return
nil
,
err
}
return
&
pty
.
RepIssuanceUserBalance
{
Balance
:
balance
},
nil
}
\ No newline at end of file
plugin/dapp/issuance/proto/issuance.proto
View file @
f2dc03fd
...
...
@@ -173,3 +173,8 @@ message RepIssuanceDebtInfo {
message
RepIssuancePrice
{
int64
price
=
1
;
//当前抵押物最新价格
}
// 返回用户发行总额
message
RepIssuanceUserBalance
{
int64
balance
=
1
;
//返回用户发行总额
}
\ No newline at end of file
plugin/dapp/issuance/types/issuance.pb.go
View file @
f2dc03fd
This diff is collapsed.
Click to expand it.
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