完成基本逻辑 待重构