
Sounds like spoilt a and much loved dog! He is ruling the roost there. Ignore the whining and take him for walks at varying times. If you yell at him not to whine or give in and take him out, he will have gained attention which is what he is wanting from you, so as hard as it is ignore him. Always on your terms not his.
As to the recall, find a good training club asap. Where do you live? Perhaps other members may know of a good club near you. I usually take my young pups out and walk across a field in a "zig-zag" path, so as my pup gets too far ahead I turn and back track, until it realises I am no longer there, then it returns to me. If I get a persistent little dog, who is determined to lead the way, I will walk where there are places to hide. I hide and the dog eventually panics and races back to look for me. I would never go after the dog, unless it was in danger or being a really big pita to someone. It doesn't do any good to follow as you are then being led, and once again he has got his own way.