fix:fix macro use other macro & change switch to action_table