完整重构了一下业务代码,感觉还是挺有意义的