Commit 9afb71e7 authored by szh's avatar szh

添加空头地址记录

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