对之前做的函数逻辑进行重构