整理了一下逻辑