Frequency Domain Correction of Frequency Offset or Doppler Frequency in LTE
Generally, a modulation with a complex sinusoid in time domain is equivalent to a shift in frequency domain (I find that quite intuitive, since it's the very definition of frequency shift).

That means that for $f_\text{offset} = M\frac{f_\text{sample}}{N_\text{FFT}},\quad M\in\mathbb Z$ you can just correct things by shifting the frequency domain vector left or right.

However, you also have to deal with the fractional frequency offset. If you don't, you'll get Inter-Carrier-Interference (ICI).

The only way to solve that is by interpolating the correct values from the values you have with sinc interpolation.

Sinc interpolation is easiest done by taking the IDFT, then modulating with a $e^{j2\pi f_\text{offset fractional} t}$, and then DFT'ing back.

In other words: that frequency correction is done in time domain.

So, do your fine frequency correction in time domain, not in frequency domain. Doing it in frequency domain requires at least the effort of going back to time domain.