The simple past did is used about something that was completed at some point in the past.
The present perfect have done is used about something that started some time ago and is still happening, or was completed some time ago but has a lasting effect.
In your example with did/have done, both are OK and there is not much difference between them. You might be more likely to use did if you are talking about a single action in the past and have done if the activity took some time extending until now, and/or it is expected to continue.
The difference is more noticable with a word like work:
I worked there for five years (but I no longer do) - past simple
I have worked there for five years (and I still do) - present perfect
I reserved a room (and then I cancelled the reservation) - past simple
I have reserved a room (and the reservation still stands) - present perfect