gitextract_r9kzrcto/ ├── .gitignore ├── LICENSE ├── README.md ├── admin/ │ ├── .gitignore │ ├── Dockerfile │ ├── LICENSE │ ├── Makefile │ ├── api/ │ │ ├── admin/ │ │ │ └── v1/ │ │ │ ├── admin.pb.go │ │ │ ├── admin.pb.validate.go │ │ │ ├── admin.proto │ │ │ ├── admin_grpc.pb.go │ │ │ ├── admin_http.pb.go │ │ │ ├── error_reason.pb.go │ │ │ ├── error_reason.pb.validate.go │ │ │ ├── error_reason.proto │ │ │ └── error_reason_errors.pb.go │ │ └── service/ │ │ └── user/ │ │ └── v1/ │ │ ├── user.pb.go │ │ ├── user.pb.validate.go │ │ ├── user.proto │ │ └── user_grpc.pb.go │ ├── cmd/ │ │ └── admin/ │ │ ├── main.go │ │ ├── wire.go │ │ └── wire_gen.go │ ├── configs/ │ │ ├── config.yaml │ │ └── registry.yaml │ ├── generate.go │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── biz/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── biz.go │ │ │ └── user.go │ │ ├── conf/ │ │ │ ├── conf.pb.go │ │ │ └── conf.proto │ │ ├── data/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── data.go │ │ │ └── user.go │ │ ├── pkg/ │ │ │ ├── captcha/ │ │ │ │ └── captcha.go │ │ │ └── middleware/ │ │ │ └── auth/ │ │ │ └── auth.go │ │ ├── server/ │ │ │ ├── http.go │ │ │ └── server.go │ │ └── service/ │ │ ├── README.md │ │ ├── service.go │ │ └── user.go │ ├── openapi.yaml │ └── third_party/ │ ├── README.md │ ├── errors/ │ │ └── errors.proto │ ├── google/ │ │ ├── api/ │ │ │ ├── annotations.proto │ │ │ ├── client.proto │ │ │ ├── field_behavior.proto │ │ │ ├── http.proto │ │ │ └── httpbody.proto │ │ └── protobuf/ │ │ └── descriptor.proto │ ├── protoc-gen-openapiv2/ │ │ └── options/ │ │ ├── annotations.proto │ │ └── openapiv2.proto │ └── validate/ │ ├── README.md │ └── validate.proto ├── service/ │ ├── cart/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── api/ │ │ │ └── cart/ │ │ │ └── v1/ │ │ │ ├── cart.pb.go │ │ │ ├── cart.pb.validate.go │ │ │ ├── cart.proto │ │ │ └── cart_grpc.pb.go │ │ ├── cmd/ │ │ │ └── cart/ │ │ │ ├── main.go │ │ │ ├── wire.go │ │ │ └── wire_gen.go │ │ ├── configs/ │ │ │ ├── config.yaml │ │ │ └── registry.yaml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── internal/ │ │ │ ├── biz/ │ │ │ │ ├── README.md │ │ │ │ ├── biz.go │ │ │ │ └── cart.go │ │ │ ├── conf/ │ │ │ │ ├── conf.pb.go │ │ │ │ └── conf.proto │ │ │ ├── data/ │ │ │ │ ├── README.md │ │ │ │ ├── cart.go │ │ │ │ ├── cart_test.go │ │ │ │ ├── data.go │ │ │ │ ├── data_suite_test.go │ │ │ │ └── docker_mysql.go │ │ │ ├── domain/ │ │ │ │ └── cart.go │ │ │ ├── server/ │ │ │ │ ├── grpc.go │ │ │ │ └── server.go │ │ │ └── service/ │ │ │ ├── README.md │ │ │ ├── cart.go │ │ │ └── service.go │ │ ├── openapi.yaml │ │ └── third_party/ │ │ ├── README.md │ │ ├── errors/ │ │ │ └── errors.proto │ │ ├── google/ │ │ │ ├── api/ │ │ │ │ ├── annotations.proto │ │ │ │ ├── client.proto │ │ │ │ ├── field_behavior.proto │ │ │ │ ├── http.proto │ │ │ │ └── httpbody.proto │ │ │ └── protobuf/ │ │ │ ├── any.proto │ │ │ ├── api.proto │ │ │ ├── compiler/ │ │ │ │ └── plugin.proto │ │ │ ├── descriptor.proto │ │ │ ├── duration.proto │ │ │ ├── empty.proto │ │ │ ├── field_mask.proto │ │ │ ├── source_context.proto │ │ │ ├── struct.proto │ │ │ ├── timestamp.proto │ │ │ ├── type.proto │ │ │ └── wrappers.proto │ │ ├── openapi/ │ │ │ └── v3/ │ │ │ ├── annotations.proto │ │ │ └── openapi.proto │ │ └── validate/ │ │ ├── README.md │ │ └── validate.proto │ ├── goods/ │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── README.md │ │ ├── api/ │ │ │ └── goods/ │ │ │ └── v1/ │ │ │ ├── error_reason.pb.go │ │ │ ├── error_reason.pb.validate.go │ │ │ ├── error_reason.proto │ │ │ ├── goods.pb.go │ │ │ ├── goods.pb.validate.go │ │ │ ├── goods.proto │ │ │ └── goods_grpc.pb.go │ │ ├── cmd/ │ │ │ └── goods/ │ │ │ ├── main.go │ │ │ ├── wire.go │ │ │ └── wire_gen.go │ │ ├── configs/ │ │ │ ├── config.yaml │ │ │ └── registry.yaml │ │ ├── generate.go │ │ ├── go.mod │ │ ├── go.sum │ │ ├── internal/ │ │ │ ├── biz/ │ │ │ │ ├── README.md │ │ │ │ ├── biz.go │ │ │ │ ├── brand.go │ │ │ │ ├── category.go │ │ │ │ ├── es_goods.go │ │ │ │ ├── goods.go │ │ │ │ ├── goods_attr.go │ │ │ │ ├── goods_image.go │ │ │ │ ├── goods_sku.go │ │ │ │ ├── goods_type.go │ │ │ │ ├── inventory.go │ │ │ │ └── specifications.go │ │ │ ├── conf/ │ │ │ │ ├── conf.pb.go │ │ │ │ └── conf.proto │ │ │ ├── data/ │ │ │ │ ├── README.md │ │ │ │ ├── base.go │ │ │ │ ├── brand.go │ │ │ │ ├── category.go │ │ │ │ ├── data.go │ │ │ │ ├── entity/ │ │ │ │ │ └── goods.go │ │ │ │ ├── es_goods.go │ │ │ │ ├── good_type.go │ │ │ │ ├── goods.go │ │ │ │ ├── goods_attr.go │ │ │ │ ├── goods_image.go │ │ │ │ ├── goods_sku.go │ │ │ │ ├── inventory.go │ │ │ │ └── specifications.go │ │ │ ├── domain/ │ │ │ │ ├── brand.go │ │ │ │ ├── es_goods.go │ │ │ │ ├── goods.go │ │ │ │ ├── goods_attr.go │ │ │ │ ├── goods_sku.go │ │ │ │ ├── goods_type.go │ │ │ │ ├── inventory.go │ │ │ │ └── specification.go │ │ │ ├── server/ │ │ │ │ ├── grpc.go │ │ │ │ └── server.go │ │ │ └── service/ │ │ │ ├── README.md │ │ │ ├── brand.go │ │ │ ├── category.go │ │ │ ├── goods.go │ │ │ ├── goods_attr.go │ │ │ ├── goods_type.go │ │ │ ├── service.go │ │ │ └── specifications.go │ │ ├── openapi.yaml │ │ └── third_party/ │ │ ├── README.md │ │ ├── errors/ │ │ │ └── errors.proto │ │ ├── google/ │ │ │ ├── api/ │ │ │ │ ├── annotations.proto │ │ │ │ ├── client.proto │ │ │ │ ├── field_behavior.proto │ │ │ │ ├── http.proto │ │ │ │ └── httpbody.proto │ │ │ └── protobuf/ │ │ │ ├── any.proto │ │ │ ├── api.proto │ │ │ ├── compiler/ │ │ │ │ └── plugin.proto │ │ │ ├── descriptor.proto │ │ │ ├── duration.proto │ │ │ ├── empty.proto │ │ │ ├── field_mask.proto │ │ │ ├── source_context.proto │ │ │ ├── struct.proto │ │ │ ├── timestamp.proto │ │ │ ├── type.proto │ │ │ └── wrappers.proto │ │ ├── openapi/ │ │ │ └── v3/ │ │ │ ├── annotations.proto │ │ │ └── openapi.proto │ │ └── validate/ │ │ ├── README.md │ │ └── validate.proto │ ├── order/ │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── api/ │ │ │ ├── cart/ │ │ │ │ └── v1/ │ │ │ │ ├── cart.pb.go │ │ │ │ ├── cart.pb.validate.go │ │ │ │ ├── cart.proto │ │ │ │ └── cart_grpc.pb.go │ │ │ ├── goods/ │ │ │ │ └── v1/ │ │ │ │ ├── error_reason.pb.go │ │ │ │ ├── error_reason.pb.validate.go │ │ │ │ ├── error_reason.proto │ │ │ │ ├── goods.pb.go │ │ │ │ ├── goods.pb.validate.go │ │ │ │ ├── goods.proto │ │ │ │ └── goods_grpc.pb.go │ │ │ ├── order/ │ │ │ │ └── v1/ │ │ │ │ ├── error_reason.pb.go │ │ │ │ ├── error_reason.pb.validate.go │ │ │ │ ├── error_reason.proto │ │ │ │ ├── order.pb.go │ │ │ │ ├── order.pb.validate.go │ │ │ │ ├── order.proto │ │ │ │ └── order_grpc.pb.go │ │ │ └── user/ │ │ │ └── v1/ │ │ │ ├── user.pb.go │ │ │ ├── user.pb.validate.go │ │ │ ├── user.proto │ │ │ └── user_grpc.pb.go │ │ ├── cmd/ │ │ │ └── order/ │ │ │ ├── main.go │ │ │ ├── wire.go │ │ │ └── wire_gen.go │ │ ├── configs/ │ │ │ ├── config.yaml │ │ │ └── registry.yaml │ │ ├── go.mod │ │ ├── go.sum │ │ ├── internal/ │ │ │ ├── biz/ │ │ │ │ ├── README.md │ │ │ │ ├── biz.go │ │ │ │ └── order.go │ │ │ ├── conf/ │ │ │ │ ├── conf.pb.go │ │ │ │ └── conf.proto │ │ │ ├── data/ │ │ │ │ ├── data.go │ │ │ │ ├── data_suite_test.go │ │ │ │ ├── docker_mysql.go │ │ │ │ ├── order.go │ │ │ │ ├── orderaddress.go │ │ │ │ ├── ordergoods.go │ │ │ │ └── orderpay.go │ │ │ ├── domain/ │ │ │ │ ├── order.go │ │ │ │ └── orderaddress.go │ │ │ ├── mocks/ │ │ │ │ └── mrepo/ │ │ │ │ └── order.go │ │ │ ├── server/ │ │ │ │ ├── grpc.go │ │ │ │ └── server.go │ │ │ └── service/ │ │ │ ├── README.md │ │ │ ├── order.go │ │ │ └── service.go │ │ ├── openapi.yaml │ │ └── third_party/ │ │ ├── README.md │ │ ├── errors/ │ │ │ └── errors.proto │ │ ├── google/ │ │ │ ├── api/ │ │ │ │ ├── annotations.proto │ │ │ │ ├── client.proto │ │ │ │ ├── field_behavior.proto │ │ │ │ ├── http.proto │ │ │ │ └── httpbody.proto │ │ │ └── protobuf/ │ │ │ ├── any.proto │ │ │ ├── api.proto │ │ │ ├── compiler/ │ │ │ │ └── plugin.proto │ │ │ ├── descriptor.proto │ │ │ ├── duration.proto │ │ │ ├── empty.proto │ │ │ ├── field_mask.proto │ │ │ ├── source_context.proto │ │ │ ├── struct.proto │ │ │ ├── timestamp.proto │ │ │ ├── type.proto │ │ │ └── wrappers.proto │ │ ├── openapi/ │ │ │ └── v3/ │ │ │ ├── annotations.proto │ │ │ └── openapi.proto │ │ └── validate/ │ │ ├── README.md │ │ └── validate.proto │ └── user/ │ ├── .gitignore │ ├── Dockerfile │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── api/ │ │ └── user/ │ │ └── v1/ │ │ ├── error_reason.pb.go │ │ ├── error_reason.pb.validate.go │ │ ├── error_reason.proto │ │ ├── error_reason_errors.pb.go │ │ ├── user.pb.go │ │ ├── user.pb.validate.go │ │ ├── user.proto │ │ └── user_grpc.pb.go │ ├── cmd/ │ │ └── user/ │ │ ├── main.go │ │ ├── wire.go │ │ └── wire_gen.go │ ├── configs/ │ │ ├── config.yaml │ │ └── registry.yaml │ ├── generate.go │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── biz/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── address_test.go │ │ │ ├── biz.go │ │ │ ├── biz_suite_test.go │ │ │ ├── user.go │ │ │ └── user_test.go │ │ ├── conf/ │ │ │ ├── conf.pb.go │ │ │ └── conf.proto │ │ ├── data/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── address_test.go │ │ │ ├── data.go │ │ │ ├── data_suite_test.go │ │ │ ├── docker_mysql.go │ │ │ ├── entity/ │ │ │ │ └── user.go │ │ │ ├── user.go │ │ │ └── user_test.go │ │ ├── domain/ │ │ │ └── address.go │ │ ├── mocks/ │ │ │ ├── mrepo/ │ │ │ │ ├── address.go │ │ │ │ └── user.go │ │ │ └── usecase/ │ │ │ └── biz.go │ │ ├── server/ │ │ │ ├── grpc.go │ │ │ └── server.go │ │ ├── service/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── service.go │ │ │ └── user.go │ │ └── testdata/ │ │ └── user.go │ ├── openapi.yaml │ ├── test/ │ │ └── user.go │ └── third_party/ │ ├── README.md │ ├── errors/ │ │ └── errors.proto │ ├── google/ │ │ ├── api/ │ │ │ ├── annotations.proto │ │ │ ├── client.proto │ │ │ ├── field_behavior.proto │ │ │ ├── http.proto │ │ │ └── httpbody.proto │ │ └── protobuf/ │ │ ├── any.proto │ │ ├── api.proto │ │ ├── compiler/ │ │ │ └── plugin.proto │ │ ├── descriptor.proto │ │ ├── duration.proto │ │ ├── empty.proto │ │ ├── field_mask.proto │ │ ├── source_context.proto │ │ ├── struct.proto │ │ ├── timestamp.proto │ │ ├── type.proto │ │ └── wrappers.proto │ ├── openapi/ │ │ └── v3/ │ │ ├── annotations.proto │ │ └── openapi.proto │ └── validate/ │ ├── README.md │ └── validate.proto ├── shop/ │ ├── .gitignore │ ├── Dockerfile │ ├── LICENSE │ ├── Makefile │ ├── README.md │ ├── api/ │ │ ├── service/ │ │ │ └── user/ │ │ │ └── v1/ │ │ │ ├── user.pb.go │ │ │ ├── user.pb.validate.go │ │ │ ├── user.proto │ │ │ └── user_grpc.pb.go │ │ └── shop/ │ │ └── v1/ │ │ ├── error_reason.pb.go │ │ ├── error_reason.pb.validate.go │ │ ├── error_reason.proto │ │ ├── error_reason_errors.pb.go │ │ ├── shop.pb.go │ │ ├── shop.pb.validate.go │ │ ├── shop.proto │ │ ├── shop_grpc.pb.go │ │ └── shop_http.pb.go │ ├── cmd/ │ │ └── shop/ │ │ ├── main.go │ │ ├── wire.go │ │ └── wire_gen.go │ ├── configs/ │ │ ├── config.yaml │ │ └── registry.yaml │ ├── generate.go │ ├── go.mod │ ├── go.sum │ ├── internal/ │ │ ├── biz/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── biz.go │ │ │ └── user.go │ │ ├── conf/ │ │ │ ├── conf.pb.go │ │ │ └── conf.proto │ │ ├── data/ │ │ │ ├── README.md │ │ │ ├── address.go │ │ │ ├── data.go │ │ │ └── user.go │ │ ├── pkg/ │ │ │ ├── captcha/ │ │ │ │ └── captcha.go │ │ │ └── middleware/ │ │ │ └── auth/ │ │ │ └── auth.go │ │ ├── server/ │ │ │ ├── grpc.go │ │ │ ├── http.go │ │ │ └── server.go │ │ └── service/ │ │ ├── README.md │ │ ├── service.go │ │ └── user.go │ ├── openapi.yaml │ └── third_party/ │ ├── README.md │ ├── errors/ │ │ └── errors.proto │ ├── google/ │ │ ├── api/ │ │ │ ├── annotations.proto │ │ │ ├── client.proto │ │ │ ├── field_behavior.proto │ │ │ ├── http.proto │ │ │ └── httpbody.proto │ │ └── protobuf/ │ │ └── descriptor.proto │ ├── protoc-gen-openapiv2/ │ │ └── options/ │ │ ├── annotations.proto │ │ └── openapiv2.proto │ └── validate/ │ ├── README.md │ └── validate.proto └── web/ └── admin/ ├── config/ │ ├── config.dev.js │ ├── config.js │ ├── defaultSettings.js │ ├── oneapi.json │ ├── proxy.js │ └── routes.js ├── jest.config.js ├── jsconfig.json ├── package.json ├── public/ │ └── CNAME ├── src/ │ ├── access.js │ ├── app.jsx │ ├── components/ │ │ ├── Footer/ │ │ │ └── index.jsx │ │ ├── HeaderDropdown/ │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── HeaderSearch/ │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── NoticeIcon/ │ │ │ ├── NoticeIcon.jsx │ │ │ ├── NoticeList.jsx │ │ │ ├── NoticeList.less │ │ │ ├── index.jsx │ │ │ └── index.less │ │ ├── RightContent/ │ │ │ ├── AvatarDropdown.jsx │ │ │ ├── index.jsx │ │ │ └── index.less │ │ └── index.md │ ├── e2e/ │ │ └── baseLayout.e2e.spec.js │ ├── global.jsx │ ├── global.less │ ├── locales/ │ │ ├── bn-BD/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── bn-BD.js │ │ ├── en-US/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── en-US.js │ │ ├── fa-IR/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── fa-IR.js │ │ ├── id-ID/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── id-ID.js │ │ ├── ja-JP/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── ja-JP.js │ │ ├── pt-BR/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── pt-BR.js │ │ ├── zh-CN/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pages.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ ├── zh-CN.js │ │ ├── zh-TW/ │ │ │ ├── component.js │ │ │ ├── globalHeader.js │ │ │ ├── menu.js │ │ │ ├── pwa.js │ │ │ ├── settingDrawer.js │ │ │ └── settings.js │ │ └── zh-TW.js │ ├── manifest.json │ ├── pages/ │ │ ├── 404.jsx │ │ ├── Admin.jsx │ │ ├── TableList/ │ │ │ ├── components/ │ │ │ │ └── UpdateForm.jsx │ │ │ └── index.jsx │ │ ├── Welcome.jsx │ │ ├── Welcome.less │ │ ├── document.ejs │ │ └── user/ │ │ └── Login/ │ │ ├── index.jsx │ │ └── index.less │ ├── service-worker.js │ └── services/ │ ├── ant-design-pro/ │ │ ├── api.js │ │ ├── index.js │ │ └── login.js │ └── swagger/ │ ├── index.js │ ├── pet.js │ ├── store.js │ └── user.js └── tests/ ├── run-tests.js └── setupTests.js