package repository import ( "context" "time" "next-terminal/server/model" ) var FilesystemLogRepository = new(filesystemLogRepository) type filesystemLogRepository struct { baseRepository } func (r filesystemLogRepository) FindByPage(c context.Context, pageIndex, pageSize int, action string) (o []model.FilesystemLog, total int64, err error) { m := model.FilesystemLog{} db := r.GetDB(c).Table(m.TableName()) dbCounter := r.GetDB(c).Table(m.TableName()) if action != "" { db = db.Where("action = ?", action) dbCounter = dbCounter.Where("action = ?", action) } err = dbCounter.Count(&total).Error if err != nil { return nil, 0, err } err = db.Order("created desc").Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&o).Error if o == nil { o = make([]model.FilesystemLog, 0) } return } func (r filesystemLogRepository) Create(c context.Context, o *model.FilesystemLog) error { return r.GetDB(c).Create(o).Error } func (r filesystemLogRepository) DeleteById(c context.Context, id string) error { return r.GetDB(c).Where("id = ?", id).Delete(&model.FilesystemLog{}).Error } func (r filesystemLogRepository) DeleteAll(c context.Context) error { return r.GetDB(c).Where("1 = 1").Delete(&model.FilesystemLog{}).Error } func (r filesystemLogRepository) FindOutTimeLog(c context.Context, dayLimit int) (o []model.FilesystemLog, err error) { limitTime := time.Now().Add(time.Duration(-dayLimit*24) * time.Hour) err = r.GetDB(c).Where("created < ?", limitTime).Find(&o).Error return }