这部分代码应该封装成一个 fun