Commit 1af471cb authored by szh's avatar szh

update transaction sql

parent ffa7441f
...@@ -92,8 +92,9 @@ func DealBlock() error { ...@@ -92,8 +92,9 @@ func DealBlock() error {
logging.Error("dealTx err ",err) logging.Error("dealTx err ",err)
return err return err
} }
if rt1 != nil { if rt1 != nil && rt1.Miner != ""{
rt = rt1 rt.Miner = rt1.Miner
rt.Amount = rt1.Amount
} }
if rs1 != nil { if rs1 != nil {
rs.MinedTicketCount += rs1.MinedTicketCount rs.MinedTicketCount += rs1.MinedTicketCount
......
package models package models
import "github.com/jinzhu/gorm"
func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error { func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error {
tx := db.Begin() tx := db.Begin()
defer func() { defer func() {
...@@ -10,16 +12,40 @@ func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error { ...@@ -10,16 +12,40 @@ func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error {
if err := tx.Error; err != nil { if err := tx.Error; err != nil {
return err return err
} }
var res RaspMinerStat var prev RaspMinerStat
if err := tx.Where(&RaspMinerStat{Addr:rs.Addr}).Assign(&rs).FirstOrCreate(&res).Error;err != nil { var res RaspMinerTxs
tx.Rollback() err := tx.Model(&RaspMinerStat{}).Where(&RaspMinerStat{Addr:rs.Addr}).First(&prev).Error
return err if err != nil {
//不存在创建
if err == gorm.ErrRecordNotFound {
if err := tx.Create(&rs).Error;err != nil {
tx.Rollback()
return err
}
} else {
tx.Rollback()
return err
}
} else {
//存在 则更新状态
if err := tx.Model(&RaspMinerStat{}).Where("Addr = ? ",rs.Addr).Update(&RaspMinerStat{
MinedAmount:prev.MinedAmount+rs.MinedAmount,
MinedTicketCount:prev.MinedTicketCount+rs.MinedTicketCount,
MiningTicketCount:prev.MiningTicketCount+rs.MiningTicketCount,
Height:rs.Time,
Time:rs.Time,
}).Error;err != nil {
tx.Rollback()
return err
}
} }
if err := tx.Create(&rt).Error;err != nil {
if err := tx.Where(&RaspMinerTxs{Height:rt.Height}).Assign(&rt).FirstOrCreate(&res).Error;err != nil {
tx.Rollback() tx.Rollback()
return err return err
} }
if err := tx.Model(&RaspConfig{}).Update("Height",rt.Height).Error;err != nil {
if err := tx.Model(&RaspConfig{}).Where("config = ? ","height").Update("Height",rt.Height).Error;err != nil {
tx.Rollback() tx.Rollback()
return err return err
} }
......
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