package repositories import ( "gitea.zjmud.com/phyer/rbac/models" "gorm.io/gorm" ) // BaseRepository 提供基础CRUD操作 type BaseRepository struct { db *gorm.DB } func NewBaseRepository(db *gorm.DB) *BaseRepository { return &BaseRepository{db: db} } // 事务支持 func (r *BaseRepository) Begin() *gorm.DB { return r.db.Begin() } func (r *BaseRepository) Commit(tx *gorm.DB) error { return tx.Commit().Error } func (r *BaseRepository) Rollback(tx *gorm.DB) error { return tx.Rollback().Error } // 基础CRUD操作 func (r *BaseRepository) Create(model interface{}) error { return r.db.Create(model).Error } func (r *BaseRepository) Update(model interface{}) error { return r.db.Save(model).Error } func (r *BaseRepository) Delete(model interface{}) error { return r.db.Delete(model).Error } func (r *BaseRepository) FindByID(model interface{}, id uint) error { return r.db.First(model, id).Error } func (r *BaseRepository) FindAll(models interface{}, preloads ...string) error { tx := r.db for _, preload := range preloads { tx = tx.Preload(preload) } return tx.Find(models).Error }