Commit 1af471cb authored by szh's avatar szh

update transaction sql

parent ffa7441f
......@@ -92,8 +92,9 @@ func DealBlock() error {
logging.Error("dealTx err ",err)
return err
}
if rt1 != nil {
rt = rt1
if rt1 != nil && rt1.Miner != ""{
rt.Miner = rt1.Miner
rt.Amount = rt1.Amount
}
if rs1 != nil {
rs.MinedTicketCount += rs1.MinedTicketCount
......
package models
import "github.com/jinzhu/gorm"
func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error {
tx := db.Begin()
defer func() {
......@@ -10,16 +12,40 @@ func UpdateBlock(rt *RaspMinerTxs,rs *RaspMinerStat) error {
if err := tx.Error; err != nil {
return err
}
var res RaspMinerStat
if err := tx.Where(&RaspMinerStat{Addr:rs.Addr}).Assign(&rs).FirstOrCreate(&res).Error;err != nil {
var prev RaspMinerStat
var res RaspMinerTxs
err := tx.Model(&RaspMinerStat{}).Where(&RaspMinerStat{Addr:rs.Addr}).First(&prev).Error
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()
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()
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