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 }