45 lines
930 B
Go
45 lines
930 B
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
|
|
"management/internal/erpserver/model/system"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type RoleStore interface {
|
|
Create(ctx context.Context, obj *system.Role) error
|
|
Update(ctx context.Context, obj *system.Role) error
|
|
Get(ctx context.Context, id int32) (*system.Role, error)
|
|
}
|
|
|
|
type roleStore struct {
|
|
db *gorm.DB
|
|
}
|
|
|
|
var _ RoleStore = (*roleStore)(nil)
|
|
|
|
func NewRoleStore(db *gorm.DB) *roleStore {
|
|
return &roleStore{
|
|
db: db,
|
|
}
|
|
}
|
|
|
|
func (s *roleStore) Create(ctx context.Context, obj *system.Role) error {
|
|
return s.db.WithContext(ctx).Create(obj).Error
|
|
}
|
|
|
|
func (s *roleStore) Update(ctx context.Context, obj *system.Role) error {
|
|
return s.db.WithContext(ctx).Save(obj).Error
|
|
}
|
|
|
|
func (s *roleStore) Get(ctx context.Context, id int32) (*system.Role, error) {
|
|
var role system.Role
|
|
err := s.db.WithContext(ctx).Where("id =?", id).First(&role).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &role, nil
|
|
}
|