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 }