重新梳理了代码，修改了以前的接口