Commit 9afb71e7 authored by szh's avatar szh

添加空头地址记录

parent a8c408b1
.idea/
.DS_Store
*.exe
build
runtime/*
!runtime/qrcode/bg.jpg
......
package pai_service
import (
"os/exec"
"fmt"
"io"
"strings"
"bufio"
"chain33-pai/models"
"chain33-pai/pkg/chain33"
"chain33-pai/pkg/logging"
"github.com/33cn/chain33/types"
"chain33-pai/models"
"fmt"
"io"
"os/exec"
"strings"
"time"
"github.com/33cn/chain33/types"
"encoding/json"
)
......@@ -19,7 +20,6 @@ var (
pai_serial string
)
type Pai struct {
Hardware string `json:"hardware"`
Revision string `json:"revision"`
......@@ -52,7 +52,6 @@ type MinedTxInfo struct {
BlockTime int64 `json:"block_time"`
}
type ReqMineTime struct {
Addr string `json:"addr" binding:"required"`
Flag string `json:"flag"`
......@@ -73,11 +72,11 @@ func (p *Pai) GetConfig() bool {
if p.Serial != "" {
return true
}
config ,err := getPaiConfig("cat","/proc/cpuinfo")
config, err := getPaiConfig("cat", "/proc/cpuinfo")
if err != nil {
return false
}
if _,ok := config["serial"];ok {
if _, ok := config["serial"]; ok {
p.Serial = config["serial"]
p.Hardware = config["hardware"]
p.Revision = config["revision"]
......@@ -88,13 +87,13 @@ func (p *Pai) GetConfig() bool {
func (p *Pai) GetDevstatus() error {
client := &chain33.PaiClient{}
peerinfo,err := client.GetPeerInfo()
peerinfo, err := client.GetPeerInfo()
if err != nil {
logging.Error("GetDevstatus peerinfo err",err)
logging.Error("GetDevstatus peerinfo err", err)
return err
}
for _,v := range peerinfo.Peers {
for _, v := range peerinfo.Peers {
if p.LastHeight < v.Header.Height {
p.LastHeight = v.Header.Height
}
......@@ -102,28 +101,28 @@ func (p *Pai) GetDevstatus() error {
p.LocalLastHeight = v.Header.Height
}
}
sync ,err := client.IsNtpClockSync()
sync, err := client.IsNtpClockSync()
if err != nil {
logging.Error("GetDevstatus IsNtpClockSync err",err)
logging.Error("GetDevstatus IsNtpClockSync err", err)
return err
}
p.IsNtpSync = sync.IsOk
netinfo,err := client.GetNetInfo()
netinfo, err := client.GetNetInfo()
if err != nil {
logging.Error("GetDevstatus GetNetInfo err",err)
logging.Error("GetDevstatus GetNetInfo err", err)
return err
}
p.NetInfo = netinfo
walletstatus,err := client.GetWalletStatus()
walletstatus, err := client.GetWalletStatus()
if err != nil {
logging.Error("GetDevstatus GetWalletStatus err",err)
logging.Error("GetDevstatus GetWalletStatus err", err)
return err
}
p.WalletStatus = walletstatus
return nil
}
func getPaiConfig(command string ,arg ...string) (config map[string]string,err error) {
func getPaiConfig(command string, arg ...string) (config map[string]string, err error) {
//获取操作系统版本信息
list := make(map[string]string, 0)
......@@ -132,19 +131,19 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
//fmt.Println(stdout)
if err != nil {
fmt.Println(err)
return nil,err
return nil, err
}
defer stdout.Close()
if err := cmd.Start(); err != nil {
fmt.Println(err)
return nil,err
return nil, err
}
rd := bufio.NewReader(stdout)
for {
line, err := rd.ReadString('\n')
if err!=nil || io.EOF==err{
if err != nil || io.EOF == err {
break
}else{
} else {
//fmt.Println("line", line)
l := strings.Split(line, ":")
......@@ -165,23 +164,23 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
return list, nil
}
func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo, error) {
var info MinedInfo
txsList := make([]*MinedTxInfo,0)
stat,err := models.GetAddr(req.Addr)
txsList := make([]*MinedTxInfo, 0)
stat, err := models.GetAddr(req.Addr)
if err != nil {
logging.Error("models.GetAddr err",err)
return nil,err
logging.Error("models.GetAddr err", err)
return nil, err
}
if req.Detail {
count,err := models.GetMinerTxsTotal(req.Addr)
count, err := models.GetMinerTxsTotal(req.Addr)
if err != nil {
logging.Error("models.GetMinerTxsCount err",err)
logging.Error("models.GetMinerTxsCount err", err)
}
txs,err := models.GetMinerTxs(req)
txs, err := models.GetMinerTxs(req)
if err != nil {
logging.Error("models.GetAddrs err",err)
return nil,err
logging.Error("models.GetAddrs err", err)
return nil, err
}
for _, v := range txs {
var t MinedTxInfo
......@@ -189,7 +188,7 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
t.Amount = v.Amount
t.BlockTime = v.Time
t.Hash = v.Hash
txsList = append(txsList,&t)
txsList = append(txsList, &t)
}
info.MinedTotal = count
}
......@@ -201,14 +200,14 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
info.ServeTime = time.Now().Unix()
info.MinedList = txsList
return &info,nil
return &info, nil
}
func UploadInfo(KP map[string]string) error {
history := &models.RaspDevHistory{
Addr:KP["addr"],
Info:KP["info"],
Addtime:KP["date"],
Addr: KP["addr"],
Info: KP["info"],
Addtime: KP["date"],
}
err := models.AddDevHistory(history)
......@@ -220,6 +219,30 @@ func UploadInfo(KP map[string]string) error {
if err != nil {
return err
}
if KP["accounts"] != "" {
err = convertAccountList(KP["accounts"])
if err != nil {
return err
}
}
return nil
}
func convertAccountList(accstr string) error {
accountList := make([]*models.RaspAddrAccounts, 0)
err := json.Unmarshal([]byte(accstr), &accountList)
if err != nil {
logging.Error("convertAccountList", "err", err)
return err
}
for _, v := range accountList {
v.Balance = v.Balance / 1e8
v.Frozen = v.Frozen / 1e8
err = models.InsertNewAccounts(v)
if err != nil {
return err
}
}
return nil
}
......@@ -228,7 +251,7 @@ func convertDevList(params map[string]string) models.RaspDevList {
var rasp models.RaspDevList
rasp.Addr = params["addr"]
rasp.PaiVersion = params["version"]
err := json.Unmarshal([]byte(params["info"]),&pai)
err := json.Unmarshal([]byte(params["info"]), &pai)
if err != nil {
rasp.Error = err.Error()
return rasp
......@@ -244,7 +267,7 @@ func convertDevList(params map[string]string) models.RaspDevList {
} else if pai.WalletStatus.IsTicketLock && pai.WalletStatus.IsWalletLock {
rasp.WalletStatus = 3
}
laddr := strings.Split(pai.NetInfo.Externaladdr,":")
laddr := strings.Split(pai.NetInfo.Externaladdr, ":")
if len(laddr) == 2 {
rasp.ExtIp = laddr[0]
} else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment