完整代码，上APP前的最后调试通过