补充部分代码逻辑  测试部分未完成