- if err := m.db.Model(&orm.NodeLiveness{}).
- Joins("join nodes on nodes.id = node_livenesses.node_id").
- Where("nodes.public_key = ?", publicKey).First(ormNodeLiveness).Error; err != nil {
+ err := m.db.Model(&orm.NodeLiveness{}).Joins("join nodes on nodes.id = node_livenesses.node_id").
+ Where("nodes.public_key = ? AND status != ?", ormNode.PublicKey, common.NodeOfflineStatus).Last(ormNodeLiveness).Error
+ if err == nil {
+ return m.db.Model(&orm.NodeLiveness{}).Where(ormNodeLiveness).UpdateColumn(&orm.NodeLiveness{
+ PingTimes: ormNodeLiveness.PingTimes + 1,
+ }).Error
+ } else if err != gorm.ErrRecordNotFound {