init: 1.0.0
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package traffic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var _ Model = (*customTrafficModel)(nil)
|
||||
|
||||
type (
|
||||
Model interface {
|
||||
trafficModel
|
||||
customTrafficLogicModel
|
||||
}
|
||||
trafficModel interface {
|
||||
Insert(ctx context.Context, data *TrafficLog) error
|
||||
FindOne(ctx context.Context, id int64) (*TrafficLog, error)
|
||||
Update(ctx context.Context, data *TrafficLog) error
|
||||
Delete(ctx context.Context, id int64) error
|
||||
Transaction(ctx context.Context, fn func(db *gorm.DB) error) error
|
||||
}
|
||||
|
||||
customTrafficModel struct {
|
||||
*defaultTrafficModel
|
||||
}
|
||||
defaultTrafficModel struct {
|
||||
Conn *gorm.DB
|
||||
table string
|
||||
}
|
||||
)
|
||||
|
||||
func newTrafficModel(db *gorm.DB) *defaultTrafficModel {
|
||||
return &defaultTrafficModel{
|
||||
Conn: db,
|
||||
table: "`traffic`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultTrafficModel) Insert(ctx context.Context, data *TrafficLog) error {
|
||||
return m.Conn.WithContext(ctx).Create(&data).Error
|
||||
}
|
||||
|
||||
func (m *defaultTrafficModel) FindOne(ctx context.Context, id int64) (*TrafficLog, error) {
|
||||
var data TrafficLog
|
||||
err := m.Conn.WithContext(ctx).Model(&TrafficLog{}).Where("`id` = ?", id).First(&data).Error
|
||||
return &data, err
|
||||
}
|
||||
|
||||
func (m *defaultTrafficModel) Update(ctx context.Context, data *TrafficLog) error {
|
||||
return m.Conn.WithContext(ctx).Save(data).Error
|
||||
}
|
||||
|
||||
func (m *defaultTrafficModel) Delete(ctx context.Context, id int64) error {
|
||||
_, err := m.FindOne(ctx, id)
|
||||
if err != nil {
|
||||
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||||
return nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
return m.Conn.WithContext(ctx).Delete(&TrafficLog{}, id).Error
|
||||
}
|
||||
|
||||
func (m *defaultTrafficModel) Transaction(ctx context.Context, fn func(db *gorm.DB) error) error {
|
||||
return m.Conn.WithContext(ctx).Transaction(fn)
|
||||
}
|
||||
Reference in New Issue
Block a user