I modify some details for convenience to understand ,now it is a complete demo.