There is no silver bullet so you won't get the "correct" answer here. It depends on your specific scenario.
I personally try to avoid adding so many layers unless very necessary, IMO, you need a very strong motivation to have so many abstraction layers since normally you can create a suitable architecture with less components.
I'd say that for an average application you don't even need a formal service layer as it ends up being a bunch of empty methods that just call another method in your repository.
If you need to use a service layer may be more suitable to have one service class per domain entity or per group of entities. Don't think that having a service class per controller make a lot of sense. You could add some helper classes to cover common controller logic if necessary.
The problem I see with with your approach is that you service layer should be part of the model and don't think that making it so dependent on your controller layer is a good strategy.