Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bwallet
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
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Go
bwallet
Commits
3c503363
Commit
3c503363
authored
Dec 30, 2021
by
shajiaiming
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature/optimize' into develop
parents
ea2fd3f1
f7c71f07
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
142 additions
and
59 deletions
+142
-59
coin_ticker.go
models/coin_ticker.go
+43
-16
coin_ticker.go
routers/api/backend/coin_ticker.go
+76
-22
coin_ticker.go
service/coin_ticker_service/coin_ticker.go
+20
-18
coin_ticker.go
validate_service/coin_ticker.go
+3
-3
No files found.
models/coin_ticker.go
View file @
3c503363
...
@@ -6,24 +6,38 @@ import (
...
@@ -6,24 +6,38 @@ import (
)
)
type
CoinTicker
struct
{
type
CoinTicker
struct
{
CoinId
int
`json:"coin_id"`
Model
CoinName
string
`json:"coin_name"`
Ticker
float32
`json:"ticker"`
PlatformId
uint8
`json:"platform_id"`
//CoinInfo *Coin `gorm:"foreignkey:coin_id" json:"coin_info"`
CoinName
string
`json:"coin_name"`
Ticker
string
`json:"ticker"`
PlatformId
int
`json:"platform_id"`
}
}
type
CoinTickerResp
struct
{
type
CoinTickerResp
struct
{
CoinId
int
`json:"coin_id"`
CoinId
int
`json:"coin_id"`
Ticker
float32
`json:"ticker"`
Ticker
string
`json:"ticker"`
Name
string
`json:"name"`
Name
string
`json:"name"`
}
}
func
(
c
CoinTicker
)
TableName
()
string
{
func
(
c
CoinTicker
)
TableName
()
string
{
return
setting
.
DatabaseSetting
.
Name_Sources
+
".wallet_coin_ticker"
return
setting
.
DatabaseSetting
.
Name_Sources
+
".wallet_coin_ticker"
}
}
func
GetCoinTicker
(
id
int
)
(
*
CoinTicker
,
error
)
{
var
ticker
CoinTicker
err
:=
db
.
Where
(
"id = ?"
,
id
)
.
First
(
&
ticker
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
return
nil
,
err
}
err
=
db
.
Model
(
&
ticker
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
return
nil
,
err
}
return
&
ticker
,
nil
}
func
GetCoinsTicker
(
maps
interface
{})
([]
*
CoinTicker
,
error
)
{
func
GetCoinsTicker
(
maps
interface
{})
([]
*
CoinTicker
,
error
)
{
var
ct
[]
*
CoinTicker
var
ct
[]
*
CoinTicker
err
:=
db
.
Where
(
maps
)
.
Find
(
&
ct
)
.
Error
err
:=
db
.
Where
(
maps
)
.
Find
(
&
ct
)
.
Error
...
@@ -34,14 +48,14 @@ func GetCoinsTicker(maps interface{}) ([]*CoinTicker, error) {
...
@@ -34,14 +48,14 @@ func GetCoinsTicker(maps interface{}) ([]*CoinTicker, error) {
return
ct
,
nil
return
ct
,
nil
}
}
func
ExistCoin
(
coin_
id
int
,
platform_id
uint8
)
(
bool
,
error
)
{
func
ExistCoin
(
coin_
name
string
,
platform_id
int
)
(
bool
,
error
)
{
var
coinTicker
CoinTicker
var
coinTicker
CoinTicker
err
:=
db
.
Where
(
"coin_
id = ? and platform_id = ?"
,
coin_id
,
platform_id
)
.
First
(
&
coinTicker
)
.
Error
err
:=
db
.
Where
(
"coin_
name = ? and platform_id = ?"
,
coin_name
,
platform_id
)
.
First
(
&
coinTicker
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
return
false
,
err
return
false
,
err
}
}
if
coinTicker
.
Coin
Id
>
0
{
if
coinTicker
.
Platform
Id
>
0
{
return
true
,
nil
return
true
,
nil
}
}
...
@@ -51,9 +65,8 @@ func ExistCoin(coin_id int, platform_id uint8) (bool, error) {
...
@@ -51,9 +65,8 @@ func ExistCoin(coin_id int, platform_id uint8) (bool, error) {
func
AddCoinTicker
(
data
map
[
string
]
interface
{})
(
error
)
{
func
AddCoinTicker
(
data
map
[
string
]
interface
{})
(
error
)
{
coinTicker
:=
CoinTicker
{
coinTicker
:=
CoinTicker
{
CoinName
:
data
[
"coin_name"
]
.
(
string
),
CoinName
:
data
[
"coin_name"
]
.
(
string
),
CoinId
:
data
[
"coin_id"
]
.
(
int
),
Ticker
:
data
[
"ticker"
]
.
(
string
),
Ticker
:
data
[
"ticker"
]
.
(
float32
),
PlatformId
:
data
[
"platform_id"
]
.
(
int
),
PlatformId
:
data
[
"platform_id"
]
.
(
uint8
),
}
}
if
err
:=
db
.
Create
(
&
coinTicker
)
.
Error
;
err
!=
nil
{
if
err
:=
db
.
Create
(
&
coinTicker
)
.
Error
;
err
!=
nil
{
return
err
return
err
...
@@ -70,10 +83,24 @@ func EditCoinTicker(maps interface{}, data interface{}) error {
...
@@ -70,10 +83,24 @@ func EditCoinTicker(maps interface{}, data interface{}) error {
return
nil
return
nil
}
}
func
DeleteCoinTicker
(
coin_id
int
,
platform_id
uint8
)
error
{
func
DeleteCoinTicker
(
id
int
)
error
{
if
err
:=
db
.
Where
(
"
coin_id = ? and platform_id = ?"
,
coin_id
,
platform_
id
)
.
Delete
(
CoinTicker
{})
.
Error
;
err
!=
nil
{
if
err
:=
db
.
Where
(
"
id = ?"
,
id
)
.
Delete
(
CoinTicker
{})
.
Error
;
err
!=
nil
{
return
err
return
err
}
}
return
nil
return
nil
}
}
func
ExistById
(
id
int
)
(
bool
,
error
)
{
var
coinTicker
CoinTicker
err
:=
db
.
Select
(
"id"
)
.
Where
(
"id = ?"
,
id
)
.
First
(
&
coinTicker
)
.
Error
if
err
!=
nil
&&
err
!=
gorm
.
ErrRecordNotFound
{
return
false
,
err
}
if
coinTicker
.
ID
>
0
{
return
true
,
nil
}
return
false
,
nil
}
routers/api/backend/coin_ticker.go
View file @
3c503363
...
@@ -5,6 +5,7 @@ import (
...
@@ -5,6 +5,7 @@ import (
"bwallet/pkg/handler"
"bwallet/pkg/handler"
"bwallet/pkg/util"
"bwallet/pkg/util"
"bwallet/service/coin_ticker_service"
"bwallet/service/coin_ticker_service"
"bwallet/service/wallet_service"
"bwallet/validate_service"
"bwallet/validate_service"
"github.com/Unknwon/com"
"github.com/Unknwon/com"
"github.com/astaxie/beego/validation"
"github.com/astaxie/beego/validation"
...
@@ -15,12 +16,37 @@ import (
...
@@ -15,12 +16,37 @@ import (
func
CoinsTicker
(
c
*
gin
.
Context
)
{
func
CoinsTicker
(
c
*
gin
.
Context
)
{
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
user
,
_
:=
util
.
ParseToken
(
token
)
group
:=
user
.
UserInfo
.
Group
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
var
platform_id
int
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
),
platform_id
=
user
.
UserInfo
.
PlatformId
coinTickerService
:=
coin_ticker_service
.
CoinTicker
{}
if
(
"administrator"
!=
group
)
{
walletService
:=
wallet_service
.
Wallet
{
Id
:
user
.
UserInfo
.
PlatformId
}
exists
,
err
:=
walletService
.
ExistById
()
if
err
!=
nil
{
handler
.
SendResponse
(
c
,
errno
.
ErrWalletNotFound
,
nil
)
return
}
if
(
!
exists
)
{
handler
.
SendResponse
(
c
,
errno
.
ErrWalletNotFound
,
nil
)
return
}
wallet
,
err
:=
walletService
.
Get
()
platform_id
=
wallet
.
ChainId
}
else
{
if
arg
:=
c
.
Query
(
"platform_id"
);
arg
!=
""
{
platform_id
=
com
.
StrTo
(
c
.
Query
(
"platform_id"
))
.
MustInt
()
}
}
}
coins_ticker
,
err
:=
CoinTickerService
.
GetAll
()
coinTickerService
=
coin_ticker_service
.
CoinTicker
{
PlatformId
:
platform_id
,
}
coins_ticker
,
err
:=
coinTickerService
.
GetAll
()
if
err
!=
nil
{
if
err
!=
nil
{
handler
.
SendResponse
(
c
,
errno
.
InternalServerError
,
nil
)
handler
.
SendResponse
(
c
,
errno
.
InternalServerError
,
nil
)
return
return
...
@@ -41,10 +67,19 @@ func AddCoinTicker(c *gin.Context) {
...
@@ -41,10 +67,19 @@ func AddCoinTicker(c *gin.Context) {
}
}
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
user
,
_
:=
util
.
ParseToken
(
token
)
group
:=
user
.
UserInfo
.
Group
var
platform_id
int
platform_id
=
user
.
UserInfo
.
PlatformId
if
(
"administrator"
==
group
)
{
if
coin_ticker
.
PlatformId
!=
0
{
platform_id
=
coin_ticker
.
PlatformId
}
}
CoinTickerValidateService
:=
coin_ticker_service
.
CoinTicker
{
CoinTickerValidateService
:=
coin_ticker_service
.
CoinTicker
{
Coin
Id
:
coin_ticker
.
CoinId
,
Coin
Name
:
coin_ticker
.
CoinName
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
PlatformId
:
platform_id
,
}
}
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
if
exist
{
if
exist
{
...
@@ -53,10 +88,9 @@ func AddCoinTicker(c *gin.Context) {
...
@@ -53,10 +88,9 @@ func AddCoinTicker(c *gin.Context) {
}
}
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinId
:
coin_ticker
.
CoinId
,
CoinName
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
),
CoinName
:
coin_ticker
.
CoinName
,
Ticker
:
coin_ticker
.
Ticker
,
Ticker
:
coin_ticker
.
Ticker
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
PlatformId
:
platform_id
,
}
}
if
err
:=
CoinTickerService
.
Add
();
err
!=
nil
{
if
err
:=
CoinTickerService
.
Add
();
err
!=
nil
{
...
@@ -80,10 +114,23 @@ func UpdateCoinTicker(c *gin.Context) {
...
@@ -80,10 +114,23 @@ func UpdateCoinTicker(c *gin.Context) {
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
user
,
_
:=
util
.
ParseToken
(
token
)
group
:=
user
.
UserInfo
.
Group
platform_id
:=
user
.
UserInfo
.
PlatformId
if
(
"administrator"
!=
group
&&
coin_ticker
.
PlatformId
!=
platform_id
)
{
handler
.
SendResponse
(
c
,
errno
.
ErrUserTokenIncorrect
,
nil
)
return
}
if
(
"administrator"
==
group
)
{
if
coin_ticker
.
PlatformId
!=
0
{
platform_id
=
coin_ticker
.
PlatformId
}
}
CoinTickerValidateService
:=
coin_ticker_service
.
CoinTicker
{
CoinTickerValidateService
:=
coin_ticker_service
.
CoinTicker
{
Coin
Id
:
coin_ticker
.
CoinId
,
Coin
Name
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
)
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
PlatformId
:
platform_id
,
}
}
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
if
!
exist
{
if
!
exist
{
...
@@ -92,8 +139,8 @@ func UpdateCoinTicker(c *gin.Context) {
...
@@ -92,8 +139,8 @@ func UpdateCoinTicker(c *gin.Context) {
}
}
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
Coin
Id
:
coin_ticker
.
CoinId
,
Coin
Name
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
)
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
PlatformId
:
platform_id
,
Ticker
:
coin_ticker
.
Ticker
,
Ticker
:
coin_ticker
.
Ticker
,
}
}
...
@@ -106,20 +153,15 @@ func UpdateCoinTicker(c *gin.Context) {
...
@@ -106,20 +153,15 @@ func UpdateCoinTicker(c *gin.Context) {
}
}
func
DeleteCoinTicker
(
c
*
gin
.
Context
)
{
func
DeleteCoinTicker
(
c
*
gin
.
Context
)
{
coin_id
:=
com
.
StrTo
(
c
.
DefaultQuery
(
"coin_
id"
,
"0"
))
.
MustInt
()
id
:=
com
.
StrTo
(
c
.
DefaultQuery
(
"
id"
,
"0"
))
.
MustInt
()
valid
:=
validation
.
Validation
{}
valid
:=
validation
.
Validation
{}
valid
.
Min
(
coin_id
,
1
,
"coin_
id"
)
.
Message
(
"ID必须大于0"
)
valid
.
Min
(
id
,
1
,
"
id"
)
.
Message
(
"ID必须大于0"
)
if
valid
.
HasErrors
()
{
if
valid
.
HasErrors
()
{
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
return
return
}
}
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
coinTickerService
:=
coin_ticker_service
.
CoinTicker
{
Id
:
id
}
user
,
_
:=
util
.
ParseToken
(
token
)
exists
,
err
:=
coinTickerService
.
ExistById
()
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinId
:
coin_id
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
),
}
exists
,
err
:=
CoinTickerService
.
Exist
()
if
err
!=
nil
{
if
err
!=
nil
{
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
return
return
...
@@ -130,10 +172,22 @@ func DeleteCoinTicker(c *gin.Context) {
...
@@ -130,10 +172,22 @@ func DeleteCoinTicker(c *gin.Context) {
return
return
}
}
err
=
CoinTickerService
.
Delete
()
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
group
:=
user
.
UserInfo
.
Group
if
(
"administrator"
!=
group
)
{
ticker
,
_
:=
coinTickerService
.
GetCoinTicker
()
if
ticker
.
PlatformId
!=
user
.
UserInfo
.
PlatformId
{
handler
.
SendResponse
(
c
,
errno
.
ErrUserAuthIncorrect
,
nil
)
return
}
}
err
=
coinTickerService
.
Delete
()
if
err
!=
nil
{
if
err
!=
nil
{
handler
.
SendResponse
(
c
,
errno
.
ErrDeleteCoinTicker
,
nil
)
handler
.
SendResponse
(
c
,
errno
.
ErrDeleteCoinTicker
,
nil
)
return
return
}
}
handler
.
SendResponse
(
c
,
nil
,
nil
)
handler
.
SendResponse
(
c
,
nil
,
nil
)
}
}
service/coin_ticker_service/coin_ticker.go
View file @
3c503363
...
@@ -5,10 +5,10 @@ import (
...
@@ -5,10 +5,10 @@ import (
)
)
type
CoinTicker
struct
{
type
CoinTicker
struct
{
CoinId
int
Id
int
CoinName
string
CoinName
string
Ticker
float32
Ticker
string
PlatformId
uint8
PlatformId
int
}
}
func
(
ct
*
CoinTicker
)
GetAll
()
([]
*
models
.
CoinTicker
,
error
)
{
func
(
ct
*
CoinTicker
)
GetAll
()
([]
*
models
.
CoinTicker
,
error
)
{
...
@@ -17,22 +17,11 @@ func (ct *CoinTicker) GetAll() ([]*models.CoinTicker, error) {
...
@@ -17,22 +17,11 @@ func (ct *CoinTicker) GetAll() ([]*models.CoinTicker, error) {
return
nil
,
err
return
nil
,
err
}
}
//var CoinsTickerResp = []*models.CoinTickerResp{}
//for _, val := range coins_ticker {
// tmp := &models.CoinTickerResp{}
// tmp.CoinId = val.CoinInfo.ID
// tmp.Name = val.CoinInfo.Name
// tmp.Ticker = val.Ticker
//
// CoinsTickerResp = append(CoinsTickerResp, tmp)
//}
return
coins_ticker
,
nil
return
coins_ticker
,
nil
}
}
func
(
t
*
CoinTicker
)
Add
()
error
{
func
(
t
*
CoinTicker
)
Add
()
error
{
coinTicker
:=
map
[
string
]
interface
{}{
coinTicker
:=
map
[
string
]
interface
{}{
"coin_id"
:
t
.
CoinId
,
"coin_name"
:
t
.
CoinName
,
"coin_name"
:
t
.
CoinName
,
"ticker"
:
t
.
Ticker
,
"ticker"
:
t
.
Ticker
,
"platform_id"
:
t
.
PlatformId
,
"platform_id"
:
t
.
PlatformId
,
...
@@ -52,18 +41,31 @@ func (t *CoinTicker) Edit() error {
...
@@ -52,18 +41,31 @@ func (t *CoinTicker) Edit() error {
}
}
func
(
t
*
CoinTicker
)
Exist
()
(
bool
,
error
)
{
func
(
t
*
CoinTicker
)
Exist
()
(
bool
,
error
)
{
return
models
.
ExistCoin
(
t
.
CoinId
,
t
.
PlatformId
)
return
models
.
ExistCoin
(
t
.
CoinName
,
t
.
PlatformId
)
}
func
(
t
*
CoinTicker
)
ExistById
()
(
bool
,
error
)
{
return
models
.
ExistById
(
t
.
Id
)
}
func
(
t
*
CoinTicker
)
GetCoinTicker
()
(
*
models
.
CoinTicker
,
error
)
{
ticker
,
err
:=
models
.
GetCoinTicker
(
t
.
Id
)
if
err
!=
nil
{
return
nil
,
err
}
return
ticker
,
nil
}
}
func
(
t
*
CoinTicker
)
Delete
()
error
{
func
(
t
*
CoinTicker
)
Delete
()
error
{
return
models
.
DeleteCoinTicker
(
t
.
CoinId
,
t
.
Platform
Id
)
return
models
.
DeleteCoinTicker
(
t
.
Id
)
}
}
func
(
c
*
CoinTicker
)
getMaps
()
(
map
[
string
]
interface
{})
{
func
(
c
*
CoinTicker
)
getMaps
()
(
map
[
string
]
interface
{})
{
maps
:=
make
(
map
[
string
]
interface
{})
maps
:=
make
(
map
[
string
]
interface
{})
if
c
.
Coin
Id
!=
0
{
if
c
.
Coin
Name
!=
""
{
maps
[
"coin_
id"
]
=
c
.
CoinId
maps
[
"coin_
name"
]
=
c
.
CoinName
}
}
if
c
.
PlatformId
!=
0
{
if
c
.
PlatformId
!=
0
{
...
...
validate_service/coin_ticker.go
View file @
3c503363
package
validate_service
package
validate_service
type
CoinTicker
struct
{
type
CoinTicker
struct
{
Coin
Id
int
`json:"coin_id
" validate:"required"`
Coin
Name
string
`json:"coin_name
" validate:"required"`
CoinName
string
`json:"coin_name
" validate:"required"`
Ticker
string
`json:"ticker
" validate:"required"`
Ticker
float32
`json:"ticker"
validate:"required"`
PlatformId
int
`json:"platform_id"
validate:"required"`
}
}
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