[48134037] fix crash when saving without assigning a JD to candiate 


This is caused by without checking the selection_opening_id == 0.

Fix it, and also code refactor to split the func from action 'api'

Signed-off-by: Henry Chen <hchen@vmware.com>