提供文件上传及静态服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.5 KiB

package service
import (
"encoding/json"
"errors"
"fmt"
"io/ioutil"
"net/http"
"service-api/global"
"service-api/model"
"service-api/utils"
"strings"
)
//获取用户钱包
func GetUserWallet(userID string) (interface{}, error) {
var (
err error
data model.UserWalletDesc
)
err = global.MG_DB.Model(&model.UserWallet{}).Where("user_id=?", userID).Find(&data).Error
if err != nil {
return data, errors.New("Wallet information not found!")
}
return data, nil
}
//创建用户钱包
func AddUserWallet(userID string) (interface{}, error) {
var (
err error
data model.UserWallet
res model.Account
)
password := utils.GetInvitationLen(10)
var reqMap = make(map[string]interface{}, 0)
reqMap["password"] = password
mJson, _ := json.Marshal(reqMap)
mString := string(mJson)
resp, err := http.Post("http://139.196.93.111:32357/account", "Content-Type:application/json;charset=utf-8", strings.NewReader(mString))
if err != nil {
return data, errors.New("Failed to generate Wallet!")
}
robots, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println(err)
}
resp.Body.Close()
if err3 := json.Unmarshal(robots, &res); err3 != nil {
return data, errors.New("Failed to generate Wallet!")
}
data.WalletAddress = res.Address
data.WalletName = res.ID
data.PrivateKey = res.PrivateKey
data.PublicKey = res.PublicKey
data.Password = password
data.WalletBalance = 0
err = global.MG_DB.Model(&model.UserWallet{}).Create(&data).Error
if err != nil {
return data, errors.New("Failed to generate Wallet!")
}
return data, nil
}