Over/Under Sampling for Multi-classification

I'm trying to apply xgboost and random forest for over and under sampling

For imbalanced data:

train shape -> (199991, 23)


However, reverse my expectation. The accuracy went down for both cases.

Questions:

1. Is under and over sampling always not good?
2. What else should I consider when applying over and under sampling?