Commit e76ff6a1 authored by szh's avatar szh

统计信息更新 增加历史表和info信息具体到字段

parent f8a4a973
package models package models
import (
"chain33-pai/service/pai_service"
"encoding/json"
"time"
"strings"
)
type RaspDevList struct { type RaspDevList struct {
Id int64 `json:"id"` Id int64 `json:"id"`
Addr string `json:"addr"` Addr string `json:"addr"`
...@@ -24,42 +17,8 @@ type RaspDevList struct { ...@@ -24,42 +17,8 @@ type RaspDevList struct {
Phone string `json:"phone"` Phone string `json:"phone"`
} }
func convertDevList(params map[string]string) RaspDevList { func UpdateDevList(rasp RaspDevList) error {
var pai pai_service.Pai
var rasp RaspDevList
rasp.Addr = params["addr"]
rasp.PaiVersion = params["version"]
err := json.Unmarshal([]byte(params["info"]),&pai)
if err != nil {
rasp.Error = err.Error()
return rasp
}
rasp.UpdateTime = time.Now().Unix()
if pai.Err == "" {
rasp.NodeStatus = 1
rasp.Height = pai.LastHeight
if !pai.WalletStatus.IsTicketLock {
rasp.WalletStatus = 2
} else if !pai.WalletStatus.IsWalletLock && pai.WalletStatus.IsTicketLock {
rasp.WalletStatus = 1
} else if pai.WalletStatus.IsTicketLock && pai.WalletStatus.IsWalletLock {
rasp.WalletStatus = 3
}
laddr := strings.Split(pai.NetInfo.Externaladdr,":")
if len(laddr) == 2 {
rasp.ExtIp = laddr[0]
} else {
rasp.ExtIp = pai.NetInfo.Externaladdr
}
rasp.BtyVersion = pai.BtyVersion.App
}
return rasp
}
func UpdateDevList(params map[string]string) error {
var dev RaspDevList var dev RaspDevList
rasp := convertDevList(params)
err := db.Where(RaspDevList{Addr: rasp.Addr}).Assign(rasp).FirstOrCreate(&dev).Error err := db.Where(RaspDevList{Addr: rasp.Addr}).Assign(rasp).FirstOrCreate(&dev).Error
if err != nil { if err != nil {
return err return err
......
...@@ -272,27 +272,11 @@ func GetUploadInfo(c *gin.Context){ ...@@ -272,27 +272,11 @@ func GetUploadInfo(c *gin.Context){
t := time.Now() t := time.Now()
date := t.Format("2006-01-02 15:04:05") date := t.Format("2006-01-02 15:04:05")
KP["date"] = date KP["date"] = date
history := &models.RaspDevHistory{ err = pai_service.UploadInfo(KP)
Addr:KP["addr"],
Info:KP["info"],
Addtime:date,
}
err = models.AddDevHistory(history)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil)
return
}
err = models.UpdateDevList(KP)
if err != nil { if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil) appG.Response(http.StatusOK, e.ERROR, nil)
return return
} }
err = models.UpdateDevVersion(KP)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil)
return
}
appG.Response(http.StatusOK, e.SUCCESS, nil) appG.Response(http.StatusOK, e.SUCCESS, nil)
} }
......
...@@ -11,6 +11,8 @@ import ( ...@@ -11,6 +11,8 @@ import (
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
"chain33-pai/models" "chain33-pai/models"
"time" "time"
"encoding/json"
) )
var ( var (
...@@ -196,4 +198,56 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) { ...@@ -196,4 +198,56 @@ func (p *Pai) GetTicketInfo(req *models.ReqTicketInfo) (*MinedInfo,error) {
info.MinedList = txsList 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"],
}
err := models.AddDevHistory(history)
if err != nil {
return err
}
rasp := convertDevList(KP)
err = models.UpdateDevList(rasp)
if err != nil {
return err
}
return nil
}
func convertDevList(params map[string]string) models.RaspDevList {
var pai Pai
var rasp models.RaspDevList
rasp.Addr = params["addr"]
rasp.PaiVersion = params["version"]
err := json.Unmarshal([]byte(params["info"]),&pai)
if err != nil {
rasp.Error = err.Error()
return rasp
}
rasp.UpdateTime = time.Now().Unix()
if pai.Err == "" {
rasp.NodeStatus = 1
rasp.Height = pai.LastHeight
if !pai.WalletStatus.IsTicketLock {
rasp.WalletStatus = 2
} else if !pai.WalletStatus.IsWalletLock && pai.WalletStatus.IsTicketLock {
rasp.WalletStatus = 1
} else if pai.WalletStatus.IsTicketLock && pai.WalletStatus.IsWalletLock {
rasp.WalletStatus = 3
}
laddr := strings.Split(pai.NetInfo.Externaladdr,":")
if len(laddr) == 2 {
rasp.ExtIp = laddr[0]
} else {
rasp.ExtIp = pai.NetInfo.Externaladdr
}
rasp.BtyVersion = pai.BtyVersion.App
}
return rasp
} }
\ No newline at end of file
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