Полная зачистка legacy + закрытие fix24.1/fix24.2 + обновление логотипа
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"github.com/sirupsen/logrus"
|
||||
"gorm.io/gorm"
|
||||
"gorm.io/gorm/clause"
|
||||
"hy2xs-admin/model/constant"
|
||||
"hy2xs-admin/model/entity"
|
||||
"time"
|
||||
)
|
||||
|
||||
func SaveTrafficSample(sample entity.TrafficSample) error {
|
||||
if tx := sqliteDB.Save(&sample); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func UpsertTrafficAggregateHourly(peerId int64, hourStart int64, rxBytes int64, txBytes int64) error {
|
||||
if rxBytes == 0 && txBytes == 0 {
|
||||
return nil
|
||||
}
|
||||
agg := entity.TrafficAggregateHourly{
|
||||
PeerId: &peerId,
|
||||
HourStart: &hourStart,
|
||||
RxBytes: &rxBytes,
|
||||
TxBytes: &txBytes,
|
||||
}
|
||||
now := time.Now()
|
||||
if tx := sqliteDB.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "peer_id"}, {Name: "hour_start"}},
|
||||
DoUpdates: clause.Assignments(map[string]interface{}{
|
||||
"rx_bytes": gormExprAdd("rx_bytes", rxBytes),
|
||||
"tx_bytes": gormExprAdd("tx_bytes", txBytes),
|
||||
"update_time": now,
|
||||
}),
|
||||
}).Create(&agg); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func UpsertTrafficAggregateDaily(peerId int64, dayStart int64, rxBytes int64, txBytes int64) error {
|
||||
if rxBytes == 0 && txBytes == 0 {
|
||||
return nil
|
||||
}
|
||||
agg := entity.TrafficAggregateDaily{
|
||||
PeerId: &peerId,
|
||||
DayStart: &dayStart,
|
||||
RxBytes: &rxBytes,
|
||||
TxBytes: &txBytes,
|
||||
}
|
||||
now := time.Now()
|
||||
if tx := sqliteDB.Clauses(clause.OnConflict{
|
||||
Columns: []clause.Column{{Name: "peer_id"}, {Name: "day_start"}},
|
||||
DoUpdates: clause.Assignments(map[string]interface{}{
|
||||
"rx_bytes": gormExprAdd("rx_bytes", rxBytes),
|
||||
"tx_bytes": gormExprAdd("tx_bytes", txBytes),
|
||||
"update_time": now,
|
||||
}),
|
||||
}).Create(&agg); tx.Error != nil {
|
||||
logrus.Errorf("%v", tx.Error)
|
||||
return errors.New(constant.SysError)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func gormExprAdd(column string, delta int64) interface{} {
|
||||
return gorm.Expr(fmt.Sprintf("%s + ?", column), delta)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user