65 lines
2.0 KiB
Go
65 lines
2.0 KiB
Go
package data
|
|
|
|
import (
|
|
"github.com/assimon/luuu/model/dao"
|
|
"github.com/assimon/luuu/model/mdb"
|
|
"github.com/assimon/luuu/util/constant"
|
|
)
|
|
|
|
// AddWalletAddress 创建钱包
|
|
func AddWalletAddress(token string) (*mdb.WalletAddress, error) {
|
|
exist, err := GetWalletAddressByToken(token)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if exist.ID > 0 {
|
|
return nil, constant.WalletAddressAlreadyExists
|
|
}
|
|
walletAddress := &mdb.WalletAddress{
|
|
Token: token,
|
|
Status: mdb.TokenStatusEnable,
|
|
}
|
|
err = dao.Mdb.Create(walletAddress).Error
|
|
return walletAddress, err
|
|
}
|
|
|
|
// GetWalletAddressByToken 通过钱包地址获取token
|
|
func GetWalletAddressByToken(token string) (*mdb.WalletAddress, error) {
|
|
walletAddress := new(mdb.WalletAddress)
|
|
err := dao.Mdb.Model(walletAddress).Limit(1).Find(walletAddress, "token = ?", token).Error
|
|
return walletAddress, err
|
|
}
|
|
|
|
// GetWalletAddressById 通过id获取钱包
|
|
func GetWalletAddressById(id uint64) (*mdb.WalletAddress, error) {
|
|
walletAddress := new(mdb.WalletAddress)
|
|
err := dao.Mdb.Model(walletAddress).Limit(1).Find(walletAddress, id).Error
|
|
return walletAddress, err
|
|
}
|
|
|
|
// DeleteWalletAddressById 通过id删除钱包
|
|
func DeleteWalletAddressById(id uint64) error {
|
|
err := dao.Mdb.Where("id = ?", id).Delete(&mdb.WalletAddress{}).Error
|
|
return err
|
|
}
|
|
|
|
// GetAvailableWalletAddress 获得所有可用的钱包地址
|
|
func GetAvailableWalletAddress() ([]mdb.WalletAddress, error) {
|
|
var WalletAddressList []mdb.WalletAddress
|
|
err := dao.Mdb.Model(WalletAddressList).Where("status = ?", mdb.TokenStatusEnable).Find(&WalletAddressList).Error
|
|
return WalletAddressList, err
|
|
}
|
|
|
|
// GetAllWalletAddress 获得所有钱包地址
|
|
func GetAllWalletAddress() ([]mdb.WalletAddress, error) {
|
|
var WalletAddressList []mdb.WalletAddress
|
|
err := dao.Mdb.Model(WalletAddressList).Find(&WalletAddressList).Error
|
|
return WalletAddressList, err
|
|
}
|
|
|
|
// ChangeWalletAddressStatus 启用禁用钱包
|
|
func ChangeWalletAddressStatus(id uint64, status int) error {
|
|
err := dao.Mdb.Model(&mdb.WalletAddress{}).Where("id = ?", id).Update("status", status).Error
|
|
return err
|
|
}
|