package repositories import ( "gitea.zjmud.com/phyer/rbac/models" "gorm.io/gorm" ) type PermissionRepository interface { Create(permission *models.Permission) error Update(permission *models.Permission) error Delete(permission *models.Permission) error FindByID(id uint) (*models.Permission, error) FindAll() ([]models.Permission, error) FindByName(name string) (*models.Permission, error) } type permissionRepository struct { *BaseRepository } func NewPermissionRepository(db *gorm.DB) PermissionRepository { return &permissionRepository{ BaseRepository: NewBaseRepository(db), } } func (r *permissionRepository) Create(permission *models.Permission) error { return r.BaseRepository.Create(permission) } func (r *permissionRepository) Update(permission *models.Permission) error { return r.BaseRepository.Update(permission) } func (r *permissionRepository) Delete(permission *models.Permission) error { return r.BaseRepository.Delete(permission) } func (r *permissionRepository) FindByID(id uint) (*models.Permission, error) { var permission models.Permission err := r.BaseRepository.FindByID(&permission, id) return &permission, err } func (r *permissionRepository) FindAll() ([]models.Permission, error) { var permissions []models.Permission err := r.BaseRepository.FindAll(&permissions) return permissions, err } func (r *permissionRepository) FindByName(name string) (*models.Permission, error) { var permission models.Permission err := r.db.Where("name = ?", name).First(&permission).Error return &permission, err }