So dd3 (just 5) has a friend to play after school today. We get home, dd starts picking the daffodils. I gave her a warning and told her clearly not to pick another one. So she deliberately disobeyed me and picked another one. Now I know I totally over-reacted but we've been having a LOT of trouble with not doing as she's told and she'd already pushed and shoved dd2 in the car on the way home. So I smacked her
I told her to go upstairs and she'd have to miss x or y for being naughty. She ran upstairs in tears.
I went to get her after a while and said she could come down now. Went outside with dd2 and friend, she was still a bit sulky etc. Bit later they were planting seeds in pots. Dd was being not very nice to friend, not letting her share, saying her own pot was the nicest etc. Tried to ignore it and carry on. Then dd trips on step resulting in the tiniest graze and drop of blood. She refused a plaster and literally cried non-stop for about half an hour. In the meantime the friend looked a bit confused by it all but had a nice time playing with dd2!
So I served up supper at which point the friend looked a bit tearful and said she wanted mummy and to go home
Felt like the worst mother in the world at this point. However managed to distract her, supper went ok, had ice cream etc and a play in the garden. Dd was just about ok by now but friend preferred to play with dd2 than her!
Mum came to pick up, I apologised about dd's behaviour, she said not to worry. But I feel really crap. I'm worried that:
a) I have NO patience with dd3 and something makes me lash out with her.
b) her general behaviour is terrible, hitting/pushing/pinching, not doing as she's told etc
c) she'll become the type of child no-one wants to play with 
d) her behaviour gets me very down sometimes and that affects our relationship. I really don't want this to become a self-fulfilling prophecy.
You'd have thought I'd know what I was doing by now but she challenges me to the limit.
So honestly, what do I do?