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 (
)
type
CoinTicker
struct
{
CoinId
int
`json:"coin_id"`
CoinName
string
`json:"coin_name"`
Ticker
float32
`json:"ticker"`
PlatformId
uint8
`json:"platform_id"`
Model
//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
{
CoinId
int
`json:"coin_id"`
Ticker
float32
`json:"ticker"`
Name
string
`json:"name"`
CoinId
int
`json:"coin_id"`
Ticker
string
`json:"ticker"`
Name
string
`json:"name"`
}
func
(
c
CoinTicker
)
TableName
()
string
{
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
)
{
var
ct
[]
*
CoinTicker
err
:=
db
.
Where
(
maps
)
.
Find
(
&
ct
)
.
Error
...
...
@@ -34,14 +48,14 @@ func GetCoinsTicker(maps interface{}) ([]*CoinTicker, error) {
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
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
{
return
false
,
err
}
if
coinTicker
.
Coin
Id
>
0
{
if
coinTicker
.
Platform
Id
>
0
{
return
true
,
nil
}
...
...
@@ -51,9 +65,8 @@ func ExistCoin(coin_id int, platform_id uint8) (bool, error) {
func
AddCoinTicker
(
data
map
[
string
]
interface
{})
(
error
)
{
coinTicker
:=
CoinTicker
{
CoinName
:
data
[
"coin_name"
]
.
(
string
),
CoinId
:
data
[
"coin_id"
]
.
(
int
),
Ticker
:
data
[
"ticker"
]
.
(
float32
),
PlatformId
:
data
[
"platform_id"
]
.
(
uint8
),
Ticker
:
data
[
"ticker"
]
.
(
string
),
PlatformId
:
data
[
"platform_id"
]
.
(
int
),
}
if
err
:=
db
.
Create
(
&
coinTicker
)
.
Error
;
err
!=
nil
{
return
err
...
...
@@ -70,10 +83,24 @@ func EditCoinTicker(maps interface{}, data interface{}) error {
return
nil
}
func
DeleteCoinTicker
(
coin_id
int
,
platform_id
uint8
)
error
{
if
err
:=
db
.
Where
(
"
coin_id = ? and platform_id = ?"
,
coin_id
,
platform_
id
)
.
Delete
(
CoinTicker
{})
.
Error
;
err
!=
nil
{
func
DeleteCoinTicker
(
id
int
)
error
{
if
err
:=
db
.
Where
(
"
id = ?"
,
id
)
.
Delete
(
CoinTicker
{})
.
Error
;
err
!=
nil
{
return
err
}
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 (
"bwallet/pkg/handler"
"bwallet/pkg/util"
"bwallet/service/coin_ticker_service"
"bwallet/service/wallet_service"
"bwallet/validate_service"
"github.com/Unknwon/com"
"github.com/astaxie/beego/validation"
...
...
@@ -15,12 +16,37 @@ import (
func
CoinsTicker
(
c
*
gin
.
Context
)
{
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
group
:=
user
.
UserInfo
.
Group
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
),
var
platform_id
int
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
{
handler
.
SendResponse
(
c
,
errno
.
InternalServerError
,
nil
)
return
...
...
@@ -41,10 +67,19 @@ func AddCoinTicker(c *gin.Context) {
}
token
:=
c
.
Request
.
Header
.
Get
(
"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
{
Coin
Id
:
coin_ticker
.
CoinId
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
Coin
Name
:
coin_ticker
.
CoinName
,
PlatformId
:
platform_id
,
}
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
if
exist
{
...
...
@@ -53,10 +88,9 @@ func AddCoinTicker(c *gin.Context) {
}
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinId
:
coin_ticker
.
CoinId
,
CoinName
:
coin_ticker
.
CoinName
,
CoinName
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
),
Ticker
:
coin_ticker
.
Ticker
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
PlatformId
:
platform_id
,
}
if
err
:=
CoinTickerService
.
Add
();
err
!=
nil
{
...
...
@@ -80,10 +114,23 @@ func UpdateCoinTicker(c *gin.Context) {
token
:=
c
.
Request
.
Header
.
Get
(
"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
{
Coin
Id
:
coin_ticker
.
CoinId
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
Coin
Name
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
)
,
PlatformId
:
platform_id
,
}
exist
,
_
:=
CoinTickerValidateService
.
Exist
()
if
!
exist
{
...
...
@@ -92,8 +139,8 @@ func UpdateCoinTicker(c *gin.Context) {
}
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
Coin
Id
:
coin_ticker
.
CoinId
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
)
,
Coin
Name
:
strings
.
ToUpper
(
coin_ticker
.
CoinName
)
,
PlatformId
:
platform_id
,
Ticker
:
coin_ticker
.
Ticker
,
}
...
...
@@ -106,20 +153,15 @@ func UpdateCoinTicker(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
.
Min
(
coin_id
,
1
,
"coin_
id"
)
.
Message
(
"ID必须大于0"
)
valid
.
Min
(
id
,
1
,
"
id"
)
.
Message
(
"ID必须大于0"
)
if
valid
.
HasErrors
()
{
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
return
}
token
:=
c
.
Request
.
Header
.
Get
(
"Token"
)
user
,
_
:=
util
.
ParseToken
(
token
)
CoinTickerService
:=
coin_ticker_service
.
CoinTicker
{
CoinId
:
coin_id
,
PlatformId
:
uint8
(
user
.
UserInfo
.
PlatformId
),
}
exists
,
err
:=
CoinTickerService
.
Exist
()
coinTickerService
:=
coin_ticker_service
.
CoinTicker
{
Id
:
id
}
exists
,
err
:=
coinTickerService
.
ExistById
()
if
err
!=
nil
{
handler
.
SendResponse
(
c
,
errno
.
ErrValidation
,
nil
)
return
...
...
@@ -130,10 +172,22 @@ func DeleteCoinTicker(c *gin.Context) {
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
{
handler
.
SendResponse
(
c
,
errno
.
ErrDeleteCoinTicker
,
nil
)
return
}
handler
.
SendResponse
(
c
,
nil
,
nil
)
}
service/coin_ticker_service/coin_ticker.go
View file @
3c503363
...
...
@@ -5,10 +5,10 @@ import (
)
type
CoinTicker
struct
{
CoinId
int
Id
int
CoinName
string
Ticker
float32
PlatformId
uint8
Ticker
string
PlatformId
int
}
func
(
ct
*
CoinTicker
)
GetAll
()
([]
*
models
.
CoinTicker
,
error
)
{
...
...
@@ -17,22 +17,11 @@ func (ct *CoinTicker) GetAll() ([]*models.CoinTicker, error) {
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
}
func
(
t
*
CoinTicker
)
Add
()
error
{
coinTicker
:=
map
[
string
]
interface
{}{
"coin_id"
:
t
.
CoinId
,
"coin_name"
:
t
.
CoinName
,
"ticker"
:
t
.
Ticker
,
"platform_id"
:
t
.
PlatformId
,
...
...
@@ -52,18 +41,31 @@ func (t *CoinTicker) Edit() 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
{
return
models
.
DeleteCoinTicker
(
t
.
CoinId
,
t
.
Platform
Id
)
return
models
.
DeleteCoinTicker
(
t
.
Id
)
}
func
(
c
*
CoinTicker
)
getMaps
()
(
map
[
string
]
interface
{})
{
maps
:=
make
(
map
[
string
]
interface
{})
if
c
.
Coin
Id
!=
0
{
maps
[
"coin_
id"
]
=
c
.
CoinId
if
c
.
Coin
Name
!=
""
{
maps
[
"coin_
name"
]
=
c
.
CoinName
}
if
c
.
PlatformId
!=
0
{
...
...
validate_service/coin_ticker.go
View file @
3c503363
package
validate_service
type
CoinTicker
struct
{
Coin
Id
int
`json:"coin_id
" validate:"required"`
CoinName
string
`json:"coin_name
" validate:"required"`
Ticker
float32
`json:"ticker"
validate:"required"`
Coin
Name
string
`json:"coin_name
" validate:"required"`
Ticker
string
`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