Commit 9c84ca8d authored by szh's avatar szh

add minetime

parent 40116077
...@@ -10,7 +10,7 @@ Target Server Type : MYSQL ...@@ -10,7 +10,7 @@ Target Server Type : MYSQL
Target Server Version : 50553 Target Server Version : 50553
File Encoding : 65001 File Encoding : 65001
Date: 2019-10-09 11:53:20 Date: 2019-10-11 11:25:55
*/ */
SET FOREIGN_KEY_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
...@@ -37,6 +37,8 @@ CREATE TABLE `rasp_miner_stat` ( ...@@ -37,6 +37,8 @@ CREATE TABLE `rasp_miner_stat` (
`total` bigint(20) DEFAULT '0' COMMENT 'ticket总额', `total` bigint(20) DEFAULT '0' COMMENT 'ticket总额',
`balance` bigint(20) DEFAULT '0' COMMENT 'ticket合约中余额', `balance` bigint(20) DEFAULT '0' COMMENT 'ticket合约中余额',
`frozen` bigint(20) DEFAULT '0' COMMENT 'ticket合约中冻结得余额', `frozen` bigint(20) DEFAULT '0' COMMENT 'ticket合约中冻结得余额',
`miner_start_time` int(11) DEFAULT '0' COMMENT '开始挖矿记录时间 前端用 ',
`miner_end_time` int(11) DEFAULT '0' COMMENT '挖矿中止时间 前端用',
`height` bigint(20) DEFAULT '0', `height` bigint(20) DEFAULT '0',
`time` int(11) DEFAULT '0', `time` int(11) DEFAULT '0',
PRIMARY KEY (`addr`) PRIMARY KEY (`addr`)
......
...@@ -76,6 +76,7 @@ func SyncBlock() { ...@@ -76,6 +76,7 @@ func SyncBlock() {
} }
statList = append(statList,stat) statList = append(statList,stat)
txsList = append(txsList,txs) txsList = append(txsList,txs)
logging.Info("DealBlock",height)
}(height) }(height)
} }
//db.SetMainNetHeight(int(processHeight + types.MaxProcessBlocks + 1)) //db.SetMainNetHeight(int(processHeight + types.MaxProcessBlocks + 1))
...@@ -106,8 +107,12 @@ func SyncBlock() { ...@@ -106,8 +107,12 @@ func SyncBlock() {
} }
if len(txsList) != int(maxDownload) || len(txsList) != len(statList) { if len(txsList) != int(maxDownload) || len(txsList) != len(statList) {
logging.Error("txsList",len(txsList),"txsMap",len(txsMap),"statList",len(statList)) logging.Error("txsList",len(txsList),"txsMap",len(txsMap),"statList",len(statList))
logging.Error(txsList) for _, v:= range txsList {
logging.Error(txsMap) logging.Info("==txslist",*v)
}
for _, v:= range statList {
logging.Info("==statList",*v)
}
panic("exception txs not eq expect") panic("exception txs not eq expect")
} }
err := models.UpdateBlocks(txsMap,statMap,processHeight+maxDownload) err := models.UpdateBlocks(txsMap,statMap,processHeight+maxDownload)
......
...@@ -13,6 +13,8 @@ type RaspMinerStat struct { ...@@ -13,6 +13,8 @@ type RaspMinerStat struct {
Total int64 `json:"total"` Total int64 `json:"total"`
Balance int64 `json:"balance"` Balance int64 `json:"balance"`
Frozen int64 `json:"frozen"` Frozen int64 `json:"frozen"`
MinerStartTime int64 `json:"miner_start_time"`
MinerEndTime int64 `json:"miner_end_time"`
Height int64 `json:"height"` Height int64 `json:"height"`
Time int64 `json:"time"` Time int64 `json:"time"`
} }
...@@ -42,16 +44,6 @@ func GetAddrTotal(maps interface{}) (int, error) { ...@@ -42,16 +44,6 @@ func GetAddrTotal(maps interface{}) (int, error) {
return count, nil return count, nil
} }
// GetAddrs gets a list of articles based on paging constraints
func GetAddrs(pageNum int, pageSize int, maps interface{}) ([]*RaspMinerStat, error) {
var stat []*RaspMinerStat
err := db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&stat).Error
if err != nil && err != gorm.ErrRecordNotFound {
return nil, err
}
return stat, nil
}
// GetAddr Get a single addr based on ID // GetAddr Get a single addr based on ID
func GetAddr(addr string) (*RaspMinerStat, error) { func GetAddr(addr string) (*RaspMinerStat, error) {
......
...@@ -39,7 +39,7 @@ func GetMinerTxsTotal(addr string) (int, error) { ...@@ -39,7 +39,7 @@ func GetMinerTxsTotal(addr string) (int, error) {
} }
// GetAddrs gets a list of articles based on paging constraints // GetAddrs gets a list of articles based on paging constraints
func GetMinerTxs(pageNum int, pageSize int, maps interface{}) ([]*RaspMinerTxs, error) { func GetMinerTxs(pageNum int32, pageSize int32, maps interface{}) ([]*RaspMinerTxs, error) {
var txs []*RaspMinerTxs var txs []*RaspMinerTxs
err := db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&txs).Error err := db.Where(maps).Offset(pageNum).Limit(pageSize).Find(&txs).Error
if err != nil && err != gorm.ErrRecordNotFound { if err != nil && err != gorm.ErrRecordNotFound {
......
...@@ -6,8 +6,22 @@ import ( ...@@ -6,8 +6,22 @@ import (
"chain33-pai/pkg/app" "chain33-pai/pkg/app"
"chain33-pai/pkg/e" "chain33-pai/pkg/e"
"chain33-pai/service/pai_service" "chain33-pai/service/pai_service"
"chain33-pai/service/stat_service"
) )
type ReqTicketInfo struct {
Addr string `json:"addr" binding:"requried"`
Page int32 `json:"page"`
Pageszie int32 `json:"pageszie"`
Detail bool `json:"detail"`
}
type ReqMineTime struct {
Addr string `json:"addr" binding:"requried"`
StartTime int64 `json:"start_time"`
EndTime int64 `json:"end_time"`
}
func GetDevdetail(c *gin.Context) { func GetDevdetail(c *gin.Context) {
appG := app.Gin{C: c} appG := app.Gin{C: c}
var pai pai_service.Pai var pai pai_service.Pai
...@@ -33,10 +47,37 @@ func GetDevstatus(c *gin.Context) { ...@@ -33,10 +47,37 @@ func GetDevstatus(c *gin.Context) {
func GetTicketInfo(c *gin.Context) { func GetTicketInfo(c *gin.Context) {
appG := app.Gin{C: c} appG := app.Gin{C: c}
var req ReqTicketInfo
c.BindJSON(&req)
if req.Detail {
if req.Page == 0 {
req.Page = int32(1)
}
if req.Pageszie == 0 {
req.Pageszie = int32(10)
}
}
var pai pai_service.Pai var pai pai_service.Pai
info,err := pai.GetTicketInfo() info,err := pai.GetTicketInfo(&req)
if err != nil { if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil) appG.Response(http.StatusOK, e.ERROR, nil)
} }
appG.Response(http.StatusOK, e.SUCCESS, info) appG.Response(http.StatusOK, e.SUCCESS, info)
} }
func RecordMineTime(c *gin.Context) {
appG := app.Gin{C: c}
var req ReqMineTime
err := c.BindJSON(&req)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil)
}
var stat stat_service.RaspMinerStat
err = stat.SetMineTime(req.Addr,req.StartTime,req.EndTime)
if err != nil {
appG.Response(http.StatusOK, e.ERROR, nil)
}
appG.Response(http.StatusOK, e.SUCCESS, nil)
}
\ No newline at end of file
...@@ -23,6 +23,7 @@ func InitRouter() *gin.Engine { ...@@ -23,6 +23,7 @@ func InitRouter() *gin.Engine {
apiv1 := r.Group("/pai") apiv1 := r.Group("/pai")
//获取树莓派基本信息 //获取树莓派基本信息
apiv1.POST("/ticketinfo",v1.GetTicketInfo) apiv1.POST("/ticketinfo",v1.GetTicketInfo)
apiv1.POST("/minetime",v1.RecordMineTime)
//apiv1.Use(jwt.JWT()) //apiv1.Use(jwt.JWT())
//{ //{
// //
......
...@@ -9,6 +9,8 @@ import ( ...@@ -9,6 +9,8 @@ import (
"chain33-pai/pkg/chain33" "chain33-pai/pkg/chain33"
"chain33-pai/pkg/logging" "chain33-pai/pkg/logging"
"github.com/33cn/chain33/types" "github.com/33cn/chain33/types"
"chain33-pai/routers/api/v1"
"chain33-pai/models"
) )
var ( var (
...@@ -28,8 +30,11 @@ type Pai struct { ...@@ -28,8 +30,11 @@ type Pai struct {
} }
type MinedInfo struct { type MinedInfo struct {
Mined int64 `json:"mined"` MinedAmount int64 `json:"mined_amount"`
Tickets int64 `json:"tickets"` MinedTicketCount int64 `json:"mined_ticket_count"`
MiningTicketCount int64 `json:"mining_ticket_count"`
MinerStartTime int64 `json:"miner_start_time"`
MinerEndTime int64 `json:"miner_end_time"`
MinedList []*MinedTxInfo `json:"mined_list"` MinedList []*MinedTxInfo `json:"mined_list"`
} }
...@@ -138,6 +143,33 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e ...@@ -138,6 +143,33 @@ func getPaiConfig(command string ,arg ...string) (config map[string]string,err e
return list, nil return list, nil
} }
func (p *Pai) GetTicketInfo() (*MinedInfo,error) { func (p *Pai) GetTicketInfo(req *v1.ReqTicketInfo) (*MinedInfo,error) {
return nil,nil var info MinedInfo
txsList := make([]*MinedTxInfo,0)
stat,err := models.GetAddr(req.Addr)
if err != nil {
logging.Error("models.GetAddr err",err)
return nil,err
}
if req.Detail {
txs,err := models.GetMinerTxs(req.Page,req.Pageszie,map[string]interface{}{"addr":req.Addr})
if err != nil {
logging.Error("models.GetAddrs err",err)
return nil,err
}
for _, v := range txs {
var t MinedTxInfo
t.Height = v.Height
t.Amount = v.Amount
t.BlockTime = v.Time
txsList = append(txsList,&t)
}
}
info.MinedAmount = stat.MinedAmount
info.MinedTicketCount = stat.MinedTicketCount
info.MiningTicketCount = stat.MiningTicketCount
info.MinerStartTime = stat.MinerStartTime
info.MinerEndTime = stat.MinerEndTime
info.MinedList = txsList
return &info,nil
} }
\ 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