gitextract_1m_vx04_/ ├── .gitattributes ├── README.md ├── data/ │ └── elasticsearch/ │ └── nodes/ │ └── 0/ │ └── _state/ │ └── global-60.st ├── gmall-api/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ ├── bean/ │ │ ├── AdBanner.java │ │ ├── BaseAttrInfo.java │ │ ├── BaseAttrValue.java │ │ ├── BaseCatalog1.java │ │ ├── BaseCatalog1Tm.java │ │ ├── BaseCatalog2.java │ │ ├── BaseCatalog3.java │ │ ├── BaseDict.java │ │ ├── BaseSaleAttr.java │ │ ├── BaseTrademark.java │ │ ├── CartInfo.java │ │ ├── Crumb.java │ │ ├── OrderDetail.java │ │ ├── OrderInfo.java │ │ ├── OrderLog.java │ │ ├── OrderLogistics.java │ │ ├── PaymentInfo.java │ │ ├── SkuAttrValue.java │ │ ├── SkuImage.java │ │ ├── SkuInfo.java │ │ ├── SkuLsAttrValue.java │ │ ├── SkuLsInfo.java │ │ ├── SkuLsParam.java │ │ ├── SkuLsResult.java │ │ ├── SkuSaleAttrValue.java │ │ ├── SpuColor.java │ │ ├── SpuImage.java │ │ ├── SpuInfo.java │ │ ├── SpuPoster.java │ │ ├── SpuSaleAttr.java │ │ ├── SpuSaleAttrValue.java │ │ ├── SpuSize.java │ │ ├── SpuVersion.java │ │ ├── UserAddress.java │ │ ├── UserDetails.java │ │ ├── UserInfo.java │ │ ├── WareInfo.java │ │ ├── WareOrderTask.java │ │ ├── WareOrderTaskDetail.java │ │ ├── WareSku.java │ │ └── enums/ │ │ ├── OrderStatus.java │ │ ├── PaymentStatus.java │ │ ├── PaymentWay.java │ │ └── ProcessStatus.java │ └── service/ │ ├── AttrService.java │ ├── CartService.java │ ├── CatalogService.java │ ├── OrderService.java │ ├── SearchService.java │ ├── SkuService.java │ ├── SpuService.java │ └── UserService.java ├── gmall-cart-service/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── cart/ │ │ │ ├── GmallCartServiceApplication.java │ │ │ ├── mapper/ │ │ │ │ └── CartInfoMapper.java │ │ │ └── service/ │ │ │ └── impl/ │ │ │ └── CartServiceImpl.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── cart/ │ └── GmallCartServiceApplicationTests.java ├── gmall-cart-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ ├── GmallCartWebApplication.java │ │ │ └── cart/ │ │ │ └── controller/ │ │ │ └── CartController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── bootstrap/ │ │ │ │ ├── css/ │ │ │ │ │ └── bootstrap.css │ │ │ │ └── js/ │ │ │ │ └── bootstrap.js │ │ │ ├── css/ │ │ │ │ ├── One_bdyStyle.css │ │ │ │ ├── One_mainFoot.css │ │ │ │ ├── font-awesome-4.7.0/ │ │ │ │ │ ├── HELP-US-OUT.txt │ │ │ │ │ ├── css/ │ │ │ │ │ │ └── font-awesome(1).css │ │ │ │ │ ├── fonts/ │ │ │ │ │ │ └── FontAwesome.otf │ │ │ │ │ ├── less/ │ │ │ │ │ │ ├── animated.less │ │ │ │ │ │ ├── bordered-pulled.less │ │ │ │ │ │ ├── core.less │ │ │ │ │ │ ├── fixed-width.less │ │ │ │ │ │ ├── font-awesome.less │ │ │ │ │ │ ├── icons.less │ │ │ │ │ │ ├── larger.less │ │ │ │ │ │ ├── list.less │ │ │ │ │ │ ├── mixins.less │ │ │ │ │ │ ├── path.less │ │ │ │ │ │ ├── rotated-flipped.less │ │ │ │ │ │ ├── screen-reader.less │ │ │ │ │ │ ├── stacked.less │ │ │ │ │ │ └── variables.less │ │ │ │ │ └── scss/ │ │ │ │ │ ├── _animated.scss │ │ │ │ │ ├── _bordered-pulled.scss │ │ │ │ │ ├── _core.scss │ │ │ │ │ ├── _fixed-width.scss │ │ │ │ │ ├── _icons.scss │ │ │ │ │ ├── _larger.scss │ │ │ │ │ ├── _list.scss │ │ │ │ │ ├── _mixins.scss │ │ │ │ │ ├── _path.scss │ │ │ │ │ ├── _rotated-flipped.scss │ │ │ │ │ ├── _screen-reader.scss │ │ │ │ │ ├── _stacked.scss │ │ │ │ │ ├── _variables.scss │ │ │ │ │ └── font-awesome.scss │ │ │ │ ├── index.css │ │ │ │ └── success.css │ │ │ └── js/ │ │ │ ├── index.js │ │ │ └── success.js │ │ └── templates/ │ │ ├── One_JDshop.html │ │ ├── cartList.html │ │ ├── cartListInner.html │ │ └── success.html │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── cart/ │ └── GmallCartWebApplicationTests.java ├── gmall-common-util/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── util/ │ └── HttpClientUtil.java ├── gmall-item-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── item/ │ │ │ ├── GmallItemWebApplication.java │ │ │ └── controller/ │ │ │ └── ItemController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── bootstrap/ │ │ │ │ ├── css/ │ │ │ │ │ └── bootstrap.css │ │ │ │ └── js/ │ │ │ │ └── bootstrap.js │ │ │ ├── js/ │ │ │ │ ├── index.js │ │ │ │ ├── jquery1.9.js │ │ │ │ └── js.js │ │ │ └── scss/ │ │ │ ├── SHOUhou.css │ │ │ ├── header.css │ │ │ ├── main.css │ │ │ └── shop.css │ │ └── templates/ │ │ ├── demo.html │ │ └── item.html │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── item/ │ └── GmallItemWebApplicationTests.java ├── gmall-list-service/ │ ├── data/ │ │ └── elasticsearch/ │ │ └── nodes/ │ │ ├── 0/ │ │ │ └── _state/ │ │ │ └── global-17.st │ │ ├── 1/ │ │ │ └── _state/ │ │ │ └── global-14.st │ │ └── 2/ │ │ └── _state/ │ │ └── global-0.st │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── list/ │ │ │ ├── GmallListServiceApplication.java │ │ │ └── service/ │ │ │ └── impl/ │ │ │ └── SearchServiceImpl.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── list/ │ └── GmallListServiceApplicationTests.java ├── gmall-list-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── list/ │ │ │ ├── GmallListWebApplication.java │ │ │ └── controller/ │ │ │ └── ListController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── index/ │ │ │ │ ├── css/ │ │ │ │ │ └── GL.css │ │ │ │ ├── img/ │ │ │ │ │ ├── 58171918N852b09d5.jpg!q90 │ │ │ │ │ ├── 5852299fN1840f35a.jpg!q90 │ │ │ │ │ ├── 585229bdNc20796ec.jpg!q90 │ │ │ │ │ ├── 58522b1bN916da74b.jpg!q90 │ │ │ │ │ ├── 58522b9dNf06d6f3d.jpg!q90 │ │ │ │ │ ├── 59251deeN5daf7ec3.jpg!q90 │ │ │ │ │ ├── 5927ef42Nc91cffc7.jpg!cc_200x140 │ │ │ │ │ ├── 5948b387N1e3bff83.jpg!q90 │ │ │ │ │ ├── 5948bb23N6da9eb71.jpg!q90 │ │ │ │ │ ├── 5950ca4bN6ab3d2f8.jpg!q90 │ │ │ │ │ ├── 5950ca84N9509b283.jpg!q90 │ │ │ │ │ ├── 5950cb54N467732a3.jpg!q90 │ │ │ │ │ ├── 595493f7Nacab54de.jpg!q90 │ │ │ │ │ ├── 597944aeNd644dbd8.jpg!q90 │ │ │ │ │ ├── 59b26e7dN59707ce1.jpg!q90 │ │ │ │ │ ├── 59c1c15dNff3351e4.jpg!q90 │ │ │ │ │ ├── 59e56045N56ae92f1.jpg!q90 │ │ │ │ │ ├── 59ed51ddN8eefe457.jpg!q90 │ │ │ │ │ ├── 5a02d06cN1e37012f.jpg!q90 │ │ │ │ │ ├── 5a0502a0Nf18e2c44.jpg!q90 │ │ │ │ │ ├── 5a086aadNdd4a2d3d.jpg!q90 │ │ │ │ │ ├── 5a086b2cN0353b2df.png!q90 │ │ │ │ │ ├── 5a095387N0626036b.jpg!q90 │ │ │ │ │ ├── 5a097363Nf5fb64a6.jpg!q90 │ │ │ │ │ ├── 5a0bae3dNd70d9115.jpg!q90 │ │ │ │ │ ├── 5a0ce692N1a6c1453.jpg!q90 │ │ │ │ │ ├── 5a0cf69eN35720550.jpg!q90 │ │ │ │ │ ├── 5a0e3ab4N84732c2b.jpg!q90 │ │ │ │ │ ├── 5a0e64f0N68973e71.jpg!q90 │ │ │ │ │ ├── 5a0e9e4eN3d592b05.jpg!q90 │ │ │ │ │ ├── 5a122e02Nff6d7d36 (1).jpg!q90 │ │ │ │ │ ├── 5a122e02Nff6d7d36.jpg!q90 │ │ │ │ │ ├── 5a1233b5Nb10b9cbc (1).jpg!q90 │ │ │ │ │ ├── 5a1233b5Nb10b9cbc.jpg!q90 │ │ │ │ │ ├── 5a123702Nd17543ed.jpg!q90 │ │ │ │ │ ├── 5a124b62Na95768ed.jpg!q90 │ │ │ │ │ ├── 5a1273dbN740798e9.jpg!q90 │ │ │ │ │ ├── 5a12a25fN96769d3c.jpg!q90 │ │ │ │ │ ├── 5a138438N19d98566.jpg!q90 │ │ │ │ │ ├── 5a13bf0bNe1606e58.jpg!q90 │ │ │ │ │ ├── 5a13c218N7c86dc71.jpg!cc_200x140 │ │ │ │ │ ├── 5a13f30fN5ed4a260.jpg!q90 │ │ │ │ │ ├── 5a14d244N753235ee.jpg!q90 │ │ │ │ │ ├── 5a153de2Nf8b4fd68.jpg!q90 │ │ │ │ │ ├── 5a154759N5385d5d6.jpg!q90 │ │ │ │ │ ├── 5a154c8dN4135f0ca.jpg!q90 │ │ │ │ │ ├── 5a15541bNb9c925af.jpg!cc_200x140 │ │ │ │ │ ├── 5a155909Nfaeaff7d.jpg!q90 │ │ │ │ │ ├── 5a162e07N716d0432.jpg!q90 │ │ │ │ │ ├── 5a1645d7Nb450ea8f.jpg!q90 │ │ │ │ │ ├── 5a166870N0df26ef0.jpg!q90 │ │ │ │ │ ├── 5a16712eN5b12d2a1.jpg!q90 │ │ │ │ │ ├── 5a168352N61f45409.jpg!q90 │ │ │ │ │ ├── 5a1683e0N115c3304.jpg!q90 │ │ │ │ │ ├── 5a168d1eN8d09a8b8.jpg!q90 │ │ │ │ │ ├── 5a169882Nd454bf29.jpg!q90 │ │ │ │ │ ├── 5a1698b7Nd63c86ed.jpg!q90 │ │ │ │ │ ├── 5a16a84fN6dc1786f.jpg!q90 │ │ │ │ │ ├── 5a176f84N5e5df987.jpg!q90 │ │ │ │ │ ├── 5a1775a6N2f1b3538.jpg!q90 │ │ │ │ │ ├── 5a177937N733d5884.jpg!q90 │ │ │ │ │ ├── 5a177c43N7a83454e.jpg!q90 │ │ │ │ │ ├── 5a177d99Nd0347bf1.jpg!cc_200x140 │ │ │ │ │ ├── 5a1783a8N7d7f6988.jpg!q90 │ │ │ │ │ ├── 5a17b2c2Na8f437b9.jpg!cc_200x140 │ │ │ │ │ ├── 5a17b56fNd535f5ec.jpg!q90 │ │ │ │ │ ├── 5a17c3feN9cd403e8.jpg!q90 │ │ │ │ │ ├── 5a17ced0Nc020e244 (1).jpg!q90 │ │ │ │ │ ├── 5a17ced0Nc020e244.jpg!q90 │ │ │ │ │ ├── 5a17d1d0Nd648ae8b.jpg!q90 │ │ │ │ │ ├── 5a17d1d2Nac4c7ead.jpg!q90 │ │ │ │ │ ├── 5a17d5e7N220f95a8.jpg!q90 │ │ │ │ │ ├── 5a17e3abNfc2ae745.jpg!q90 │ │ │ │ │ ├── 5a17e4a2N3e7d7612.jpg!q90 │ │ │ │ │ ├── 5a17ec77Nd92f9470.jpg!q90 │ │ │ │ │ ├── 5a1b6757N8a831b02.jpg!q90 │ │ │ │ │ ├── 5a1b677bNe5a0a902.jpg!q90 │ │ │ │ │ ├── 5a1b83c7Nded9c556.jpg!q90 │ │ │ │ │ ├── n1.jpg!q90 │ │ │ │ │ ├── n14.jpg!q90 │ │ │ │ │ ├── n15.jpg!q90 │ │ │ │ │ ├── n16.jpg!q90 │ │ │ │ │ ├── n6.jpg!q90 │ │ │ │ │ ├── n7.jpg!q90 │ │ │ │ │ ├── n8.jpg!q90 │ │ │ │ │ ├── n9.jpg!q90 │ │ │ │ │ ├── s1.jpg!q90 │ │ │ │ │ ├── s10.jpg!q90 │ │ │ │ │ ├── s14.jpg!q90 │ │ │ │ │ ├── s15.jpg!q90 │ │ │ │ │ ├── s16.jpg!q90 │ │ │ │ │ ├── s6.jpg!q90 │ │ │ │ │ ├── s7.jpg!q90 │ │ │ │ │ ├── s8.jpg!q90 │ │ │ │ │ ├── s9.jpg!q90 │ │ │ │ │ ├── saved_resource │ │ │ │ │ ├── saved_resource(1) │ │ │ │ │ ├── w1.jpg!q90 │ │ │ │ │ ├── w6.jpg!q90 │ │ │ │ │ ├── w7.jpg!q90 │ │ │ │ │ ├── w8.jpg!q90 │ │ │ │ │ ├── wl.js.下载 │ │ │ │ │ ├── y1.jpg!q90 │ │ │ │ │ ├── y6.jpg!q90 │ │ │ │ │ ├── y7.jpg!q90 │ │ │ │ │ └── y8.jpg!q90 │ │ │ │ ├── js/ │ │ │ │ │ ├── catalogLoader.js │ │ │ │ │ ├── header.js │ │ │ │ │ ├── index.js │ │ │ │ │ ├── left,top.js │ │ │ │ │ ├── secend.js │ │ │ │ │ ├── text.js │ │ │ │ │ └── zz.js │ │ │ │ └── json/ │ │ │ │ └── catalog.json │ │ │ └── list/ │ │ │ ├── css/ │ │ │ │ └── index.css │ │ │ ├── font/ │ │ │ │ ├── demo(1).css │ │ │ │ ├── demo_fontclass.html │ │ │ │ ├── demo_symbol(1).html │ │ │ │ ├── demo_unicode.html │ │ │ │ ├── iconfont.css │ │ │ │ └── iconfont.js │ │ │ ├── img/ │ │ │ │ ├── 11dfaa4931a34735aed3e1129fb2f960.gif.baiduyun.downloading │ │ │ │ ├── 11dfaa4931a34735aed3e1129fb2f960.gif.baiduyun.downloading.cfg │ │ │ │ ├── 3c377af0aac147d081d7e155c442ba5e.gif.baiduyun.downloading │ │ │ │ ├── 3c377af0aac147d081d7e155c442ba5e.gif.baiduyun.downloading.cfg │ │ │ │ ├── 5716981.html │ │ │ │ ├── 58171918N852b09d5.jpg!q90 │ │ │ │ ├── 5852299fN1840f35a.jpg!q90 │ │ │ │ ├── 585229bdNc20796ec.jpg!q90 │ │ │ │ ├── 58522b1bN916da74b.jpg!q90 │ │ │ │ ├── 58522b9dNf06d6f3d.jpg!q90 │ │ │ │ ├── 59251deeN5daf7ec3.jpg!q90 │ │ │ │ ├── 5927ef42Nc91cffc7.jpg!cc_200x140 │ │ │ │ ├── 5948b387N1e3bff83.jpg!q90 │ │ │ │ ├── 5948bb23N6da9eb71.jpg!q90 │ │ │ │ ├── 5950ca4bN6ab3d2f8.jpg!q90 │ │ │ │ ├── 5950ca84N9509b283.jpg!q90 │ │ │ │ ├── 5950cb54N467732a3.jpg!q90 │ │ │ │ ├── 595493f7Nacab54de.jpg!q90 │ │ │ │ ├── 597944aeNd644dbd8.jpg!q90 │ │ │ │ ├── 59b26e7dN59707ce1.jpg!q90 │ │ │ │ ├── 59c1c15dNff3351e4.jpg!q90 │ │ │ │ ├── 59e56045N56ae92f1.jpg!q90 │ │ │ │ ├── 59ed51ddN8eefe457.jpg!q90 │ │ │ │ ├── 5a02d06cN1e37012f.jpg!q90 │ │ │ │ ├── 5a0502a0Nf18e2c44.jpg!q90 │ │ │ │ ├── 5a086aadNdd4a2d3d.jpg!q90 │ │ │ │ ├── 5a086b2cN0353b2df.png!q90 │ │ │ │ ├── 5a095387N0626036b.jpg!q90 │ │ │ │ ├── 5a097363Nf5fb64a6.jpg!q90 │ │ │ │ ├── 5a0bae3dNd70d9115.jpg!q90 │ │ │ │ ├── 5a0ce692N1a6c1453.jpg!q90 │ │ │ │ ├── 5a0cf69eN35720550.jpg!q90 │ │ │ │ ├── 5a0e3ab4N84732c2b.jpg!q90 │ │ │ │ ├── 5a0e64f0N68973e71.jpg!q90 │ │ │ │ ├── 5a0e9e4eN3d592b05.jpg!q90 │ │ │ │ ├── 5a122e02Nff6d7d36 (1).jpg!q90 │ │ │ │ ├── 5a122e02Nff6d7d36.jpg!q90 │ │ │ │ ├── 5a1233b5Nb10b9cbc (1).jpg!q90 │ │ │ │ ├── 5a1233b5Nb10b9cbc.jpg!q90 │ │ │ │ ├── 5a123702Nd17543ed.jpg!q90 │ │ │ │ ├── 5a124b62Na95768ed.jpg!q90 │ │ │ │ ├── 5a1273dbN740798e9.jpg!q90 │ │ │ │ ├── 5a12a25fN96769d3c.jpg!q90 │ │ │ │ ├── 5a138438N19d98566.jpg!q90 │ │ │ │ ├── 5a13bf0bNe1606e58.jpg!q90 │ │ │ │ ├── 5a13c218N7c86dc71.jpg!cc_200x140 │ │ │ │ ├── 5a13f30fN5ed4a260.jpg!q90 │ │ │ │ ├── 5a14d244N753235ee.jpg!q90 │ │ │ │ ├── 5a153de2Nf8b4fd68.jpg!q90 │ │ │ │ ├── 5a154759N5385d5d6.jpg!q90 │ │ │ │ ├── 5a154c8dN4135f0ca.jpg!q90 │ │ │ │ ├── 5a15541bNb9c925af.jpg!cc_200x140 │ │ │ │ ├── 5a155909Nfaeaff7d.jpg!q90 │ │ │ │ ├── 5a162e07N716d0432.jpg!q90 │ │ │ │ ├── 5a1645d7Nb450ea8f.jpg!q90 │ │ │ │ ├── 5a166870N0df26ef0.jpg!q90 │ │ │ │ ├── 5a16712eN5b12d2a1.jpg!q90 │ │ │ │ ├── 5a168352N61f45409.jpg!q90 │ │ │ │ ├── 5a1683e0N115c3304.jpg!q90 │ │ │ │ ├── 5a168d1eN8d09a8b8.jpg!q90 │ │ │ │ ├── 5a169882Nd454bf29.jpg!q90 │ │ │ │ ├── 5a1698b7Nd63c86ed.jpg!q90 │ │ │ │ ├── 5a16a84fN6dc1786f.jpg!q90 │ │ │ │ ├── 5a176f84N5e5df987.jpg!q90 │ │ │ │ ├── 5a1775a6N2f1b3538.jpg!q90 │ │ │ │ ├── 5a177937N733d5884.jpg!q90 │ │ │ │ ├── 5a177c43N7a83454e.jpg!q90 │ │ │ │ ├── 5a177d99Nd0347bf1.jpg!cc_200x140 │ │ │ │ ├── 5a1783a8N7d7f6988.jpg!q90 │ │ │ │ ├── 5a17b2c2Na8f437b9.jpg!cc_200x140 │ │ │ │ ├── 5a17b56fNd535f5ec.jpg!q90 │ │ │ │ ├── 5a17c3feN9cd403e8.jpg!q90 │ │ │ │ ├── 5a17ced0Nc020e244 (1).jpg!q90 │ │ │ │ ├── 5a17ced0Nc020e244.jpg!q90 │ │ │ │ ├── 5a17d1d0Nd648ae8b.jpg!q90 │ │ │ │ ├── 5a17d1d2Nac4c7ead.jpg!q90 │ │ │ │ ├── 5a17d5e7N220f95a8.jpg!q90 │ │ │ │ ├── 5a17e3abNfc2ae745.jpg!q90 │ │ │ │ ├── 5a17e4a2N3e7d7612.jpg!q90 │ │ │ │ ├── 5a17ec77Nd92f9470.jpg!q90 │ │ │ │ ├── 5a1b6757N8a831b02.jpg!q90 │ │ │ │ ├── 5a1b677bNe5a0a902.jpg!q90 │ │ │ │ ├── 5a1b83c7Nded9c556.jpg!q90 │ │ │ │ ├── n1.jpg!q90 │ │ │ │ ├── n14.jpg!q90 │ │ │ │ ├── n15.jpg!q90 │ │ │ │ ├── n16.jpg!q90 │ │ │ │ ├── n6.jpg!q90 │ │ │ │ ├── n7.jpg!q90 │ │ │ │ ├── n8.jpg!q90 │ │ │ │ ├── n9.jpg!q90 │ │ │ │ ├── s1.jpg!q90 │ │ │ │ ├── s10.jpg!q90 │ │ │ │ ├── s14.jpg!q90 │ │ │ │ ├── s15.jpg!q90 │ │ │ │ ├── s16.jpg!q90 │ │ │ │ ├── s6.jpg!q90 │ │ │ │ ├── s7.jpg!q90 │ │ │ │ ├── s8.jpg!q90 │ │ │ │ ├── s9.jpg!q90 │ │ │ │ ├── saved_resource │ │ │ │ ├── saved_resource(1) │ │ │ │ ├── w1.jpg!q90 │ │ │ │ ├── w6.jpg!q90 │ │ │ │ ├── w7.jpg!q90 │ │ │ │ ├── w8.jpg!q90 │ │ │ │ ├── wl.js.下载 │ │ │ │ ├── y1.jpg!q90 │ │ │ │ ├── y6.jpg!q90 │ │ │ │ ├── y7.jpg!q90 │ │ │ │ └── y8.jpg!q90 │ │ │ └── js/ │ │ │ ├── index.js │ │ │ └── jquery-1.12.4.js │ │ └── templates/ │ │ ├── index.html │ │ └── list.html │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── list/ │ └── GmallListWebApplicationTests.java ├── gmall-manage-service/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── manage/ │ │ │ ├── GmallManageServiceApplication.java │ │ │ ├── mapper/ │ │ │ │ ├── BaseAttrInfoMapper.java │ │ │ │ ├── BaseAttrValueMapper.java │ │ │ │ ├── BaseCatalog1Mapper.java │ │ │ │ ├── BaseCatalog2Mapper.java │ │ │ │ ├── BaseCatalog3Mapper.java │ │ │ │ ├── BaseSaleAttrMapper.java │ │ │ │ ├── SkuAttrValueMapper.java │ │ │ │ ├── SkuImageMapper.java │ │ │ │ ├── SkuInfoMapper.java │ │ │ │ ├── SkuSaleAttrValueMapper.java │ │ │ │ ├── SpuImageMapper.java │ │ │ │ ├── SpuInfoMapper.java │ │ │ │ ├── SpuSaleAttrMapper.java │ │ │ │ └── SpuSaleAttrValueMapper.java │ │ │ └── service/ │ │ │ └── impl/ │ │ │ ├── AttrServiceImpl.java │ │ │ ├── CatalogServieImpl.java │ │ │ ├── SkuServiceImpl.java │ │ │ └── SpuServiceImpl.java │ │ └── resources/ │ │ ├── application.properties │ │ └── mapper/ │ │ ├── BaseAttrValueMapper.xml │ │ └── SpuSaleAttrValueMapper.xml │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── manage/ │ └── GmallManageServiceApplicationTests.java ├── gmall-manage-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── manage/ │ │ │ ├── GmallManageWebApplication.java │ │ │ ├── controller/ │ │ │ │ ├── AttrController.java │ │ │ │ ├── CatalogController.java │ │ │ │ ├── IndexController.java │ │ │ │ ├── SkuController.java │ │ │ │ └── SpuController.java │ │ │ └── util/ │ │ │ └── MyUploadUtil.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── esayui/ │ │ │ │ ├── datagrid-detailview.js │ │ │ │ ├── easyloader.js │ │ │ │ ├── jquery.easyui.mobile.js │ │ │ │ ├── locale/ │ │ │ │ │ ├── easyui-lang-af.js │ │ │ │ │ ├── easyui-lang-am.js │ │ │ │ │ ├── easyui-lang-ar.js │ │ │ │ │ ├── easyui-lang-bg.js │ │ │ │ │ ├── easyui-lang-ca.js │ │ │ │ │ ├── easyui-lang-cs.js │ │ │ │ │ ├── easyui-lang-cz.js │ │ │ │ │ ├── easyui-lang-da.js │ │ │ │ │ ├── easyui-lang-de.js │ │ │ │ │ ├── easyui-lang-el.js │ │ │ │ │ ├── easyui-lang-en.js │ │ │ │ │ ├── easyui-lang-es.js │ │ │ │ │ ├── easyui-lang-fa.js │ │ │ │ │ ├── easyui-lang-fr.js │ │ │ │ │ ├── easyui-lang-it.js │ │ │ │ │ ├── easyui-lang-jp.js │ │ │ │ │ ├── easyui-lang-ko.js │ │ │ │ │ ├── easyui-lang-nl.js │ │ │ │ │ ├── easyui-lang-pl.js │ │ │ │ │ ├── easyui-lang-pt_BR.js │ │ │ │ │ ├── easyui-lang-ru.js │ │ │ │ │ ├── easyui-lang-sv_SE.js │ │ │ │ │ ├── easyui-lang-tr.js │ │ │ │ │ ├── easyui-lang-ua.js │ │ │ │ │ ├── easyui-lang-zh_CN.js │ │ │ │ │ └── easyui-lang-zh_TW.js │ │ │ │ ├── plugins/ │ │ │ │ │ ├── jquery.accordion.js │ │ │ │ │ ├── jquery.calendar.js │ │ │ │ │ ├── jquery.checkbox.js │ │ │ │ │ ├── jquery.combo.js │ │ │ │ │ ├── jquery.combobox.js │ │ │ │ │ ├── jquery.combogrid.js │ │ │ │ │ ├── jquery.combotree.js │ │ │ │ │ ├── jquery.combotreegrid.js │ │ │ │ │ ├── jquery.datagrid.js │ │ │ │ │ ├── jquery.datalist.js │ │ │ │ │ ├── jquery.datebox.js │ │ │ │ │ ├── jquery.datetimebox.js │ │ │ │ │ ├── jquery.datetimespinner.js │ │ │ │ │ ├── jquery.dialog.js │ │ │ │ │ ├── jquery.draggable.js │ │ │ │ │ ├── jquery.droppable.js │ │ │ │ │ ├── jquery.filebox.js │ │ │ │ │ ├── jquery.form.js │ │ │ │ │ ├── jquery.layout.js │ │ │ │ │ ├── jquery.linkbutton.js │ │ │ │ │ ├── jquery.maskedbox.js │ │ │ │ │ ├── jquery.menu.js │ │ │ │ │ ├── jquery.menubutton.js │ │ │ │ │ ├── jquery.messager.js │ │ │ │ │ ├── jquery.mobile.js │ │ │ │ │ ├── jquery.numberbox.js │ │ │ │ │ ├── jquery.numberspinner.js │ │ │ │ │ ├── jquery.pagination.js │ │ │ │ │ ├── jquery.panel.js │ │ │ │ │ ├── jquery.parser.js │ │ │ │ │ ├── jquery.passwordbox.js │ │ │ │ │ ├── jquery.progressbar.js │ │ │ │ │ ├── jquery.propertygrid.js │ │ │ │ │ ├── jquery.radiobutton.js │ │ │ │ │ ├── jquery.resizable.js │ │ │ │ │ ├── jquery.searchbox.js │ │ │ │ │ ├── jquery.sidemenu.js │ │ │ │ │ ├── jquery.slider.js │ │ │ │ │ ├── jquery.spinner.js │ │ │ │ │ ├── jquery.splitbutton.js │ │ │ │ │ ├── jquery.switchbutton.js │ │ │ │ │ ├── jquery.tabs.js │ │ │ │ │ ├── jquery.tagbox.js │ │ │ │ │ ├── jquery.textbox.js │ │ │ │ │ ├── jquery.timespinner.js │ │ │ │ │ ├── jquery.tooltip.js │ │ │ │ │ ├── jquery.tree.js │ │ │ │ │ ├── jquery.treegrid.js │ │ │ │ │ ├── jquery.validatebox.js │ │ │ │ │ └── jquery.window.js │ │ │ │ └── themes/ │ │ │ │ ├── angular.css │ │ │ │ ├── black/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── bootstrap/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── color.css │ │ │ │ ├── default/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── gray/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── icon.css │ │ │ │ ├── material/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── material-teal/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── metro/ │ │ │ │ │ ├── accordion.css │ │ │ │ │ ├── calendar.css │ │ │ │ │ ├── checkbox.css │ │ │ │ │ ├── combo.css │ │ │ │ │ ├── combobox.css │ │ │ │ │ ├── datagrid.css │ │ │ │ │ ├── datalist.css │ │ │ │ │ ├── datebox.css │ │ │ │ │ ├── dialog.css │ │ │ │ │ ├── easyui.css │ │ │ │ │ ├── filebox.css │ │ │ │ │ ├── layout.css │ │ │ │ │ ├── linkbutton.css │ │ │ │ │ ├── menu.css │ │ │ │ │ ├── menubutton.css │ │ │ │ │ ├── messager.css │ │ │ │ │ ├── numberbox.css │ │ │ │ │ ├── pagination.css │ │ │ │ │ ├── panel.css │ │ │ │ │ ├── passwordbox.css │ │ │ │ │ ├── progressbar.css │ │ │ │ │ ├── propertygrid.css │ │ │ │ │ ├── radiobutton.css │ │ │ │ │ ├── searchbox.css │ │ │ │ │ ├── sidemenu.css │ │ │ │ │ ├── slider.css │ │ │ │ │ ├── spinner.css │ │ │ │ │ ├── splitbutton.css │ │ │ │ │ ├── switchbutton.css │ │ │ │ │ ├── tabs.css │ │ │ │ │ ├── tagbox.css │ │ │ │ │ ├── textbox.css │ │ │ │ │ ├── tooltip.css │ │ │ │ │ ├── tree.css │ │ │ │ │ ├── validatebox.css │ │ │ │ │ └── window.css │ │ │ │ ├── mobile.css │ │ │ │ ├── react.css │ │ │ │ └── vue.css │ │ │ └── webuploader/ │ │ │ ├── Uploader.swf │ │ │ ├── webuploader.css │ │ │ └── webuploader.js │ │ ├── templates/ │ │ │ ├── attrInfoPage.html │ │ │ ├── attrListPage.html │ │ │ ├── index.html │ │ │ ├── skuInfoPage.html │ │ │ ├── skuListPage.html │ │ │ ├── spuInfoPage.html │ │ │ ├── spuListPage.html │ │ │ └── spuSaleAttrPage.html │ │ └── tracker.conf │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── manage/ │ └── GmallManageWebApplicationTests.java ├── gmall-order-service/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ ├── GmallOrderServiceApplication.java │ │ │ └── order/ │ │ │ ├── mapper/ │ │ │ │ ├── OrderDetailMapper.java │ │ │ │ └── OrderInfoMapper.java │ │ │ └── service/ │ │ │ └── impl/ │ │ │ └── OrderServiceImpl.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── order/ │ └── GmallOrderServiceImplApplicationTests.java ├── gmall-order-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ ├── GmallOrderWebApplication.java │ │ │ └── order/ │ │ │ └── controller/ │ │ │ └── OrderController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ ├── JD2.css │ │ │ │ ├── index.css │ │ │ │ ├── list.css │ │ │ │ └── style.css │ │ │ └── js/ │ │ │ └── list.js │ │ └── templates/ │ │ ├── list.html │ │ ├── payTest.html │ │ ├── trade.html │ │ └── tradeFail.html │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── order/ │ └── GmallOrderWebApplicationTests.java ├── gmall-parent/ │ └── pom.xml ├── gmall-passport-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── passport/ │ │ │ ├── GmallPassportWebApplication.java │ │ │ └── controller/ │ │ │ └── PassportController.java │ │ └── resources/ │ │ ├── application.properties │ │ ├── static/ │ │ │ ├── css/ │ │ │ │ ├── gm1.css │ │ │ │ └── gm1.css.bak │ │ │ └── js/ │ │ │ └── zepto.js │ │ └── templates/ │ │ └── index.html │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── passport/ │ └── GmallPassportWebApplicationTests.java ├── gmall-service-util/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── util/ │ ├── RedisConfig.java │ └── RedisUtil.java ├── gmall-user/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ ├── GmallUserApplication.java │ │ │ └── user/ │ │ │ ├── mapper/ │ │ │ │ ├── UserAddressMapper.java │ │ │ │ └── UserInfoMapper.java │ │ │ └── service/ │ │ │ └── impl/ │ │ │ └── UserServiceImpl.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── user/ │ └── GmallUserApplicationTests.java ├── gmall-user-web/ │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── lee/ │ │ │ └── gmall/ │ │ │ └── user/ │ │ │ ├── GmallUserWebApplication.java │ │ │ └── controller/ │ │ │ └── UserController.java │ │ └── resources/ │ │ └── application.properties │ └── test/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ └── user/ │ └── GmallUserWebApplicationTests.java ├── gmall-web-util/ │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ └── com/ │ └── lee/ │ └── gmall/ │ ├── annotation/ │ │ └── LoginRequire.java │ ├── config/ │ │ └── WebMvcConfiguration.java │ ├── interceptor/ │ │ └── AuthInterceptor.java │ └── util/ │ ├── CookieUtil.java │ ├── JwtUtil.java │ └── PassportUtil.java ├── gmall4.sql └── 类目.sql