update achievement gain date to submission date(not grading date)

1. It makes the leaderboard more fair.
2. Tested properly, it works.
Or I can directly parse an argument from exp transaction to here, it will be efficient, but looks even ugly.

Otherwise if we want to get submit date from achievement, there seems to be no better way, because submission is so "far away" from achievement.