I didn't have so much fun for a long time.

As a native American-English speaker, I would never say this, and if I heard anyone make this statement, I would immediately assume that person was not a native speaker. Instead, I would say something like, "I haven't had that much fun in [or for] a long time."

You don't need to call him. He lost his phone.

This one sounds fine to me. "He lost his phone" indicates a persistent, present situation, even without using the Present Perfect tense.