has/have done是现在完成时,与过去时的区别是结果对现在所造成的影响,
has/have been done是现在完成时的被动语态,had done是过去完成时,动作发生在过去的过去,had been done是过去完成时的被动语态,