rbac/repositories/user_group.go
zhangkun9038@dingtalk.com 375b305ab4 aliyun-deepseek-r1
2025-02-20 11:29:57 +08:00

56 lines
1.4 KiB
Go

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