Arduino - reading translated voltage gain from transimpedance amplifier
You have your photodiode upside down according to your circuit.
It should be like this: -

So now, with the photodiode trying to take current from the inverting input node, the output voltage of the op-amp has to rise above 0 volts to maintain that inverting input at the same potential as the non-inverting input (connected to 0 volts) and feed the right current into the photodiode. See also this: -

Picture taken from Photodiode Amplifier Design using Photodiode Wizard produced by Analog Devices.
See also this Q and A for possible help.

I used the LM358 to amplify the photocurrent into voltage gain

The LM358 has an input bias current of typically 50 nA and this current through the 330 kohm feedback resistor will produce an error voltage of 16.5 mV at the output. Bias currents (for BJT based op-amps) can vary a bit with temperature and also the maximum could be as high as 250 nA. If you chose a FET based op-amp you will instantly get bias currents that are a fraction of those needed by BJT based op-amps but, their bias current doubles every 10 degC rise. Something to consider.
So be aware that the LM358 isn't going to be a very good op-amp choice if you need accuracy.