improve async with Q
update achievement usage
improve achievement query
Merge branch 'achievement'