Full Code of superlee1010/gmall for AI

master 523a8c927b3c cached
816 files
5.1 MB
1.4M tokens
1551 symbols
1 requests
Download .txt
Showing preview only (5,577K chars total). Download the full file or copy to clipboard to get everything.
Repository: superlee1010/gmall
Branch: master
Commit: 523a8c927b3c
Files: 816
Total size: 5.1 MB

Directory structure:
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

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitattributes
================================================
*.js linguist-language=java

*.css linguist-language=java

*.html linguist-language=java


================================================
FILE: README.md
================================================




================================================
FILE: gmall-api/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lee.gmall</groupId>
    <artifactId>gmall-api</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>1.2.3</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-jdbc</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

</project>

================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/AdBanner.java
================================================
package com.lee.gmall.bean;


public class AdBanner {

  private long id;
  private String adDesc;
  private String fileName;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getAdDesc() {
    return adDesc;
  }

  public void setAdDesc(String adDesc) {
    this.adDesc = adDesc;
  }


  public String getFileName() {
    return fileName;
  }

  public void setFileName(String fileName) {
    this.fileName = fileName;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrInfo.java
================================================
package com.lee.gmall.bean;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;

public class BaseAttrInfo implements Serializable {

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private String id;
    private String attrName;
    private String catalog3Id;
    private String isEnabled;

    @Transient
    List<BaseAttrValue> attrValueList;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getAttrName() {
        return attrName;
    }

    public void setAttrName(String attrName) {
        this.attrName = attrName;
    }

    public String getCatalog3Id() {
        return catalog3Id;
    }

    public void setCatalog3Id(String catalog3Id) {
        this.catalog3Id = catalog3Id;
    }

    public String getIsEnabled() {
        return isEnabled;
    }

    public void setIsEnabled(String isEnabled) {
        this.isEnabled = isEnabled;
    }

    public List<BaseAttrValue> getAttrValueList() {
        return attrValueList;
    }

    public void setAttrValueList(List<BaseAttrValue> attrValueList) {
        this.attrValueList = attrValueList;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrValue.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class BaseAttrValue implements Serializable {

  private String id;
  private String valueName;
  private String attrId;
  private String isEnabled;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getValueName() {
    return valueName;
  }

  public void setValueName(String valueName) {
    this.valueName = valueName;
  }


  public String getAttrId() {
    return attrId;
  }

  public void setAttrId(String attrId) {
    this.attrId = attrId;
  }


  public String getIsEnabled() {
    return isEnabled;
  }

  public void setIsEnabled(String isEnabled) {
    this.isEnabled = isEnabled;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class BaseCatalog1 implements Serializable {

  private String id;
  private String name;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1Tm.java
================================================
package com.lee.gmall.bean;


public class BaseCatalog1Tm {

  private long id;
  private long tmId;
  private String catalog1Id;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getTmId() {
    return tmId;
  }

  public void setTmId(long tmId) {
    this.tmId = tmId;
  }


  public String getCatalog1Id() {
    return catalog1Id;
  }

  public void setCatalog1Id(String catalog1Id) {
    this.catalog1Id = catalog1Id;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog2.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class BaseCatalog2 implements Serializable {

  private String id;
  private String name;
  private String catalog1Id;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


  public String getCatalog1Id() {
    return catalog1Id;
  }

  public void setCatalog1Id(String catalog1Id) {
    this.catalog1Id = catalog1Id;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog3.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class BaseCatalog3 implements Serializable {

  private String id;
  private String name;
  private String catalog2Id;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


  public String getCatalog2Id() {
    return catalog2Id;
  }

  public void setCatalog2Id(String catalog2Id) {
    this.catalog2Id = catalog2Id;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseDict.java
================================================
package com.lee.gmall.bean;

public class BaseDict {

  private String id;
  private String parentId;
  private String name;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getParentId() {
    return parentId;
  }

  public void setParentId(String parentId) {
    this.parentId = parentId;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseSaleAttr.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class BaseSaleAttr implements Serializable {

  private String id;
  private String name;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseTrademark.java
================================================
package com.lee.gmall.bean;


public class BaseTrademark {

  private long id;
  private String tmName;
  private String logoUrl;
  private String isEnable;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getTmName() {
    return tmName;
  }

  public void setTmName(String tmName) {
    this.tmName = tmName;
  }


  public String getLogoUrl() {
    return logoUrl;
  }

  public void setLogoUrl(String logoUrl) {
    this.logoUrl = logoUrl;
  }


  public String getIsEnable() {
    return isEnable;
  }

  public void setIsEnable(String isEnable) {
    this.isEnable = isEnable;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/CartInfo.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;
import java.math.BigDecimal;

public class CartInfo implements Serializable {

  private String id;
  private String userId;
  private String skuId;
  private BigDecimal cartPrice;
  private long quantity;
  private String imgUrl;
  private String isChecked;
  private BigDecimal skuPrice;
  private Integer skuNum;
  private String skuName;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }


  public String getSkuId() {
    return skuId;
  }

  public void setSkuId(String skuId) {
    this.skuId = skuId;
  }


  public BigDecimal getCartPrice() {
    return cartPrice;
  }

  public void setCartPrice(BigDecimal cartPrice) {
    this.cartPrice = cartPrice;
  }


  public long getQuantity() {
    return quantity;
  }

  public void setQuantity(long quantity) {
    this.quantity = quantity;
  }


  public String getImgUrl() {
    return imgUrl;
  }

  public void setImgUrl(String imgUrl) {
    this.imgUrl = imgUrl;
  }


  public String getIsChecked() {
    return isChecked;
  }

  public void setIsChecked(String isChecked) {
    this.isChecked = isChecked;
  }


  public BigDecimal getSkuPrice() {
    return skuPrice;
  }

  public void setSkuPrice(BigDecimal skuPrice) {
    this.skuPrice = skuPrice;
  }


  public Integer getSkuNum() {
    return skuNum;
  }

  public void setSkuNum(Integer skuNum) {
    this.skuNum = skuNum;
  }


  public String getSkuName() {
    return skuName;
  }

  public void setSkuName(String skuName) {
    this.skuName = skuName;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/Crumb.java
================================================
package com.lee.gmall.bean;

public class Crumb {

    private String valueName;

    private String urlParam;

    public String getValueName() {
        return valueName;
    }

    public void setValueName(String valueName) {
        this.valueName = valueName;
    }

    public String getUrlParam() {
        return urlParam;
    }

    public void setUrlParam(String urlParam) {
        this.urlParam = urlParam;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderDetail.java
================================================
package com.lee.gmall.bean;

import javax.persistence.Transient;
import java.io.Serializable;
import java.math.BigDecimal;

public class OrderDetail implements Serializable {

  private String id;
  private String orderId;
  private String skuId;
  private String skuName;
  private String imgFileName;
  private BigDecimal orderPrice;
  private Integer skuNums;
  private String logisticsId;
  private String imgUrl;
  private Integer skuNum;

  @Transient
  private String hasStock;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getOrderId() {
    return orderId;
  }

  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }


  public String getSkuId() {
    return skuId;
  }

  public void setSkuId(String skuId) {
    this.skuId = skuId;
  }


  public String getSkuName() {
    return skuName;
  }

  public void setSkuName(String skuName) {
    this.skuName = skuName;
  }


  public String getImgFileName() {
    return imgFileName;
  }

  public void setImgFileName(String imgFileName) {
    this.imgFileName = imgFileName;
  }


  public BigDecimal getOrderPrice() {
    return orderPrice;
  }

  public void setOrderPrice(BigDecimal orderPrice) {
    this.orderPrice = orderPrice;
  }


  public Integer getSkuNums() {
    return skuNums;
  }

  public void setSkuNums(Integer skuNums) {
    this.skuNums = skuNums;
  }


  public String getLogisticsId() {
    return logisticsId;
  }

  public void setLogisticsId(String logisticsId) {
    this.logisticsId = logisticsId;
  }


  public String getImgUrl() {
    return imgUrl;
  }

  public void setImgUrl(String imgUrl) {
    this.imgUrl = imgUrl;
  }


  public Integer getSkuNum() {
    return skuNum;
  }

  public void setSkuNum(Integer skuNum) {
    this.skuNum = skuNum;
  }

  public String getHasStock() {
    return hasStock;
  }

  public void setHasStock(String hasStock) {
    this.hasStock = hasStock;
  }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderInfo.java
================================================
package com.lee.gmall.bean;

import com.lee.gmall.bean.enums.PaymentWay;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

public class OrderInfo implements Serializable {

    @GeneratedValue(generator = "JDBC")//增加这个注解解决了通用Mapper的insert不返回主键的问题
    @Id
    private String id;
  private String consignee;
  private BigDecimal totalAmount;
  private String orderStatus;
  private String userId;
  private PaymentWay paymentWay;
  private Date expectDeliveryTime;
  private String deliveryAddress;
  private String orderComment;
  private String outTradeNo;
  private String tradeBody;
  private Date createTime;
  private Date expireTime;
  private String wareStatus;
  private String parentOrderId;
  private String processStatus;
  private String trackingNo;
  private String consigneeTel;

  @Transient
  List<OrderDetail> orderDetailList;

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getConsignee() {
    return consignee;
  }

  public void setConsignee(String consignee) {
    this.consignee = consignee;
  }


  public BigDecimal getTotalAmount() {
    return totalAmount;
  }

  public void setTotalAmount(BigDecimal totalAmount) {
    this.totalAmount = totalAmount;
  }


  public String getOrderStatus() {
    return orderStatus;
  }

  public void setOrderStatus(String orderStatus) {
    this.orderStatus = orderStatus;
  }


  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }


  public PaymentWay getPaymentWay() {
    return paymentWay;
  }

  public void setPaymentWay(PaymentWay paymentWay) {
    this.paymentWay = paymentWay;
  }



  public String getDeliveryAddress() {
    return deliveryAddress;
  }

  public void setDeliveryAddress(String deliveryAddress) {
    this.deliveryAddress = deliveryAddress;
  }


  public String getOrderComment() {
    return orderComment;
  }

  public void setOrderComment(String orderComment) {
    this.orderComment = orderComment;
  }


  public String getOutTradeNo() {
    return outTradeNo;
  }

  public void setOutTradeNo(String outTradeNo) {
    this.outTradeNo = outTradeNo;
  }


  public String getTradeBody() {
    return tradeBody;
  }

  public void setTradeBody(String tradeBody) {
    this.tradeBody = tradeBody;
  }


  public String getWareStatus() {
    return wareStatus;
  }

  public void setWareStatus(String wareStatus) {
    this.wareStatus = wareStatus;
  }


  public String getParentOrderId() {
    return parentOrderId;
  }

  public void setParentOrderId(String parentOrderId) {
    this.parentOrderId = parentOrderId;
  }


  public String getProcessStatus() {
    return processStatus;
  }

  public void setProcessStatus(String processStatus) {
    this.processStatus = processStatus;
  }


  public String getTrackingNo() {
    return trackingNo;
  }

  public void setTrackingNo(String trackingNo) {
    this.trackingNo = trackingNo;
  }


  public String getConsigneeTel() {
    return consigneeTel;
  }

  public void setConsigneeTel(String consigneeTel) {

    this.consigneeTel = consigneeTel;
  }

    public Date getExpectDeliveryTime() {
        return expectDeliveryTime;
    }

    public void setExpectDeliveryTime(Date expectDeliveryTime) {
        this.expectDeliveryTime = expectDeliveryTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(Date expireTime) {
        this.expireTime = expireTime;
    }

    public List<OrderDetail> getOrderDetailList() {
    return orderDetailList;
  }

  public void setOrderDetailList(List<OrderDetail> orderDetailList) {
    this.orderDetailList = orderDetailList;
  }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderLog.java
================================================
package com.lee.gmall.bean;


public class OrderLog {

  private long id;
  private long orderId;
  private java.sql.Timestamp operateDate;
  private String logComment;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getOrderId() {
    return orderId;
  }

  public void setOrderId(long orderId) {
    this.orderId = orderId;
  }


  public java.sql.Timestamp getOperateDate() {
    return operateDate;
  }

  public void setOperateDate(java.sql.Timestamp operateDate) {
    this.operateDate = operateDate;
  }


  public String getLogComment() {
    return logComment;
  }

  public void setLogComment(String logComment) {
    this.logComment = logComment;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderLogistics.java
================================================
package com.lee.gmall.bean;


public class OrderLogistics {

  private long id;
  private long orderId;
  private String logisticsStatus;
  private String logisticsNo;
  private java.sql.Timestamp createTime;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getOrderId() {
    return orderId;
  }

  public void setOrderId(long orderId) {
    this.orderId = orderId;
  }


  public String getLogisticsStatus() {
    return logisticsStatus;
  }

  public void setLogisticsStatus(String logisticsStatus) {
    this.logisticsStatus = logisticsStatus;
  }


  public String getLogisticsNo() {
    return logisticsNo;
  }

  public void setLogisticsNo(String logisticsNo) {
    this.logisticsNo = logisticsNo;
  }


  public java.sql.Timestamp getCreateTime() {
    return createTime;
  }

  public void setCreateTime(java.sql.Timestamp createTime) {
    this.createTime = createTime;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/PaymentInfo.java
================================================
package com.lee.gmall.bean;


public class PaymentInfo {

  private long id;
  private String outTradeNo;
  private String orderId;
  private String alipayTradeNo;
  private double totalAmount;
  private String subject;
  private String paymentStatus;
  private java.sql.Timestamp createTime;
  private java.sql.Timestamp confirmTime;
  private String callbackContent;
  private java.sql.Timestamp callbackTime;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getOutTradeNo() {
    return outTradeNo;
  }

  public void setOutTradeNo(String outTradeNo) {
    this.outTradeNo = outTradeNo;
  }


  public String getOrderId() {
    return orderId;
  }

  public void setOrderId(String orderId) {
    this.orderId = orderId;
  }


  public String getAlipayTradeNo() {
    return alipayTradeNo;
  }

  public void setAlipayTradeNo(String alipayTradeNo) {
    this.alipayTradeNo = alipayTradeNo;
  }


  public double getTotalAmount() {
    return totalAmount;
  }

  public void setTotalAmount(double totalAmount) {
    this.totalAmount = totalAmount;
  }


  public String getSubject() {
    return subject;
  }

  public void setSubject(String subject) {
    this.subject = subject;
  }


  public String getPaymentStatus() {
    return paymentStatus;
  }

  public void setPaymentStatus(String paymentStatus) {
    this.paymentStatus = paymentStatus;
  }


  public java.sql.Timestamp getCreateTime() {
    return createTime;
  }

  public void setCreateTime(java.sql.Timestamp createTime) {
    this.createTime = createTime;
  }


  public java.sql.Timestamp getConfirmTime() {
    return confirmTime;
  }

  public void setConfirmTime(java.sql.Timestamp confirmTime) {
    this.confirmTime = confirmTime;
  }


  public String getCallbackContent() {
    return callbackContent;
  }

  public void setCallbackContent(String callbackContent) {
    this.callbackContent = callbackContent;
  }


  public java.sql.Timestamp getCallbackTime() {
    return callbackTime;
  }

  public void setCallbackTime(java.sql.Timestamp callbackTime) {
    this.callbackTime = callbackTime;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuAttrValue.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class SkuAttrValue implements Serializable {

  private String id;
  private String attrId;
  private String valueId;
  private String skuId;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getAttrId() {
    return attrId;
  }

  public void setAttrId(String attrId) {
    this.attrId = attrId;
  }


  public String getValueId() {
    return valueId;
  }

  public void setValueId(String valueId) {
    this.valueId = valueId;
  }


  public String getSkuId() {
    return skuId;
  }

  public void setSkuId(String skuId) {
    this.skuId = skuId;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuImage.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class SkuImage implements Serializable {

  private String id;
  private String skuId;
  private String imgName;
  private String imgUrl;
  private String spuImgId;
  private String isDefault = "0";


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSkuId() {
    return skuId;
  }

  public void setSkuId(String skuId) {
    this.skuId = skuId;
  }


  public String getImgName() {
    return imgName;
  }

  public void setImgName(String imgName) {
    this.imgName = imgName;
  }


  public String getImgUrl() {
    return imgUrl;
  }

  public void setImgUrl(String imgUrl) {
    this.imgUrl = imgUrl;
  }


  public String getSpuImgId() {
    return spuImgId;
  }

  public void setSpuImgId(String spuImgId) {
    this.spuImgId = spuImgId;
  }


  public String getIsDefault() {
    return isDefault;
  }

  public void setIsDefault(String isDefault) {
    this.isDefault = isDefault;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuInfo.java
================================================
package com.lee.gmall.bean;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

public class SkuInfo implements Serializable {

  @Id
  @GeneratedValue(generator = "JDBC")//增加这个注解解决了通用Mapper的insert不返回主键的问题
  private String id;
  private String spuId;
  private BigDecimal price;
  private String skuName;
  private String skuDesc;
  private String weight;
  private String tmId;
  private String catalog3Id;
  private String skuDefaultImg;

  @Transient
  List<SkuImage> skuImageList;
  @Transient
  List<SkuAttrValue> skuAttrValueList;
  @Transient
  List<SkuSaleAttrValue> skuSaleAttrValueList;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSpuId() {
    return spuId;
  }

  public void setSpuId(String spuId) {
    this.spuId = spuId;
  }


  public BigDecimal getPrice() {
    return price;
  }

  public void setPrice(BigDecimal price) {
    this.price = price;
  }


  public String getSkuName() {
    return skuName;
  }

  public void setSkuName(String skuName) {
    this.skuName = skuName;
  }


  public String getSkuDesc() {
    return skuDesc;
  }

  public void setSkuDesc(String skuDesc) {
    this.skuDesc = skuDesc;
  }


  public String getWeight() {
    return weight;
  }

  public void setWeight(String weight) {
    this.weight = weight;
  }


  public String getTmId() {
    return tmId;
  }

  public void setTmId(String tmId) {
    this.tmId = tmId;
  }


  public String getCatalog3Id() {
    return catalog3Id;
  }

  public void setCatalog3Id(String catalog3Id) {
    this.catalog3Id = catalog3Id;
  }


  public String getSkuDefaultImg() {
    return skuDefaultImg;
  }

  public void setSkuDefaultImg(String skuDefaultImg) {

    this.skuDefaultImg = skuDefaultImg;
  }

  public List<SkuImage> getSkuImageList() {
    return skuImageList;
  }

  public void setSkuImageList(List<SkuImage> skuImageList) {
    this.skuImageList = skuImageList;
  }

  public List<SkuAttrValue> getSkuAttrValueList() {
    return skuAttrValueList;
  }

  public void setSkuAttrValueList(List<SkuAttrValue> skuAttrValueList) {
    this.skuAttrValueList = skuAttrValueList;
  }

  public List<SkuSaleAttrValue> getSkuSaleAttrValueList() {
    return skuSaleAttrValueList;
  }

  public void setSkuSaleAttrValueList(List<SkuSaleAttrValue> skuSaleAttrValueList) {
    this.skuSaleAttrValueList = skuSaleAttrValueList;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsAttrValue.java
================================================
package com.lee.gmall.bean;

import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;

public class SkuLsAttrValue implements Serializable {


    String valueId;

    public String getValueId() {
        return valueId;
    }

    public void setValueId(String valueId) {
        this.valueId = valueId;
    }


}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsInfo.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

public class SkuLsInfo implements Serializable {


        String id;

        BigDecimal price;

        String skuName;

        String skuDesc;

        String catalog3Id;

        String skuDefaultImg;

        Long hotScore=0L;

        List<SkuLsAttrValue> skuAttrValueList;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getSkuName() {
        return skuName;
    }

    public void setSkuName(String skuName) {
        this.skuName = skuName;
    }

    public String getSkuDesc() {
        return skuDesc;
    }

    public void setSkuDesc(String skuDesc) {
        this.skuDesc = skuDesc;
    }

    public String getCatalog3Id() {
        return catalog3Id;
    }

    public void setCatalog3Id(String catalog3Id) {
        this.catalog3Id = catalog3Id;
    }

    public String getSkuDefaultImg() {
        return skuDefaultImg;
    }

    public void setSkuDefaultImg(String skuDefaultImg) {
        this.skuDefaultImg = skuDefaultImg;
    }

    public Long getHotScore() {
        return hotScore;
    }

    public void setHotScore(Long hotScore) {
        this.hotScore = hotScore;
    }

    public List<SkuLsAttrValue> getSkuAttrValueList() {
        return skuAttrValueList;
    }

    public void setSkuAttrValueList(List<SkuLsAttrValue> skuAttrValueList) {
        this.skuAttrValueList = skuAttrValueList;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsParam.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class SkuLsParam implements Serializable{

    String  catalog3Id;

    String[] valueId;

    String keyword;

    int  pageNo=1;

    int pageSize=20;

    public String getCatalog3Id() {
        return catalog3Id;
    }

    public void setCatalog3Id(String catalog3Id) {
        this.catalog3Id = catalog3Id;
    }

    public String[] getValueId() {
        return valueId;
    }

    public void setValueId(String[] valueId) {
        this.valueId = valueId;
    }

    public String getKeyword() {
        return keyword;
    }

    public void setKeyword(String keyword) {
        this.keyword = keyword;
    }

    public int getPageNo() {
        return pageNo;
    }

    public void setPageNo(int pageNo) {
        this.pageNo = pageNo;
    }

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsResult.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;
import java.util.List;

public class SkuLsResult implements Serializable{

    List<SkuLsInfo> skuLsInfoList;

    int Total;

    List<String> valueIdList;

    public List<SkuLsInfo> getSkuLsInfoList() {
        return skuLsInfoList;
    }

    public void setSkuLsInfoList(List<SkuLsInfo> skuLsInfoList) {
        this.skuLsInfoList = skuLsInfoList;
    }

    public int getTotal() {
        return Total;
    }

    public void setTotal(int total) {
        Total = total;
    }

    public List<String> getValueIdList() {
        return valueIdList;
    }

    public void setValueIdList(List<String> valueIdList) {
        this.valueIdList = valueIdList;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuSaleAttrValue.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class SkuSaleAttrValue implements Serializable {

  private String id;
  private String skuId;
  private String saleAttrId;
  private String saleAttrValueId;
  private String saleAttrName;
  private String saleAttrValueName;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSkuId() {
    return skuId;
  }

  public void setSkuId(String skuId) {
    this.skuId = skuId;
  }


  public String getSaleAttrId() {
    return saleAttrId;
  }

  public void setSaleAttrId(String saleAttrId) {
    this.saleAttrId = saleAttrId;
  }


  public String getSaleAttrValueId() {
    return saleAttrValueId;
  }

  public void setSaleAttrValueId(String saleAttrValueId) {
    this.saleAttrValueId = saleAttrValueId;
  }


  public String getSaleAttrName() {
    return saleAttrName;
  }

  public void setSaleAttrName(String saleAttrName) {
    this.saleAttrName = saleAttrName;
  }


  public String getSaleAttrValueName() {
    return saleAttrValueName;
  }

  public void setSaleAttrValueName(String saleAttrValueName) {
    this.saleAttrValueName = saleAttrValueName;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuColor.java
================================================
package com.lee.gmall.bean;


public class SpuColor {

  private long id;
  private long spuId;
  private String color;
  private String fileName;
  private String isEnabled;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSpuId() {
    return spuId;
  }

  public void setSpuId(long spuId) {
    this.spuId = spuId;
  }


  public String getColor() {
    return color;
  }

  public void setColor(String color) {
    this.color = color;
  }


  public String getFileName() {
    return fileName;
  }

  public void setFileName(String fileName) {
    this.fileName = fileName;
  }


  public String getIsEnabled() {
    return isEnabled;
  }

  public void setIsEnabled(String isEnabled) {
    this.isEnabled = isEnabled;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuImage.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class SpuImage implements Serializable {

  private String id;
  private String spuId;
  private String imgName;
  private String imgUrl;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSpuId() {
    return spuId;
  }

  public void setSpuId(String spuId) {
    this.spuId = spuId;
  }


  public String getImgName() {
    return imgName;
  }

  public void setImgName(String imgName) {
    this.imgName = imgName;
  }


  public String getImgUrl() {
    return imgUrl;
  }

  public void setImgUrl(String imgUrl) {
    this.imgUrl = imgUrl;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuInfo.java
================================================
package com.lee.gmall.bean;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;

public class SpuInfo implements Serializable {

    @Id
    @GeneratedValue(generator = "JDBC")//增加这个注解解决了通用Mapper的insert不返回主键的问题
  private String id;
  private String spuName;
  private String description;
  private String catalog3Id;
  private String tmId;

  @Transient
  private List<SpuSaleAttr> spuSaleAttrList;
  @Transient
  private List<SpuImage> spuImageList;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSpuName() {
    return spuName;
  }

  public void setSpuName(String spuName) {
    this.spuName = spuName;
  }


  public String getDescription() {
    return description;
  }

  public void setDescription(String description) {
    this.description = description;
  }


  public String getCatalog3Id() {
    return catalog3Id;
  }

  public void setCatalog3Id(String catalog3Id) {
    this.catalog3Id = catalog3Id;
  }


  public String getTmId() {
    return tmId;
  }

  public void setTmId(String tmId) {
    this.tmId = tmId;
  }

  public List<SpuSaleAttr> getSpuSaleAttrList() {
        return spuSaleAttrList;
  }

  public void setSpuSaleAttrList(List<SpuSaleAttr> spuSaleAttrList) {
        this.spuSaleAttrList = spuSaleAttrList;
    }

    public List<SpuImage> getSpuImageList() {

        return spuImageList;
    }

    public void setSpuImageList(List<SpuImage> spuImageList) {
        this.spuImageList = spuImageList;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuPoster.java
================================================
package com.lee.gmall.bean;


public class SpuPoster {

  private long id;
  private long spuId;
  private String fileName;
  private String fileType;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSpuId() {
    return spuId;
  }

  public void setSpuId(long spuId) {
    this.spuId = spuId;
  }


  public String getFileName() {
    return fileName;
  }

  public void setFileName(String fileName) {
    this.fileName = fileName;
  }


  public String getFileType() {
    return fileType;
  }

  public void setFileType(String fileType) {
    this.fileType = fileType;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttr.java
================================================
package com.lee.gmall.bean;

import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

public class SpuSaleAttr implements Serializable {

  private String id;
  private String spuId;
  private String saleAttrId;
  private String saleAttrName;

  @Transient
  private List<SpuSaleAttrValue> spuSaleAttrValueList;

  @Transient
  private Map<String, String> spuSaleAttrValueJson;

  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSpuId() {
    return spuId;
  }

  public void setSpuId(String spuId) {
    this.spuId = spuId;
  }


  public String getSaleAttrId() {
    return saleAttrId;
  }

  public void setSaleAttrId(String saleAttrId) {
    this.saleAttrId = saleAttrId;
  }


  public String getSaleAttrName() {
    return saleAttrName;
  }

  public List<SpuSaleAttrValue> getSpuSaleAttrValueList() {
    return spuSaleAttrValueList;
  }

  public void setSpuSaleAttrValueList(List<SpuSaleAttrValue> spuSaleAttrValueList) {
    this.spuSaleAttrValueList = spuSaleAttrValueList;
  }

  public Map<String, String> getSpuSaleAttrValueJson() {
    return spuSaleAttrValueJson;
  }

  public void setSpuSaleAttrValueJson(Map<String, String> spuSaleAttrValueJson) {
    this.spuSaleAttrValueJson = spuSaleAttrValueJson;
  }

  public void setSaleAttrName(String saleAttrName) {

    this.saleAttrName = saleAttrName;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttrValue.java
================================================
package com.lee.gmall.bean;

import javax.persistence.Transient;
import java.io.Serializable;

public class SpuSaleAttrValue implements Serializable {

  private String id;
  private String spuId;
  private String saleAttrId;
  private String saleAttrValueName;

    @Transient
    private String isChecked;



  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getSpuId() {
    return spuId;
  }

  public void setSpuId(String spuId) {
    this.spuId = spuId;
  }


  public String getSaleAttrId() {
    return saleAttrId;
  }

  public void setSaleAttrId(String saleAttrId) {
    this.saleAttrId = saleAttrId;
  }


  public String getSaleAttrValueName() {
    return saleAttrValueName;
  }

  public void setSaleAttrValueName(String saleAttrValueName) {
    this.saleAttrValueName = saleAttrValueName;
  }

    public String getIsChecked() {
        return isChecked;
    }

    public void setIsChecked(String isChecked) {
        this.isChecked = isChecked;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSize.java
================================================
package com.lee.gmall.bean;


public class SpuSize {

  private long id;
  private long spuId;
  private String spuSize;
  private String isEnabled;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSpuId() {
    return spuId;
  }

  public void setSpuId(long spuId) {
    this.spuId = spuId;
  }


  public String getSpuSize() {
    return spuSize;
  }

  public void setSpuSize(String spuSize) {
    this.spuSize = spuSize;
  }


  public String getIsEnabled() {
    return isEnabled;
  }

  public void setIsEnabled(String isEnabled) {
    this.isEnabled = isEnabled;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuVersion.java
================================================
package com.lee.gmall.bean;


public class SpuVersion {

  private long id;
  private long spuId;
  private String spuVersion;
  private String isEnabled;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSpuId() {
    return spuId;
  }

  public void setSpuId(long spuId) {
    this.spuId = spuId;
  }


  public String getSpuVersion() {
    return spuVersion;
  }

  public void setSpuVersion(String spuVersion) {
    this.spuVersion = spuVersion;
  }


  public String getIsEnabled() {
    return isEnabled;
  }

  public void setIsEnabled(String isEnabled) {
    this.isEnabled = isEnabled;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserAddress.java
================================================
package com.lee.gmall.bean;

import java.io.Serializable;

public class UserAddress implements Serializable {

  private String id;
  private String userAddress;
  private String userId;
  private String consignee;
  private String phoneNum;
  private String isDefault;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getUserAddress() {
    return userAddress;
  }

  public void setUserAddress(String userAddress) {
    this.userAddress = userAddress;
  }


  public String getUserId() {
    return userId;
  }

  public void setUserId(String userId) {
    this.userId = userId;
  }


  public String getConsignee() {
    return consignee;
  }

  public void setConsignee(String consignee) {
    this.consignee = consignee;
  }


  public String getPhoneNum() {
    return phoneNum;
  }

  public void setPhoneNum(String phoneNum) {
    this.phoneNum = phoneNum;
  }


  public String getIsDefault() {
    return isDefault;
  }

  public void setIsDefault(String isDefault) {
    this.isDefault = isDefault;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserDetails.java
================================================
package com.lee.gmall.bean;


public class UserDetails {

  private long id;
  private long idCard;
  private long userId;
  private String userPhone;
  private String hometown;
  private long addressId;
  private String sex;
  private java.sql.Timestamp createTime;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getIdCard() {
    return idCard;
  }

  public void setIdCard(long idCard) {
    this.idCard = idCard;
  }


  public long getUserId() {
    return userId;
  }

  public void setUserId(long userId) {
    this.userId = userId;
  }


  public String getUserPhone() {
    return userPhone;
  }

  public void setUserPhone(String userPhone) {
    this.userPhone = userPhone;
  }


  public String getHometown() {
    return hometown;
  }

  public void setHometown(String hometown) {
    this.hometown = hometown;
  }


  public long getAddressId() {
    return addressId;
  }

  public void setAddressId(long addressId) {
    this.addressId = addressId;
  }


  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }


  public java.sql.Timestamp getCreateTime() {
    return createTime;
  }

  public void setCreateTime(java.sql.Timestamp createTime) {
    this.createTime = createTime;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserInfo.java
================================================
package com.lee.gmall.bean;

import javax.persistence.Transient;
import java.io.Serializable;
import java.util.List;

public class UserInfo implements Serializable {

  private String id;
  private String loginName;
  private String nickName;
  private String passwd;
  private String name;
  private String phoneNum;
  private String email;
  private String headImg;
  private String userLevel;

  @Transient
  List<UserAddress> userAddressList;


  public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }


  public String getLoginName() {
    return loginName;
  }

  public void setLoginName(String loginName) {
    this.loginName = loginName;
  }


  public String getNickName() {
    return nickName;
  }

  public void setNickName(String nickName) {
    this.nickName = nickName;
  }


  public String getPasswd() {
    return passwd;
  }

  public void setPasswd(String passwd) {
    this.passwd = passwd;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


  public String getPhoneNum() {
    return phoneNum;
  }

  public void setPhoneNum(String phoneNum) {
    this.phoneNum = phoneNum;
  }


  public String getEmail() {
    return email;
  }

  public void setEmail(String email) {
    this.email = email;
  }


  public String getHeadImg() {
    return headImg;
  }

  public void setHeadImg(String headImg) {
    this.headImg = headImg;
  }


  public String getUserLevel() {
    return userLevel;
  }

  public void setUserLevel(String userLevel) {

    this.userLevel = userLevel;
  }

  public List<UserAddress> getUserAddressList() {
    return userAddressList;
  }

  public void setUserAddressList(List<UserAddress> userAddressList) {
    this.userAddressList = userAddressList;
  }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareInfo.java
================================================
package com.lee.gmall.bean;


public class WareInfo {

  private long id;
  private String name;
  private String address;
  private String areacode;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }


  public String getAddress() {
    return address;
  }

  public void setAddress(String address) {
    this.address = address;
  }


  public String getAreacode() {
    return areacode;
  }

  public void setAreacode(String areacode) {
    this.areacode = areacode;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTask.java
================================================
package com.lee.gmall.bean;


public class WareOrderTask {

  private long id;
  private long orderId;
  private String consignee;
  private String consigneeTel;
  private String deliveryAddress;
  private String orderComment;
  private String paymentWay;
  private String taskStatus;
  private String orderBody;
  private String trackingNo;
  private java.sql.Timestamp createTime;
  private long wareId;
  private String taskComment;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getOrderId() {
    return orderId;
  }

  public void setOrderId(long orderId) {
    this.orderId = orderId;
  }


  public String getConsignee() {
    return consignee;
  }

  public void setConsignee(String consignee) {
    this.consignee = consignee;
  }


  public String getConsigneeTel() {
    return consigneeTel;
  }

  public void setConsigneeTel(String consigneeTel) {
    this.consigneeTel = consigneeTel;
  }


  public String getDeliveryAddress() {
    return deliveryAddress;
  }

  public void setDeliveryAddress(String deliveryAddress) {
    this.deliveryAddress = deliveryAddress;
  }


  public String getOrderComment() {
    return orderComment;
  }

  public void setOrderComment(String orderComment) {
    this.orderComment = orderComment;
  }


  public String getPaymentWay() {
    return paymentWay;
  }

  public void setPaymentWay(String paymentWay) {
    this.paymentWay = paymentWay;
  }


  public String getTaskStatus() {
    return taskStatus;
  }

  public void setTaskStatus(String taskStatus) {
    this.taskStatus = taskStatus;
  }


  public String getOrderBody() {
    return orderBody;
  }

  public void setOrderBody(String orderBody) {
    this.orderBody = orderBody;
  }


  public String getTrackingNo() {
    return trackingNo;
  }

  public void setTrackingNo(String trackingNo) {
    this.trackingNo = trackingNo;
  }


  public java.sql.Timestamp getCreateTime() {
    return createTime;
  }

  public void setCreateTime(java.sql.Timestamp createTime) {
    this.createTime = createTime;
  }


  public long getWareId() {
    return wareId;
  }

  public void setWareId(long wareId) {
    this.wareId = wareId;
  }


  public String getTaskComment() {
    return taskComment;
  }

  public void setTaskComment(String taskComment) {
    this.taskComment = taskComment;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTaskDetail.java
================================================
package com.lee.gmall.bean;


public class WareOrderTaskDetail {

  private long id;
  private long skuId;
  private String skuName;
  private long skuNums;
  private long taskId;
  private long skuNum;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSkuId() {
    return skuId;
  }

  public void setSkuId(long skuId) {
    this.skuId = skuId;
  }


  public String getSkuName() {
    return skuName;
  }

  public void setSkuName(String skuName) {
    this.skuName = skuName;
  }


  public long getSkuNums() {
    return skuNums;
  }

  public void setSkuNums(long skuNums) {
    this.skuNums = skuNums;
  }


  public long getTaskId() {
    return taskId;
  }

  public void setTaskId(long taskId) {
    this.taskId = taskId;
  }


  public long getSkuNum() {
    return skuNum;
  }

  public void setSkuNum(long skuNum) {
    this.skuNum = skuNum;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareSku.java
================================================
package com.lee.gmall.bean;


public class WareSku {

  private long id;
  private long skuId;
  private long warehouseId;
  private long stock;
  private String stockName;
  private long stockLocked;


  public long getId() {
    return id;
  }

  public void setId(long id) {
    this.id = id;
  }


  public long getSkuId() {
    return skuId;
  }

  public void setSkuId(long skuId) {
    this.skuId = skuId;
  }


  public long getWarehouseId() {
    return warehouseId;
  }

  public void setWarehouseId(long warehouseId) {
    this.warehouseId = warehouseId;
  }


  public long getStock() {
    return stock;
  }

  public void setStock(long stock) {
    this.stock = stock;
  }


  public String getStockName() {
    return stockName;
  }

  public void setStockName(String stockName) {
    this.stockName = stockName;
  }


  public long getStockLocked() {
    return stockLocked;
  }

  public void setStockLocked(long stockLocked) {
    this.stockLocked = stockLocked;
  }

}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/OrderStatus.java
================================================
package com.lee.gmall.bean.enums;

/**
 * @param
 * @return
 */
public enum OrderStatus {
    UNPAID("未支付"),
    PAID("已支付" ),
    WAITING_DELEVER("待发货"),
    DELEVERED("已发货"),
    CLOSED("已关闭"),
    FINISHED("已完结") ,
    SPLIT("订单已拆分");

    private String comment ;


    OrderStatus(String comment ){
        this.comment=comment;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }


}



================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentStatus.java
================================================
package com.lee.gmall.bean.enums;

/**
 * @param
 * @return
 */
public enum PaymentStatus {

    UNPAID("支付中"),
    PAID("已支付"),
    PAY_FAIL("支付失败"),
    ClOSED("已关闭");

    private String name ;

    PaymentStatus(String name) {
        this.name=name;
    }
}



================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentWay.java
================================================
package com.lee.gmall.bean.enums;

/**
 * @param
 * @return
 */
public enum PaymentWay {
    ONLINE("在线支付"),
    OUTLINE("货到付款" );

    private String comment ;


    PaymentWay(String comment ){
        this.comment=comment;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }


}



================================================
FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/ProcessStatus.java
================================================
package com.lee.gmall.bean.enums;

/**
 * @param
 * @return
 */
public enum ProcessStatus {
    UNPAID("未支付", OrderStatus.UNPAID),
    PAID("已支付", OrderStatus.PAID),
    NOTIFIED_WARE("已通知仓储", OrderStatus.PAID),
    WAITING_DELEVER("待发货", OrderStatus.WAITING_DELEVER),
    STOCK_EXCEPTION("库存异常", OrderStatus.PAID),
    DELEVERED("已发货", OrderStatus.DELEVERED),
    CLOSED("已关闭", OrderStatus.CLOSED),
    FINISHED("已完结", OrderStatus.FINISHED),
    PAY_FAIL("支付失败", OrderStatus.UNPAID),
    SPLIT("订单已拆分", OrderStatus.SPLIT);

    private String comment;
    private OrderStatus orderStatus;

    ProcessStatus(String comment, OrderStatus orderStatus) {
        this.comment = comment;
        this.orderStatus = orderStatus;
    }

    public String getComment() {
        return comment;
    }

    public void setComment(String comment) {
        this.comment = comment;
    }

    public OrderStatus getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(OrderStatus orderStatus) {
        this.orderStatus = orderStatus;
    }
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/AttrService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.BaseAttrInfo;
import com.lee.gmall.bean.BaseAttrValue;

import java.util.List;
import java.util.Set;

public interface AttrService {

    List<BaseAttrInfo> getAttrList(String catalog3Id);

    void saveAttr(BaseAttrInfo baseAttrInfo);

    List<BaseAttrValue> getAttrValue(String attrName);

    void deleteAttr(String attrId);

    List<BaseAttrInfo> getAttrListByCtg3Id(String ctg3Id);

    List<BaseAttrInfo> getAttrListByValueIds(Set<String> valueIds);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/CartService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.CartInfo;

import java.util.List;

public interface CartService {
    CartInfo ifCartExist(CartInfo cartInfo);

    void updateCart(CartInfo cartInfoDb);

    void insertCart(CartInfo cartInfo);

    void syncCache(String userId);

    List<CartInfo> getCartCache(String userId);

    void updateCartChecked(CartInfo cartInfo);

    void combineCart(List<CartInfo> cartInfos, String userId);

    List<CartInfo> getCartCacheByChecked(String userId);

    void deleteCartById(List<CartInfo> cartInfos);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/CatalogService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.BaseCatalog1;
import com.lee.gmall.bean.BaseCatalog2;
import com.lee.gmall.bean.BaseCatalog3;

import java.util.List;

public interface CatalogService {
    List<BaseCatalog1> getCatalog1();

    List<BaseCatalog2> getCatalog2(String catalog1Id);

    List<BaseCatalog3> getCatalog3(String catalog2Id);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/OrderService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.OrderInfo;

public interface OrderService {
    String genTradeCode(String userId);

    boolean checkTradeCode(String tradeCode, String userId);

    void saveOrder(OrderInfo orderInfo);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/SearchService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.SkuLsInfo;
import com.lee.gmall.bean.SkuLsParam;

import java.util.List;

public interface SearchService {

    List<SkuLsInfo> search(SkuLsParam skuLsParam);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/SkuService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.SkuInfo;

import java.math.BigDecimal;
import java.util.List;

public interface SkuService {

    List<SkuInfo> getSkuListBySpuId(String spuId);

    void saveSku(SkuInfo skuInfo);

    SkuInfo getSkuById(String skuId);

    List<SkuInfo> getSkuListByCatalog3Id(String catalog3Id);

    boolean checkPrice(BigDecimal skuPrice, String skuId);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/SpuService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.*;

import java.util.List;
import java.util.Map;

public interface SpuService {
    List<SpuInfo> spuList(String catalog3Id);

    List<BaseSaleAttr> baseSaleAttrList();

    void saveSpu(SpuInfo spuInfo);

    List<SpuImage> getSpuImageList(String spuId);

    List<SpuSaleAttr> getSpuSaleAttrList(String spuId);

    void deleteSpu(String spuId);

    List<SpuSaleAttr> getSpuSaleAttrListBySpuId(String spuId);

    List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(Map<String, String> idMap);

    List<SkuInfo> getSkuSaleAttrValueListBySpu(String spuId);
}


================================================
FILE: gmall-api/src/main/java/com/lee/gmall/service/UserService.java
================================================
package com.lee.gmall.service;

import com.lee.gmall.bean.UserAddress;
import com.lee.gmall.bean.UserInfo;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface UserService {

    List<UserInfo> userInfoList();

    UserInfo login(UserInfo userInfo);

    List<UserAddress> getUserAddressList(String userId);
}


================================================
FILE: gmall-cart-service/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>

        <groupId>com.lee.gmall</groupId>

        <artifactId>gmall-parent</artifactId>

        <version>1.0-SNAPSHOT</version>


    </parent>
    <groupId>com.lee.gmall</groupId>
    <artifactId>gmall-cart-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gmall-cart-service</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.lee.gmall</groupId>
            <artifactId>gmall-api</artifactId>
            <version>1.0-SNAPSHOT</version>

        </dependency>
        <dependency>
            <groupId>com.lee.gmall</groupId>
            <artifactId>gmall-service-util</artifactId>
            <version>1.0-SNAPSHOT</version>

        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


================================================
FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/GmallCartServiceApplication.java
================================================
package com.lee.gmall.cart;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication
@MapperScan(basePackages = "com.lee.gmall.cart.mapper")
@ComponentScan("com.lee.gmall.util")
public class GmallCartServiceApplication {

    public static void main(String[] args) {
        SpringApplication.run(GmallCartServiceApplication.class, args);
    }

}


================================================
FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/mapper/CartInfoMapper.java
================================================
package com.lee.gmall.cart.mapper;

import com.lee.gmall.bean.CartInfo;
import tk.mybatis.mapper.common.Mapper;

public interface CartInfoMapper extends Mapper<CartInfo> {
}


================================================
FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/service/impl/CartServiceImpl.java
================================================
package com.lee.gmall.cart.service.impl;

import com.alibaba.dubbo.config.annotation.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.lee.gmall.bean.CartInfo;
import com.lee.gmall.bean.UserInfo;
import com.lee.gmall.cart.mapper.CartInfoMapper;
import com.lee.gmall.service.CartService;
import com.lee.gmall.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import redis.clients.jedis.Jedis;
import tk.mybatis.mapper.entity.Example;

import java.math.BigDecimal;
import java.util.*;

@Service
public class CartServiceImpl implements CartService {

    @Autowired
    CartInfoMapper cartInfoMapper;

    @Autowired
    RedisUtil redisUtil;

    @Override
    public CartInfo ifCartExist(CartInfo cartInfo) {

        boolean ifCartExist = false;

        CartInfo info = new CartInfo();
        info.setUserId(cartInfo.getUserId());
        info.setSkuId(cartInfo.getSkuId());
        return cartInfoMapper.selectOne(info);
    }

    @Override
    public void updateCart(CartInfo cartInfoDb) {
        cartInfoMapper.updateByPrimaryKeySelective(cartInfoDb);
    }

    @Override
    public void insertCart(CartInfo cartInfo) {
        cartInfoMapper.insertSelective(cartInfo);
    }

    @Override
    public void syncCache(String userId) {
        Jedis jedis = redisUtil.getJedis();

        CartInfo cartInfo = new CartInfo();
        cartInfo.setUserId(userId);
        List<CartInfo> cartInfos = cartInfoMapper.select(cartInfo);

        Map<String, String> cartInfoMap = new HashMap<>();
        for (CartInfo info : cartInfos) {
            cartInfoMap.put(info.getId(), JSON.toJSONString(info));
        }
        if (cartInfoMap != null && cartInfoMap.size() > 0) {
            jedis.hmset("carts:" + userId + ":info", cartInfoMap);
        }
        jedis.close();

    }

    @Override
    public List<CartInfo> getCartCache(String userId) {
        Jedis jedis = redisUtil.getJedis();
        List<CartInfo> cartInfos = new ArrayList<>();

        List<String> hvals = jedis.hvals("carts:" + userId + ":info");
        if (hvals != null && hvals.size() > 0) {
            for (String hval : hvals) {
                CartInfo cartInfo = JSON.parseObject(hval,CartInfo.class);
                cartInfos.add(cartInfo);
            }
        }

        return cartInfos;
    }


    @Override
    public void updateCartChecked(CartInfo cartInfo) {
        Example example = new Example(CartInfo.class);
        example.createCriteria().andEqualTo("skuId", cartInfo.getSkuId()).andEqualTo("userId", cartInfo.getUserId());
        cartInfoMapper.updateByExampleSelective(cartInfo, example);

        syncCache(cartInfo.getUserId());

    }

    @Override
    public void combineCart(List<CartInfo> cartInfos, String userId) {
        if (cartInfos != null) {
            for (CartInfo cartInfo : cartInfos) {
                CartInfo info = ifCartExist(cartInfo);
                if (info == null) {
                    //插入
                    cartInfo.setUserId(userId);
                    cartInfoMapper.insertSelective(cartInfo);
                } else {
                    //更新
                    info.setSkuNum(info.getSkuNum() + cartInfo.getSkuNum());
                    info.setCartPrice(info.getCartPrice().multiply(new BigDecimal(info.getSkuNum())));
                    cartInfoMapper.updateByPrimaryKeySelective(info);
                }
            }
        }

        //同步缓存
        syncCache(userId);

    }

    @Override
    public List<CartInfo> getCartCacheByChecked(String userId) {
        Jedis jedis = redisUtil.getJedis();
        List<CartInfo> cartInfos = new ArrayList<>();

        List<String> hvals = jedis.hvals("carts:" + userId + ":info");
        if (hvals != null && hvals.size() > 0) {
            //取缓存中数据
            for (String hval : hvals) {
                CartInfo cartInfo = JSON.parseObject(hval, CartInfo.class);
                if (cartInfo.getIsChecked().equals("1")) {
                    cartInfos.add(cartInfo);
                }
            }
        } else {
            //取数据库中数据
            CartInfo cartInfo = new CartInfo();
            cartInfo.setUserId(userId);
            cartInfo.setIsChecked("1");
            cartInfos = cartInfoMapper.select(cartInfo);

        }



        return cartInfos;
    }

    @Override
    public void deleteCartById(List<CartInfo> cartInfos) {

        for (CartInfo cartInfo : cartInfos) {
            cartInfoMapper.deleteByPrimaryKey(cartInfo);
        }

        //同步缓存
        syncCache(cartInfos.get(0).getUserId());

    }

}


================================================
FILE: gmall-cart-service/src/main/resources/application.properties
================================================
server.port=8074

#jdbc
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.url=jdbc:mysql://localhost:3306/gmall0328?characterEncoding=UTF-8

#mybatis
mybatis.configuration.map-underscore-to-camel-case=true
mybatis.mapper-locations=classpath:mapper/*Mapper.xml

#zookeeper
spring.dubbo.registry.address=192.168.159.129:2181
spring.dubbo.registry.protocol=zookeeper

#dubbo
spring.dubbo.application.name=gmall-cart-service
spring.dubbo.protocol.name=dubbo
spring.dubbo.base-package=com.lee.gmall

#redis
spring.redis.host=192.168.159.129
spring.redis.port=6379
spring.redis.database=0 



================================================
FILE: gmall-cart-service/src/test/java/com/lee/gmall/cart/GmallCartServiceApplicationTests.java
================================================
package com.lee.gmall.cart;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class GmallCartServiceApplicationTests {

    @Test
    public void contextLoads() {
    }

}


================================================
FILE: gmall-cart-web/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>

        <groupId>com.lee.gmall</groupId>

        <artifactId>gmall-parent</artifactId>

        <version>1.0-SNAPSHOT</version>

    </parent>
    <groupId>com.lee.gmall</groupId>
    <artifactId>gmall-cart-web</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gmall-cart-web</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.lee.gmall</groupId>
            <artifactId>gmall-api</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>com.lee.gmall</groupId>
            <artifactId>gmall-web-util</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>


================================================
FILE: gmall-cart-web/src/main/java/com/lee/gmall/GmallCartWebApplication.java
================================================
package com.lee.gmall;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GmallCartWebApplication {



    public static void main(String[] args) {
        SpringApplication.run(GmallCartWebApplication.class, args);
    }

}


================================================
FILE: gmall-cart-web/src/main/java/com/lee/gmall/cart/controller/CartController.java
================================================
package com.lee.gmall.cart.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.alibaba.fastjson.JSON;
import com.lee.gmall.annotation.LoginRequire;
import com.lee.gmall.bean.CartInfo;
import com.lee.gmall.bean.SkuInfo;
import com.lee.gmall.service.CartService;
import com.lee.gmall.service.SkuService;
import com.lee.gmall.util.CookieUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Controller
public class CartController {

    @Reference
    SkuService skuService;

    @Reference
    CartService cartService;


    @LoginRequire(ifNeedSuccess = false)
    @RequestMapping("checkCart")
    public String checkCart(HttpServletRequest request, HttpServletResponse response, CartInfo cartInfo, ModelMap map) {
        String userId = (String) request.getAttribute("userId");
        List<CartInfo> cartInfos = new ArrayList<>();

        //修改购物车选中状态
        if (StringUtils.isNotBlank(userId)) {
            //更新数据库
            cartInfo.setUserId(userId);
            cartService.updateCartChecked(cartInfo);
        } else {
            //更新cookie
            String cartListCookie = CookieUtil.getCookieValue(request, "cartListCookie", true);
            if (StringUtils.isNotBlank(cartListCookie)) {
                cartInfos = JSON.parseArray(cartListCookie, CartInfo.class);
                for (CartInfo info : cartInfos) {
                    if (info.getSkuId().equals(cartInfo.getSkuId())) {
                        info.setIsChecked(cartInfo.getIsChecked());
                    }
                }
            }
            CookieUtil.setCookie(request, response, "cartListCookie", JSON.toJSONString(cartInfos), 60 * 60 * 24 * 7, true);
        }

        //更新数据后将最新数据查询出来
        if (StringUtils.isBlank(userId)) {
            //取cookie中的数据
            String cartListCookie = CookieUtil.getCookieValue(request, "cartListCookie", true);
            if (StringUtils.isNotBlank(cartListCookie)) {
                cartInfos = JSON.parseArray(cartListCookie, CartInfo.class);
            }
        } else {
            //取缓存中的数据
            cartInfos = cartService.getCartCache(userId);
        }

        map.put("cartList", cartInfos);

        return "cartListInner";
    }


    @LoginRequire(ifNeedSuccess = false)
    @RequestMapping("cartList")
    public String cartList(HttpServletRequest request, ModelMap map) {
        String userId = (String) request.getAttribute("userId");
        List<CartInfo> cartInfos = new ArrayList<>();

        if (StringUtils.isBlank(userId)) {
            //取cookie中的数据
            String cartListCookie = CookieUtil.getCookieValue(request, "cartListCookie", true);
            if (StringUtils.isNotBlank(cartListCookie)) {
                 cartInfos = JSON.parseArray(cartListCookie, CartInfo.class);
            }
        } else {
            //取缓存中的数据
            cartInfos = cartService.getCartCache(userId);
        }


        map.put("cartList", cartInfos);
        map.put("totalPrice", getTotalPrice(cartInfos));
        return "cartList";
    }

    private BigDecimal getTotalPrice(List<CartInfo> cartInfos) {
        BigDecimal totalPrice = new BigDecimal("0");
        for (CartInfo cartInfo : cartInfos) {
            totalPrice = totalPrice.add(cartInfo.getCartPrice());
        }

        return totalPrice;
    }

    @LoginRequire(ifNeedSuccess = false)
    @RequestMapping("addToCart")
    public String addToCart(HttpServletRequest request, HttpServletResponse response, CartInfo cartInfo) {
        //根据前台传入的skuId封装cartInfo
        SkuInfo sku = skuService.getSkuById(cartInfo.getSkuId());
        cartInfo.setSkuPrice(sku.getPrice());
        cartInfo.setSkuName(sku.getSkuName());
        cartInfo.setCartPrice(sku.getPrice().multiply(new BigDecimal(cartInfo.getSkuNum())));
        cartInfo.setImgUrl(sku.getSkuDefaultImg());
        cartInfo.setIsChecked("1");

        String userId = (String) request.getAttribute("userId");
        List<CartInfo> cartInfos = new ArrayList<>();

        if (StringUtils.isBlank(userId)) {
            //用户未登录,添加到cookie
            String cartListCookieStr = CookieUtil.getCookieValue(request, "cartListCookie", true);
            if (StringUtils.isBlank(cartListCookieStr)) {
                //存在购物车列表cookie
                cartInfos.add(cartInfo);
            } else {
                //不存在购物车列表cookie
                cartInfos = JSON.parseArray(cartListCookieStr, CartInfo.class);
                //判断是否为重复的sku
                boolean isNewCart = isNewCart(cartInfos, cartInfo);
                if (isNewCart) {
                    cartInfos.add(cartInfo);
                } else {
                    for (CartInfo info : cartInfos) {
                        String skuId = info.getSkuId();
                        String skuId1 = cartInfo.getSkuId();
                        if (skuId.equals(skuId1)) {
                            info.setSkuNum(info.getSkuNum() + cartInfo.getSkuNum());
                            info.setCartPrice(info.getSkuPrice().multiply(new BigDecimal(info.getSkuNum())));
                        }
                    }
                }
            }
            //操作完成后覆盖cookie
            CookieUtil.setCookie(request, response, "cartListCookie", JSON.toJSONString(cartInfos), 60 * 60 * 24 * 7, true);
        } else {
            //用户已登录,添加到数据库
            cartInfo.setUserId(userId);
            String skuId = cartInfo.getSkuId();
            //判断数据库中对应的cartInfo是否存在
            CartInfo cartInfoDb = cartService.ifCartExist(cartInfo);
            if (cartInfoDb != null) {
                //更新数据库
                cartInfoDb.setSkuNum(cartInfoDb.getSkuNum() + cartInfo.getSkuNum());
                cartInfoDb.setCartPrice(cartInfoDb.getSkuPrice().multiply(new BigDecimal(cartInfoDb.getSkuNum())));
                cartService.updateCart(cartInfoDb);
            } else {
                //插入数据库
                cartService.insertCart(cartInfo);

            }

            //同步缓存
            cartService.syncCache(userId);
        }
        return "redirect:/cartSuccess?skuId=" + sku.getId();
    }

    private boolean isNewCart(List<CartInfo> cartInfos, CartInfo cartInfo) {
        boolean isNewCart = true;
        String skuId = cartInfo.getSkuId();
        for (CartInfo info : cartInfos) {
            skuId.equals(info.getSkuId());
            isNewCart = false;
        }
        return isNewCart;
    }

    @LoginRequire(ifNeedSuccess = false)
    @RequestMapping("cartSuccess")
    public String cartSuccess(ModelMap map, String skuId) {
        SkuInfo sku = skuService.getSkuById(skuId);
        map.put("skuInfo", sku);
        return "success";
    }

}


================================================
FILE: gmall-cart-web/src/main/resources/application.properties
================================================
server.port=8084

#zookeeper
spring.dubbo.registry.address=192.168.159.129:2181
spring.dubbo.registry.protocol=zookeeper

#dubbo
spring.dubbo.application.name=gmall-cart-web
spring.dubbo.protocol.name=dubbo
spring.dubbo.consumer.check=false
spring.dubbo.consumer.timeout=60000

#thymeleaf
spring.thymeleaf.mode=LEGACYHTML5
spring.thymeleaf.cache=false

#MVC
#spring.resources.static-locations=classpath:/static/

#logging.level.root=debug


================================================
FILE: gmall-cart-web/src/main/resources/static/bootstrap/css/bootstrap.css
================================================
/*!
 * Bootstrap v3.3.5 (http://getbootstrap.com)
 * Copyright 2011-2015 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
  font-family: sans-serif;
  -webkit-text-size-adjust: 100%;
      -ms-text-size-adjust: 100%;
}
body {
  margin: 0;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
audio,
canvas,
progress,
video {
  display: inline-block;
  vertical-align: baseline;
}
audio:not([controls]) {
  display: none;
  height: 0;
}
[hidden],
template {
  display: none;
}
a {
  background-color: transparent;
}
a:active,
a:hover {
  outline: 0;
}
abbr[title] {
  border-bottom: 1px dotted;
}
b,
strong {
  font-weight: bold;
}
dfn {
  font-style: italic;
}
h1 {
  margin: .67em 0;
  font-size: 2em;
}
mark {
  color: #000;
  background: #ff0;
}
small {
  font-size: 80%;
}
sub,
sup {
  position: relative;
  font-size: 75%;
  line-height: 0;
  vertical-align: baseline;
}
sup {
  top: -.5em;
}
sub {
  bottom: -.25em;
}
img {
  border: 0;
}
svg:not(:root) {
  overflow: hidden;
}
figure {
  margin: 1em 40px;
}
hr {
  height: 0;
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
          box-sizing: content-box;
}
pre {
  overflow: auto;
}
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
button,
input,
optgroup,
select,
textarea {
  margin: 0;
  font: inherit;
  color: inherit;
}
button {
  overflow: visible;
}
button,
select {
  text-transform: none;
}
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  cursor: pointer;
}
button[disabled],
html input[disabled] {
  cursor: default;
}
button::-moz-focus-inner,
input::-moz-focus-inner {
  padding: 0;
  border: 0;
}
input {
  line-height: normal;
}
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
  padding: 0;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
input[type="search"] {
  -webkit-box-sizing: content-box;
     -moz-box-sizing: content-box;
          box-sizing: content-box;
  -webkit-appearance: textfield;
}
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
fieldset {
  padding: .35em .625em .75em;
  margin: 0 2px;
  border: 1px solid #c0c0c0;
}
legend {
  padding: 0;
  border: 0;
}
textarea {
  overflow: auto;
}
optgroup {
  font-weight: bold;
}
table {
  border-spacing: 0;
  border-collapse: collapse;
}
td,
th {
  padding: 0;
}
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
@media print {
  *,
  *:before,
  *:after {
    color: #000 !important;
    text-shadow: none !important;
    background: transparent !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: underline;
  }
  a[href]:after {
    content: " (" attr(href) ")";
  }
  abbr[title]:after {
    content: " (" attr(title) ")";
  }
  a[href^="#"]:after,
  a[href^="javascript:"]:after {
    content: "";
  }
  pre,
  blockquote {
    border: 1px solid #999;

    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  .navbar {
    display: none;
  }
  .btn > .caret,
  .dropup > .btn > .caret {
    border-top-color: #000 !important;
  }
  .label {
    border: 1px solid #000;
  }
  .table {
    border-collapse: collapse !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table-bordered th,
  .table-bordered td {
    border: 1px solid #ddd !important;
  }
}
@font-face {
  font-family: 'Glyphicons Halflings';

  src: url('../fonts/glyphicons-halflings-regular.eot');
  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
  position: relative;
  top: 1px;
  display: inline-block;
  font-family: 'Glyphicons Halflings';
  font-style: normal;
  font-weight: normal;
  line-height: 1;

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.glyphicon-asterisk:before {
  content: "\2a";
}
.glyphicon-plus:before {
  content: "\2b";
}
.glyphicon-euro:before,
.glyphicon-eur:before {
  content: "\20ac";
}
.glyphicon-minus:before {
  content: "\2212";
}
.glyphicon-cloud:before {
  content: "\2601";
}
.glyphicon-envelope:before {
  content: "\2709";
}
.glyphicon-pencil:before {
  content: "\270f";
}
.glyphicon-glass:before {
  content: "\e001";
}
.glyphicon-music:before {
  content: "\e002";
}
.glyphicon-search:before {
  content: "\e003";
}
.glyphicon-heart:before {
  content: "\e005";
}
.glyphicon-star:before {
  content: "\e006";
}
.glyphicon-star-empty:before {
  content: "\e007";
}
.glyphicon-user:before {
  content: "\e008";
}
.glyphicon-film:before {
  content: "\e009";
}
.glyphicon-th-large:before {
  content: "\e010";
}
.glyphicon-th:before {
  content: "\e011";
}
.glyphicon-th-list:before {
  content: "\e012";
}
.glyphicon-ok:before {
  content: "\e013";
}
.glyphicon-remove:before {
  content: "\e014";
}
.glyphicon-zoom-in:before {
  content: "\e015";
}
.glyphicon-zoom-out:before {
  content: "\e016";
}
.glyphicon-off:before {
  content: "\e017";
}
.glyphicon-signal:before {
  content: "\e018";
}
.glyphicon-cog:before {
  content: "\e019";
}
.glyphicon-trash:before {
  content: "\e020";
}
.glyphicon-home:before {
  content: "\e021";
}
.glyphicon-file:before {
  content: "\e022";
}
.glyphicon-time:before {
  content: "\e023";
}
.glyphicon-road:before {
  content: "\e024";
}
.glyphicon-download-alt:before {
  content: "\e025";
}
.glyphicon-download:before {
  content: "\e026";
}
.glyphicon-upload:before {
  content: "\e027";
}
.glyphicon-inbox:before {
  content: "\e028";
}
.glyphicon-play-circle:before {
  content: "\e029";
}
.glyphicon-repeat:before {
  content: "\e030";
}
.glyphicon-refresh:before {
  content: "\e031";
}
.glyphicon-list-alt:before {
  content: "\e032";
}
.glyphicon-lock:before {
  content: "\e033";
}
.glyphicon-flag:before {
  content: "\e034";
}
.glyphicon-headphones:before {
  content: "\e035";
}
.glyphicon-volume-off:before {
  content: "\e036";
}
.glyphicon-volume-down:before {
  content: "\e037";
}
.glyphicon-volume-up:before {
  content: "\e038";
}
.glyphicon-qrcode:before {
  content: "\e039";
}
.glyphicon-barcode:before {
  content: "\e040";
}
.glyphicon-tag:before {
  content: "\e041";
}
.glyphicon-tags:before {
  content: "\e042";
}
.glyphicon-book:before {
  content: "\e043";
}
.glyphicon-bookmark:before {
  content: "\e044";
}
.glyphicon-print:before {
  content: "\e045";
}
.glyphicon-camera:before {
  content: "\e046";
}
.glyphicon-font:before {
  content: "\e047";
}
.glyphicon-bold:before {
  content: "\e048";
}
.glyphicon-italic:before {
  content: "\e049";
}
.glyphicon-text-height:before {
  content: "\e050";
}
.glyphicon-text-width:before {
  content: "\e051";
}
.glyphicon-align-left:before {
  content: "\e052";
}
.glyphicon-align-center:before {
  content: "\e053";
}
.glyphicon-align-right:before {
  content: "\e054";
}
.glyphicon-align-justify:before {
  content: "\e055";
}
.glyphicon-list:before {
  content: "\e056";
}
.glyphicon-indent-left:before {
  content: "\e057";
}
.glyphicon-indent-right:before {
  content: "\e058";
}
.glyphicon-facetime-video:before {
  content: "\e059";
}
.glyphicon-picture:before {
  content: "\e060";
}
.glyphicon-map-marker:before {
  content: "\e062";
}
.glyphicon-adjust:before {
  content: "\e063";
}
.glyphicon-tint:before {
  content: "\e064";
}
.glyphicon-edit:before {
  content: "\e065";
}
.glyphicon-share:before {
  content: "\e066";
}
.glyphicon-check:before {
  content: "\e067";
}
.glyphicon-move:before {
  content: "\e068";
}
.glyphicon-step-backward:before {
  content: "\e069";
}
.glyphicon-fast-backward:before {
  content: "\e070";
}
.glyphicon-backward:before {
  content: "\e071";
}
.glyphicon-play:before {
  content: "\e072";
}
.glyphicon-pause:before {
  content: "\e073";
}
.glyphicon-stop:before {
  content: "\e074";
}
.glyphicon-forward:before {
  content: "\e075";
}
.glyphicon-fast-forward:before {
  content: "\e076";
}
.glyphicon-step-forward:before {
  content: "\e077";
}
.glyphicon-eject:before {
  content: "\e078";
}
.glyphicon-chevron-left:before {
  content: "\e079";
}
.glyphicon-chevron-right:before {
  content: "\e080";
}
.glyphicon-plus-sign:before {
  content: "\e081";
}
.glyphicon-minus-sign:before {
  content: "\e082";
}
.glyphicon-remove-sign:before {
  content: "\e083";
}
.glyphicon-ok-sign:before {
  content: "\e084";
}
.glyphicon-question-sign:before {
  content: "\e085";
}
.glyphicon-info-sign:before {
  content: "\e086";
}
.glyphicon-screenshot:before {
  content: "\e087";
}
.glyphicon-remove-circle:before {
  content: "\e088";
}
.glyphicon-ok-circle:before {
  content: "\e089";
}
.glyphicon-ban-circle:before {
  content: "\e090";
}
.glyphicon-arrow-left:before {
  content: "\e091";
}
.glyphicon-arrow-right:before {
  content: "\e092";
}
.glyphicon-arrow-up:before {
  content: "\e093";
}
.glyphicon-arrow-down:before {
  content: "\e094";
}
.glyphicon-share-alt:before {
  content: "\e095";
}
.glyphicon-resize-full:before {
  content: "\e096";
}
.glyphicon-resize-small:before {
  content: "\e097";
}
.glyphicon-exclamation-sign:before {
  content: "\e101";
}
.glyphicon-gift:before {
  content: "\e102";
}
.glyphicon-leaf:before {
  content: "\e103";
}
.glyphicon-fire:before {
  content: "\e104";
}
.glyphicon-eye-open:before {
  content: "\e105";
}
.glyphicon-eye-close:before {
  content: "\e106";
}
.glyphicon-warning-sign:before {
  content: "\e107";
}
.glyphicon-plane:before {
  content: "\e108";
}
.glyphicon-calendar:before {
  content: "\e109";
}
.glyphicon-random:before {
  content: "\e110";
}
.glyphicon-comment:before {
  content: "\e111";
}
.glyphicon-magnet:before {
  content: "\e112";
}
.glyphicon-chevron-up:before {
  content: "\e113";
}
.glyphicon-chevron-down:before {
  content: "\e114";
}
.glyphicon-retweet:before {
  content: "\e115";
}
.glyphicon-shopping-cart:before {
  content: "\e116";
}
.glyphicon-folder-close:before {
  content: "\e117";
}
.glyphicon-folder-open:before {
  content: "\e118";
}
.glyphicon-resize-vertical:before {
  content: "\e119";
}
.glyphicon-resize-horizontal:before {
  content: "\e120";
}
.glyphicon-hdd:before {
  content: "\e121";
}
.glyphicon-bullhorn:before {
  content: "\e122";
}
.glyphicon-bell:before {
  content: "\e123";
}
.glyphicon-certificate:before {
  content: "\e124";
}
.glyphicon-thumbs-up:before {
  content: "\e125";
}
.glyphicon-thumbs-down:before {
  content: "\e126";
}
.glyphicon-hand-right:before {
  content: "\e127";
}
.glyphicon-hand-left:before {
  content: "\e128";
}
.glyphicon-hand-up:before {
  content: "\e129";
}
.glyphicon-hand-down:before {
  content: "\e130";
}
.glyphicon-circle-arrow-right:before {
  content: "\e131";
}
.glyphicon-circle-arrow-left:before {
  content: "\e132";
}
.glyphicon-circle-arrow-up:before {
  content: "\e133";
}
.glyphicon-circle-arrow-down:before {
  content: "\e134";
}
.glyphicon-globe:before {
  content: "\e135";
}
.glyphicon-wrench:before {
  content: "\e136";
}
.glyphicon-tasks:before {
  content: "\e137";
}
.glyphicon-filter:before {
  content: "\e138";
}
.glyphicon-briefcase:before {
  content: "\e139";
}
.glyphicon-fullscreen:before {
  content: "\e140";
}
.glyphicon-dashboard:before {
  content: "\e141";
}
.glyphicon-paperclip:before {
  content: "\e142";
}
.glyphicon-heart-empty:before {
  content: "\e143";
}
.glyphicon-link:before {
  content: "\e144";
}
.glyphicon-phone:before {
  content: "\e145";
}
.glyphicon-pushpin:before {
  content: "\e146";
}
.glyphicon-usd:before {
  content: "\e148";
}
.glyphicon-gbp:before {
  content: "\e149";
}
.glyphicon-sort:before {
  content: "\e150";
}
.glyphicon-sort-by-alphabet:before {
  content: "\e151";
}
.glyphicon-sort-by-alphabet-alt:before {
  content: "\e152";
}
.glyphicon-sort-by-order:before {
  content: "\e153";
}
.glyphicon-sort-by-order-alt:before {
  content: "\e154";
}
.glyphicon-sort-by-attributes:before {
  content: "\e155";
}
.glyphicon-sort-by-attributes-alt:before {
  content: "\e156";
}
.glyphicon-unchecked:before {
  content: "\e157";
}
.glyphicon-expand:before {
  content: "\e158";
}
.glyphicon-collapse-down:before {
  content: "\e159";
}
.glyphicon-collapse-up:before {
  content: "\e160";
}
.glyphicon-log-in:before {
  content: "\e161";
}
.glyphicon-flash:before {
  content: "\e162";
}
.glyphicon-log-out:before {
  content: "\e163";
}
.glyphicon-new-window:before {
  content: "\e164";
}
.glyphicon-record:before {
  content: "\e165";
}
.glyphicon-save:before {
  content: "\e166";
}
.glyphicon-open:before {
  content: "\e167";
}
.glyphicon-saved:before {
  content: "\e168";
}
.glyphicon-import:before {
  content: "\e169";
}
.glyphicon-export:before {
  content: "\e170";
}
.glyphicon-send:before {
  content: "\e171";
}
.glyphicon-floppy-disk:before {
  content: "\e172";
}
.glyphicon-floppy-saved:before {
  content: "\e173";
}
.glyphicon-floppy-remove:before {
  content: "\e174";
}
.glyphicon-floppy-save:before {
  content: "\e175";
}
.glyphicon-floppy-open:before {
  content: "\e176";
}
.glyphicon-credit-card:before {
  content: "\e177";
}
.glyphicon-transfer:before {
  content: "\e178";
}
.glyphicon-cutlery:before {
  content: "\e179";
}
.glyphicon-header:before {
  content: "\e180";
}
.glyphicon-compressed:before {
  content: "\e181";
}
.glyphicon-earphone:before {
  content: "\e182";
}
.glyphicon-phone-alt:before {
  content: "\e183";
}
.glyphicon-tower:before {
  content: "\e184";
}
.glyphicon-stats:before {
  content: "\e185";
}
.glyphicon-sd-video:before {
  content: "\e186";
}
.glyphicon-hd-video:before {
  content: "\e187";
}
.glyphicon-subtitles:before {
  content: "\e188";
}
.glyphicon-sound-stereo:before {
  content: "\e189";
}
.glyphicon-sound-dolby:before {
  content: "\e190";
}
.glyphicon-sound-5-1:before {
  content: "\e191";
}
.glyphicon-sound-6-1:before {
  content: "\e192";
}
.glyphicon-sound-7-1:before {
  content: "\e193";
}
.glyphicon-copyright-mark:before {
  content: "\e194";
}
.glyphicon-registration-mark:before {
  content: "\e195";
}
.glyphicon-cloud-download:before {
  content: "\e197";
}
.glyphicon-cloud-upload:before {
  content: "\e198";
}
.glyphicon-tree-conifer:before {
  content: "\e199";
}
.glyphicon-tree-deciduous:before {
  content: "\e200";
}
.glyphicon-cd:before {
  content: "\e201";
}
.glyphicon-save-file:before {
  content: "\e202";
}
.glyphicon-open-file:before {
  content: "\e203";
}
.glyphicon-level-up:before {
  content: "\e204";
}
.glyphicon-copy:before {
  content: "\e205";
}
.glyphicon-paste:before {
  content: "\e206";
}
.glyphicon-alert:before {
  content: "\e209";
}
.glyphicon-equalizer:before {
  content: "\e210";
}
.glyphicon-king:before {
  content: "\e211";
}
.glyphicon-queen:before {
  content: "\e212";
}
.glyphicon-pawn:before {
  content: "\e213";
}
.glyphicon-bishop:before {
  content: "\e214";
}
.glyphicon-knight:before {
  content: "\e215";
}
.glyphicon-baby-formula:before {
  content: "\e216";
}
.glyphicon-tent:before {
  content: "\26fa";
}
.glyphicon-blackboard:before {
  content: "\e218";
}
.glyphicon-bed:before {
  content: "\e219";
}
.glyphicon-apple:before {
  content: "\f8ff";
}
.glyphicon-erase:before {
  content: "\e221";
}
.glyphicon-hourglass:before {
  content: "\231b";
}
.glyphicon-lamp:before {
  content: "\e223";
}
.glyphicon-duplicate:before {
  content: "\e224";
}
.glyphicon-piggy-bank:before {
  content: "\e225";
}
.glyphicon-scissors:before {
  content: "\e226";
}
.glyphicon-bitcoin:before {
  content: "\e227";
}
.glyphicon-btc:before {
  content: "\e227";
}
.glyphicon-xbt:before {
  content: "\e227";
}
.glyphicon-yen:before {
  content: "\00a5";
}
.glyphicon-jpy:before {
  content: "\00a5";
}
.glyphicon-ruble:before {
  content: "\20bd";
}
.glyphicon-rub:before {
  content: "\20bd";
}
.glyphicon-scale:before {
  content: "\e230";
}
.glyphicon-ice-lolly:before {
  content: "\e231";
}
.glyphicon-ice-lolly-tasted:before {
  content: "\e232";
}
.glyphicon-education:before {
  content: "\e233";
}
.glyphicon-option-horizontal:before {
  content: "\e234";
}
.glyphicon-option-vertical:before {
  content: "\e235";
}
.glyphicon-menu-hamburger:before {
  content: "\e236";
}
.glyphicon-modal-window:before {
  content: "\e237";
}
.glyphicon-oil:before {
  content: "\e238";
}
.glyphicon-grain:before {
  content: "\e239";
}
.glyphicon-sunglasses:before {
  content: "\e240";
}
.glyphicon-text-size:before {
  content: "\e241";
}
.glyphicon-text-color:before {
  content: "\e242";
}
.glyphicon-text-background:before {
  content: "\e243";
}
.glyphicon-object-align-top:before {
  content: "\e244";
}
.glyphicon-object-align-bottom:before {
  content: "\e245";
}
.glyphicon-object-align-horizontal:before {
  content: "\e246";
}
.glyphicon-object-align-left:before {
  content: "\e247";
}
.glyphicon-object-align-vertical:before {
  content: "\e248";
}
.glyphicon-object-align-right:before {
  content: "\e249";
}
.glyphicon-triangle-right:before {
  content: "\e250";
}
.glyphicon-triangle-left:before {
  content: "\e251";
}
.glyphicon-triangle-bottom:before {
  content: "\e252";
}
.glyphicon-triangle-top:before {
  content: "\e253";
}
.glyphicon-console:before {
  content: "\e254";
}
.glyphicon-superscript:before {
  content: "\e255";
}
.glyphicon-subscript:before {
  content: "\e256";
}
.glyphicon-menu-left:before {
  content: "\e257";
}
.glyphicon-menu-right:before {
  content: "\e258";
}
.glyphicon-menu-down:before {
  content: "\e259";
}
.glyphicon-menu-up:before {
  content: "\e260";
}
* {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
*:before,
*:after {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
html {
  font-size: 10px;

  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.42857143;
  color: #333;
  background-color: #fff;
}
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
a {
  color: #337ab7;
  text-decoration: none;
}
a:hover,
a:focus {
  color: #23527c;
  text-decoration: underline;
}
a:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
figure {
  margin: 0;
}
img {
  vertical-align: middle;
}
.img-responsive,
.thumbnail > img,
.thumbnail a > img,
.carousel-inner > .item > img,
.carousel-inner > .item > a > img {
  display: block;
  max-width: 100%;
  height: auto;
}
.img-rounded {
  border-radius: 6px;
}
.img-thumbnail {
  display: inline-block;
  max-width: 100%;
  height: auto;
  padding: 4px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  -webkit-transition: all .2s ease-in-out;
       -o-transition: all .2s ease-in-out;
          transition: all .2s ease-in-out;
}
.img-circle {
  border-radius: 50%;
}
hr {
  margin-top: 20px;
  margin-bottom: 20px;
  border: 0;
  border-top: 1px solid #eee;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
  position: static;
  width: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  clip: auto;
}
[role="button"] {
  cursor: pointer;
}
h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  font-family: inherit;
  font-weight: 500;
  line-height: 1.1;
  color: inherit;
}
h1 small,
h2 small,
h3 small,
h4 small,
h5 small,
h6 small,
.h1 small,
.h2 small,
.h3 small,
.h4 small,
.h5 small,
.h6 small,
h1 .small,
h2 .small,
h3 .small,
h4 .small,
h5 .small,
h6 .small,
.h1 .small,
.h2 .small,
.h3 .small,
.h4 .small,
.h5 .small,
.h6 .small {
  font-weight: normal;
  line-height: 1;
  color: #777;
}
h1,
.h1,
h2,
.h2,
h3,
.h3 {
  margin-top: 20px;
  margin-bottom: 10px;
}
h1 small,
.h1 small,
h2 small,
.h2 small,
h3 small,
.h3 small,
h1 .small,
.h1 .small,
h2 .small,
.h2 .small,
h3 .small,
.h3 .small {
  font-size: 65%;
}
h4,
.h4,
h5,
.h5,
h6,
.h6 {
  margin-top: 10px;
  margin-bottom: 10px;
}
h4 small,
.h4 small,
h5 small,
.h5 small,
h6 small,
.h6 small,
h4 .small,
.h4 .small,
h5 .small,
.h5 .small,
h6 .small,
.h6 .small {
  font-size: 75%;
}
h1,
.h1 {
  font-size: 36px;
}
h2,
.h2 {
  font-size: 30px;
}
h3,
.h3 {
  font-size: 24px;
}
h4,
.h4 {
  font-size: 18px;
}
h5,
.h5 {
  font-size: 14px;
}
h6,
.h6 {
  font-size: 12px;
}
p {
  margin: 0 0 10px;
}
.lead {
  margin-bottom: 20px;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
}
@media (min-width: 768px) {
  .lead {
    font-size: 21px;
  }
}
small,
.small {
  font-size: 85%;
}
mark,
.mark {
  padding: .2em;
  background-color: #fcf8e3;
}
.text-left {
  text-align: left;
}
.text-right {
  text-align: right;
}
.text-center {
  text-align: center;
}
.text-justify {
  text-align: justify;
}
.text-nowrap {
  white-space: nowrap;
}
.text-lowercase {
  text-transform: lowercase;
}
.text-uppercase {
  text-transform: uppercase;
}
.text-capitalize {
  text-transform: capitalize;
}
.text-muted {
  color: #777;
}
.text-primary {
  color: #337ab7;
}
a.text-primary:hover,
a.text-primary:focus {
  color: #286090;
}
.text-success {
  color: #3c763d;
}
a.text-success:hover,
a.text-success:focus {
  color: #2b542c;
}
.text-info {
  color: #31708f;
}
a.text-info:hover,
a.text-info:focus {
  color: #245269;
}
.text-warning {
  color: #8a6d3b;
}
a.text-warning:hover,
a.text-warning:focus {
  color: #66512c;
}
.text-danger {
  color: #a94442;
}
a.text-danger:hover,
a.text-danger:focus {
  color: #843534;
}
.bg-primary {
  color: #fff;
  background-color: #337ab7;
}
a.bg-primary:hover,
a.bg-primary:focus {
  background-color: #286090;
}
.bg-success {
  background-color: #dff0d8;
}
a.bg-success:hover,
a.bg-success:focus {
  background-color: #c1e2b3;
}
.bg-info {
  background-color: #d9edf7;
}
a.bg-info:hover,
a.bg-info:focus {
  background-color: #afd9ee;
}
.bg-warning {
  background-color: #fcf8e3;
}
a.bg-warning:hover,
a.bg-warning:focus {
  background-color: #f7ecb5;
}
.bg-danger {
  background-color: #f2dede;
}
a.bg-danger:hover,
a.bg-danger:focus {
  background-color: #e4b9b9;
}
.page-header {
  padding-bottom: 9px;
  margin: 40px 0 20px;
  border-bottom: 1px solid #eee;
}
ul,
ol {
  margin-top: 0;
  margin-bottom: 10px;
}
ul ul,
ol ul,
ul ol,
ol ol {
  margin-bottom: 0;
}
.list-unstyled {
  padding-left: 0;
  list-style: none;
}
.list-inline {
  padding-left: 0;
  margin-left: -5px;
  list-style: none;
}
.list-inline > li {
  display: inline-block;
  padding-right: 5px;
  padding-left: 5px;
}
dl {
  margin-top: 0;
  margin-bottom: 20px;
}
dt,
dd {
  line-height: 1.42857143;
}
dt {
  font-weight: bold;
}
dd {
  margin-left: 0;
}
@media (min-width: 768px) {
  .dl-horizontal dt {
    float: left;
    width: 160px;
    overflow: hidden;
    clear: left;
    text-align: right;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .dl-horizontal dd {
    margin-left: 180px;
  }
}
abbr[title],
abbr[data-original-title] {
  cursor: help;
  border-bottom: 1px dotted #777;
}
.initialism {
  font-size: 90%;
  text-transform: uppercase;
}
blockquote {
  padding: 10px 20px;
  margin: 0 0 20px;
  font-size: 17.5px;
  border-left: 5px solid #eee;
}
blockquote p:last-child,
blockquote ul:last-child,
blockquote ol:last-child {
  margin-bottom: 0;
}
blockquote footer,
blockquote small,
blockquote .small {
  display: block;
  font-size: 80%;
  line-height: 1.42857143;
  color: #777;
}
blockquote footer:before,
blockquote small:before,
blockquote .small:before {
  content: '\2014 \00A0';
}
.blockquote-reverse,
blockquote.pull-right {
  padding-right: 15px;
  padding-left: 0;
  text-align: right;
  border-right: 5px solid #eee;
  border-left: 0;
}
.blockquote-reverse footer:before,
blockquote.pull-right footer:before,
.blockquote-reverse small:before,
blockquote.pull-right small:before,
.blockquote-reverse .small:before,
blockquote.pull-right .small:before {
  content: '';
}
.blockquote-reverse footer:after,
blockquote.pull-right footer:after,
.blockquote-reverse small:after,
blockquote.pull-right small:after,
.blockquote-reverse .small:after,
blockquote.pull-right .small:after {
  content: '\00A0 \2014';
}
address {
  margin-bottom: 20px;
  font-style: normal;
  line-height: 1.42857143;
}
code,
kbd,
pre,
samp {
  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
}
code {
  padding: 2px 4px;
  font-size: 90%;
  color: #c7254e;
  background-color: #f9f2f4;
  border-radius: 4px;
}
kbd {
  padding: 2px 4px;
  font-size: 90%;
  color: #fff;
  background-color: #333;
  border-radius: 3px;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .25);
}
kbd kbd {
  padding: 0;
  font-size: 100%;
  font-weight: bold;
  -webkit-box-shadow: none;
          box-shadow: none;
}
pre {
  display: block;
  padding: 9.5px;
  margin: 0 0 10px;
  font-size: 13px;
  line-height: 1.42857143;
  color: #333;
  word-break: break-all;
  word-wrap: break-word;
  background-color: #f5f5f5;
  border: 1px solid #ccc;
  border-radius: 4px;
}
pre code {
  padding: 0;
  font-size: inherit;
  color: inherit;
  white-space: pre-wrap;
  background-color: transparent;
  border-radius: 0;
}
.pre-scrollable {
  max-height: 340px;
  overflow-y: scroll;
}
.container {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
@media (min-width: 768px) {
  .container {
    width: 750px;
  }
}
@media (min-width: 992px) {
  .container {
    width: 970px;
  }
}
@media (min-width: 1200px) {
  .container {
    width: 1170px;
  }
}
.container-fluid {
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}
.row {
  margin-right: -15px;
  margin-left: -15px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
  position: relative;
  min-height: 1px;
  padding-right: 15px;
  padding-left: 15px;
}
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
  float: left;
}
.col-xs-12 {
  width: 100%;
}
.col-xs-11 {
  width: 91.66666667%;
}
.col-xs-10 {
  width: 83.33333333%;
}
.col-xs-9 {
  width: 75%;
}
.col-xs-8 {
  width: 66.66666667%;
}
.col-xs-7 {
  width: 58.33333333%;
}
.col-xs-6 {
  width: 50%;
}
.col-xs-5 {
  width: 41.66666667%;
}
.col-xs-4 {
  width: 33.33333333%;
}
.col-xs-3 {
  width: 25%;
}
.col-xs-2 {
  width: 16.66666667%;
}
.col-xs-1 {
  width: 8.33333333%;
}
.col-xs-pull-12 {
  right: 100%;
}
.col-xs-pull-11 {
  right: 91.66666667%;
}
.col-xs-pull-10 {
  right: 83.33333333%;
}
.col-xs-pull-9 {
  right: 75%;
}
.col-xs-pull-8 {
  right: 66.66666667%;
}
.col-xs-pull-7 {
  right: 58.33333333%;
}
.col-xs-pull-6 {
  right: 50%;
}
.col-xs-pull-5 {
  right: 41.66666667%;
}
.col-xs-pull-4 {
  right: 33.33333333%;
}
.col-xs-pull-3 {
  right: 25%;
}
.col-xs-pull-2 {
  right: 16.66666667%;
}
.col-xs-pull-1 {
  right: 8.33333333%;
}
.col-xs-pull-0 {
  right: auto;
}
.col-xs-push-12 {
  left: 100%;
}
.col-xs-push-11 {
  left: 91.66666667%;
}
.col-xs-push-10 {
  left: 83.33333333%;
}
.col-xs-push-9 {
  left: 75%;
}
.col-xs-push-8 {
  left: 66.66666667%;
}
.col-xs-push-7 {
  left: 58.33333333%;
}
.col-xs-push-6 {
  left: 50%;
}
.col-xs-push-5 {
  left: 41.66666667%;
}
.col-xs-push-4 {
  left: 33.33333333%;
}
.col-xs-push-3 {
  left: 25%;
}
.col-xs-push-2 {
  left: 16.66666667%;
}
.col-xs-push-1 {
  left: 8.33333333%;
}
.col-xs-push-0 {
  left: auto;
}
.col-xs-offset-12 {
  margin-left: 100%;
}
.col-xs-offset-11 {
  margin-left: 91.66666667%;
}
.col-xs-offset-10 {
  margin-left: 83.33333333%;
}
.col-xs-offset-9 {
  margin-left: 75%;
}
.col-xs-offset-8 {
  margin-left: 66.66666667%;
}
.col-xs-offset-7 {
  margin-left: 58.33333333%;
}
.col-xs-offset-6 {
  margin-left: 50%;
}
.col-xs-offset-5 {
  margin-left: 41.66666667%;
}
.col-xs-offset-4 {
  margin-left: 33.33333333%;
}
.col-xs-offset-3 {
  margin-left: 25%;
}
.col-xs-offset-2 {
  margin-left: 16.66666667%;
}
.col-xs-offset-1 {
  margin-left: 8.33333333%;
}
.col-xs-offset-0 {
  margin-left: 0;
}
@media (min-width: 768px) {
  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
    float: left;
  }
  .col-sm-12 {
    width: 100%;
  }
  .col-sm-11 {
    width: 91.66666667%;
  }
  .col-sm-10 {
    width: 83.33333333%;
  }
  .col-sm-9 {
    width: 75%;
  }
  .col-sm-8 {
    width: 66.66666667%;
  }
  .col-sm-7 {
    width: 58.33333333%;
  }
  .col-sm-6 {
    width: 50%;
  }
  .col-sm-5 {
    width: 41.66666667%;
  }
  .col-sm-4 {
    width: 33.33333333%;
  }
  .col-sm-3 {
    width: 25%;
  }
  .col-sm-2 {
    width: 16.66666667%;
  }
  .col-sm-1 {
    width: 8.33333333%;
  }
  .col-sm-pull-12 {
    right: 100%;
  }
  .col-sm-pull-11 {
    right: 91.66666667%;
  }
  .col-sm-pull-10 {
    right: 83.33333333%;
  }
  .col-sm-pull-9 {
    right: 75%;
  }
  .col-sm-pull-8 {
    right: 66.66666667%;
  }
  .col-sm-pull-7 {
    right: 58.33333333%;
  }
  .col-sm-pull-6 {
    right: 50%;
  }
  .col-sm-pull-5 {
    right: 41.66666667%;
  }
  .col-sm-pull-4 {
    right: 33.33333333%;
  }
  .col-sm-pull-3 {
    right: 25%;
  }
  .col-sm-pull-2 {
    right: 16.66666667%;
  }
  .col-sm-pull-1 {
    right: 8.33333333%;
  }
  .col-sm-pull-0 {
    right: auto;
  }
  .col-sm-push-12 {
    left: 100%;
  }
  .col-sm-push-11 {
    left: 91.66666667%;
  }
  .col-sm-push-10 {
    left: 83.33333333%;
  }
  .col-sm-push-9 {
    left: 75%;
  }
  .col-sm-push-8 {
    left: 66.66666667%;
  }
  .col-sm-push-7 {
    left: 58.33333333%;
  }
  .col-sm-push-6 {
    left: 50%;
  }
  .col-sm-push-5 {
    left: 41.66666667%;
  }
  .col-sm-push-4 {
    left: 33.33333333%;
  }
  .col-sm-push-3 {
    left: 25%;
  }
  .col-sm-push-2 {
    left: 16.66666667%;
  }
  .col-sm-push-1 {
    left: 8.33333333%;
  }
  .col-sm-push-0 {
    left: auto;
  }
  .col-sm-offset-12 {
    margin-left: 100%;
  }
  .col-sm-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-sm-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-sm-offset-9 {
    margin-left: 75%;
  }
  .col-sm-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-sm-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-sm-offset-6 {
    margin-left: 50%;
  }
  .col-sm-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-sm-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-sm-offset-3 {
    margin-left: 25%;
  }
  .col-sm-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-sm-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-sm-offset-0 {
    margin-left: 0;
  }
}
@media (min-width: 992px) {
  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
    float: left;
  }
  .col-md-12 {
    width: 100%;
  }
  .col-md-11 {
    width: 91.66666667%;
  }
  .col-md-10 {
    width: 83.33333333%;
  }
  .col-md-9 {
    width: 75%;
  }
  .col-md-8 {
    width: 66.66666667%;
  }
  .col-md-7 {
    width: 58.33333333%;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-5 {
    width: 41.66666667%;
  }
  .col-md-4 {
    width: 33.33333333%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-2 {
    width: 16.66666667%;
  }
  .col-md-1 {
    width: 8.33333333%;
  }
  .col-md-pull-12 {
    right: 100%;
  }
  .col-md-pull-11 {
    right: 91.66666667%;
  }
  .col-md-pull-10 {
    right: 83.33333333%;
  }
  .col-md-pull-9 {
    right: 75%;
  }
  .col-md-pull-8 {
    right: 66.66666667%;
  }
  .col-md-pull-7 {
    right: 58.33333333%;
  }
  .col-md-pull-6 {
    right: 50%;
  }
  .col-md-pull-5 {
    right: 41.66666667%;
  }
  .col-md-pull-4 {
    right: 33.33333333%;
  }
  .col-md-pull-3 {
    right: 25%;
  }
  .col-md-pull-2 {
    right: 16.66666667%;
  }
  .col-md-pull-1 {
    right: 8.33333333%;
  }
  .col-md-pull-0 {
    right: auto;
  }
  .col-md-push-12 {
    left: 100%;
  }
  .col-md-push-11 {
    left: 91.66666667%;
  }
  .col-md-push-10 {
    left: 83.33333333%;
  }
  .col-md-push-9 {
    left: 75%;
  }
  .col-md-push-8 {
    left: 66.66666667%;
  }
  .col-md-push-7 {
    left: 58.33333333%;
  }
  .col-md-push-6 {
    left: 50%;
  }
  .col-md-push-5 {
    left: 41.66666667%;
  }
  .col-md-push-4 {
    left: 33.33333333%;
  }
  .col-md-push-3 {
    left: 25%;
  }
  .col-md-push-2 {
    left: 16.66666667%;
  }
  .col-md-push-1 {
    left: 8.33333333%;
  }
  .col-md-push-0 {
    left: auto;
  }
  .col-md-offset-12 {
    margin-left: 100%;
  }
  .col-md-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-md-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-md-offset-9 {
    margin-left: 75%;
  }
  .col-md-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-md-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-md-offset-6 {
    margin-left: 50%;
  }
  .col-md-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-md-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-md-offset-3 {
    margin-left: 25%;
  }
  .col-md-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-md-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-md-offset-0 {
    margin-left: 0;
  }
}
@media (min-width: 1200px) {
  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
    float: left;
  }
  .col-lg-12 {
    width: 100%;
  }
  .col-lg-11 {
    width: 91.66666667%;
  }
  .col-lg-10 {
    width: 83.33333333%;
  }
  .col-lg-9 {
    width: 75%;
  }
  .col-lg-8 {
    width: 66.66666667%;
  }
  .col-lg-7 {
    width: 58.33333333%;
  }
  .col-lg-6 {
    width: 50%;
  }
  .col-lg-5 {
    width: 41.66666667%;
  }
  .col-lg-4 {
    width: 33.33333333%;
  }
  .col-lg-3 {
    width: 25%;
  }
  .col-lg-2 {
    width: 16.66666667%;
  }
  .col-lg-1 {
    width: 8.33333333%;
  }
  .col-lg-pull-12 {
    right: 100%;
  }
  .col-lg-pull-11 {
    right: 91.66666667%;
  }
  .col-lg-pull-10 {
    right: 83.33333333%;
  }
  .col-lg-pull-9 {
    right: 75%;
  }
  .col-lg-pull-8 {
    right: 66.66666667%;
  }
  .col-lg-pull-7 {
    right: 58.33333333%;
  }
  .col-lg-pull-6 {
    right: 50%;
  }
  .col-lg-pull-5 {
    right: 41.66666667%;
  }
  .col-lg-pull-4 {
    right: 33.33333333%;
  }
  .col-lg-pull-3 {
    right: 25%;
  }
  .col-lg-pull-2 {
    right: 16.66666667%;
  }
  .col-lg-pull-1 {
    right: 8.33333333%;
  }
  .col-lg-pull-0 {
    right: auto;
  }
  .col-lg-push-12 {
    left: 100%;
  }
  .col-lg-push-11 {
    left: 91.66666667%;
  }
  .col-lg-push-10 {
    left: 83.33333333%;
  }
  .col-lg-push-9 {
    left: 75%;
  }
  .col-lg-push-8 {
    left: 66.66666667%;
  }
  .col-lg-push-7 {
    left: 58.33333333%;
  }
  .col-lg-push-6 {
    left: 50%;
  }
  .col-lg-push-5 {
    left: 41.66666667%;
  }
  .col-lg-push-4 {
    left: 33.33333333%;
  }
  .col-lg-push-3 {
    left: 25%;
  }
  .col-lg-push-2 {
    left: 16.66666667%;
  }
  .col-lg-push-1 {
    left: 8.33333333%;
  }
  .col-lg-push-0 {
    left: auto;
  }
  .col-lg-offset-12 {
    margin-left: 100%;
  }
  .col-lg-offset-11 {
    margin-left: 91.66666667%;
  }
  .col-lg-offset-10 {
    margin-left: 83.33333333%;
  }
  .col-lg-offset-9 {
    margin-left: 75%;
  }
  .col-lg-offset-8 {
    margin-left: 66.66666667%;
  }
  .col-lg-offset-7 {
    margin-left: 58.33333333%;
  }
  .col-lg-offset-6 {
    margin-left: 50%;
  }
  .col-lg-offset-5 {
    margin-left: 41.66666667%;
  }
  .col-lg-offset-4 {
    margin-left: 33.33333333%;
  }
  .col-lg-offset-3 {
    margin-left: 25%;
  }
  .col-lg-offset-2 {
    margin-left: 16.66666667%;
  }
  .col-lg-offset-1 {
    margin-left: 8.33333333%;
  }
  .col-lg-offset-0 {
    margin-left: 0;
  }
}
table {
  background-color: transparent;
}
caption {
  padding-top: 8px;
  padding-bottom: 8px;
  color: #777;
  text-align: left;
}
th {
  text-align: left;
}
.table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 20px;
}
.table > thead > tr > th,
.table > tbody > tr > th,
.table > tfoot > tr > th,
.table > thead > tr > td,
.table > tbody > tr > td,
.table > tfoot > tr > td {
  padding: 8px;
  line-height: 1.42857143;
  vertical-align: top;
  border-top: 1px solid #ddd;
}
.table > thead > tr > th {
  vertical-align: bottom;
  border-bottom: 2px solid #ddd;
}
.table > caption + thead > tr:first-child > th,
.table > colgroup + thead > tr:first-child > th,
.table > thead:first-child > tr:first-child > th,
.table > caption + thead > tr:first-child > td,
.table > colgroup + thead > tr:first-child > td,
.table > thead:first-child > tr:first-child > td {
  border-top: 0;
}
.table > tbody + tbody {
  border-top: 2px solid #ddd;
}
.table .table {
  background-color: #fff;
}
.table-condensed > thead > tr > th,
.table-condensed > tbody > tr > th,
.table-condensed > tfoot > tr > th,
.table-condensed > thead > tr > td,
.table-condensed > tbody > tr > td,
.table-condensed > tfoot > tr > td {
  padding: 5px;
}
.table-bordered {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > th,
.table-bordered > tfoot > tr > th,
.table-bordered > thead > tr > td,
.table-bordered > tbody > tr > td,
.table-bordered > tfoot > tr > td {
  border: 1px solid #ddd;
}
.table-bordered > thead > tr > th,
.table-bordered > thead > tr > td {
  border-bottom-width: 2px;
}
.table-striped > tbody > tr:nth-of-type(odd) {
  background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
  background-color: #f5f5f5;
}
table col[class*="col-"] {
  position: static;
  display: table-column;
  float: none;
}
table td[class*="col-"],
table th[class*="col-"] {
  position: static;
  display: table-cell;
  float: none;
}
.table > thead > tr > td.active,
.table > tbody > tr > td.active,
.table > tfoot > tr > td.active,
.table > thead > tr > th.active,
.table > tbody > tr > th.active,
.table > tfoot > tr > th.active,
.table > thead > tr.active > td,
.table > tbody > tr.active > td,
.table > tfoot > tr.active > td,
.table > thead > tr.active > th,
.table > tbody > tr.active > th,
.table > tfoot > tr.active > th {
  background-color: #f5f5f5;
}
.table-hover > tbody > tr > td.active:hover,
.table-hover > tbody > tr > th.active:hover,
.table-hover > tbody > tr.active:hover > td,
.table-hover > tbody > tr:hover > .active,
.table-hover > tbody > tr.active:hover > th {
  background-color: #e8e8e8;
}
.table > thead > tr > td.success,
.table > tbody > tr > td.success,
.table > tfoot > tr > td.success,
.table > thead > tr > th.success,
.table > tbody > tr > th.success,
.table > tfoot > tr > th.success,
.table > thead > tr.success > td,
.table > tbody > tr.success > td,
.table > tfoot > tr.success > td,
.table > thead > tr.success > th,
.table > tbody > tr.success > th,
.table > tfoot > tr.success > th {
  background-color: #dff0d8;
}
.table-hover > tbody > tr > td.success:hover,
.table-hover > tbody > tr > th.success:hover,
.table-hover > tbody > tr.success:hover > td,
.table-hover > tbody > tr:hover > .success,
.table-hover > tbody > tr.success:hover > th {
  background-color: #d0e9c6;
}
.table > thead > tr > td.info,
.table > tbody > tr > td.info,
.table > tfoot > tr > td.info,
.table > thead > tr > th.info,
.table > tbody > tr > th.info,
.table > tfoot > tr > th.info,
.table > thead > tr.info > td,
.table > tbody > tr.info > td,
.table > tfoot > tr.info > td,
.table > thead > tr.info > th,
.table > tbody > tr.info > th,
.table > tfoot > tr.info > th {
  background-color: #d9edf7;
}
.table-hover > tbody > tr > td.info:hover,
.table-hover > tbody > tr > th.info:hover,
.table-hover > tbody > tr.info:hover > td,
.table-hover > tbody > tr:hover > .info,
.table-hover > tbody > tr.info:hover > th {
  background-color: #c4e3f3;
}
.table > thead > tr > td.warning,
.table > tbody > tr > td.warning,
.table > tfoot > tr > td.warning,
.table > thead > tr > th.warning,
.table > tbody > tr > th.warning,
.table > tfoot > tr > th.warning,
.table > thead > tr.warning > td,
.table > tbody > tr.warning > td,
.table > tfoot > tr.warning > td,
.table > thead > tr.warning > th,
.table > tbody > tr.warning > th,
.table > tfoot > tr.warning > th {
  background-color: #fcf8e3;
}
.table-hover > tbody > tr > td.warning:hover,
.table-hover > tbody > tr > th.warning:hover,
.table-hover > tbody > tr.warning:hover > td,
.table-hover > tbody > tr:hover > .warning,
.table-hover > tbody > tr.warning:hover > th {
  background-color: #faf2cc;
}
.table > thead > tr > td.danger,
.table > tbody > tr > td.danger,
.table > tfoot > tr > td.danger,
.table > thead > tr > th.danger,
.table > tbody > tr > th.danger,
.table > tfoot > tr > th.danger,
.table > thead > tr.danger > td,
.table > tbody > tr.danger > td,
.table > tfoot > tr.danger > td,
.table > thead > tr.danger > th,
.table > tbody > tr.danger > th,
.table > tfoot > tr.danger > th {
  background-color: #f2dede;
}
.table-hover > tbody > tr > td.danger:hover,
.table-hover > tbody > tr > th.danger:hover,
.table-hover > tbody > tr.danger:hover > td,
.table-hover > tbody > tr:hover > .danger,
.table-hover > tbody > tr.danger:hover > th {
  background-color: #ebcccc;
}
.table-responsive {
  min-height: .01%;
  overflow-x: auto;
}
@media screen and (max-width: 767px) {
  .table-responsive {
    width: 100%;
    margin-bottom: 15px;
    overflow-y: hidden;
    -ms-overflow-style: -ms-autohiding-scrollbar;
    border: 1px solid #ddd;
  }
  .table-responsive > .table {
    margin-bottom: 0;
  }
  .table-responsive > .table > thead > tr > th,
  .table-responsive > .table > tbody > tr > th,
  .table-responsive > .table > tfoot > tr > th,
  .table-responsive > .table > thead > tr > td,
  .table-responsive > .table > tbody > tr > td,
  .table-responsive > .table > tfoot > tr > td {
    white-space: nowrap;
  }
  .table-responsive > .table-bordered {
    border: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:first-child,
  .table-responsive > .table-bordered > tbody > tr > th:first-child,
  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
  .table-responsive > .table-bordered > thead > tr > td:first-child,
  .table-responsive > .table-bordered > tbody > tr > td:first-child,
  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
    border-left: 0;
  }
  .table-responsive > .table-bordered > thead > tr > th:last-child,
  .table-responsive > .table-bordered > tbody > tr > th:last-child,
  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
  .table-responsive > .table-bordered > thead > tr > td:last-child,
  .table-responsive > .table-bordered > tbody > tr > td:last-child,
  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
    border-right: 0;
  }
  .table-responsive > .table-bordered > tbody > tr:last-child > th,
  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
  .table-responsive > .table-bordered > tbody > tr:last-child > td,
  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
    border-bottom: 0;
  }
}
fieldset {
  min-width: 0;
  padding: 0;
  margin: 0;
  border: 0;
}
legend {
  display: block;
  width: 100%;
  padding: 0;
  margin-bottom: 20px;
  font-size: 21px;
  line-height: inherit;
  color: #333;
  border: 0;
  border-bottom: 1px solid #e5e5e5;
}
label {
  display: inline-block;
  max-width: 100%;
  margin-bottom: 5px;
  font-weight: bold;
}
input[type="search"] {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}
input[type="radio"],
input[type="checkbox"] {
  margin: 4px 0 0;
  margin-top: 1px \9;
  line-height: normal;
}
input[type="file"] {
  display: block;
}
input[type="range"] {
  display: block;
  width: 100%;
}
select[multiple],
select[size] {
  height: auto;
}
input[type="file"]:focus,
input[type="radio"]:focus,
input[type="checkbox"]:focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
output {
  display: block;
  padding-top: 7px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
}
.form-control {
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
  -webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
       -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
}
.form-control::-moz-placeholder {
  color: #999;
  opacity: 1;
}
.form-control:-ms-input-placeholder {
  color: #999;
}
.form-control::-webkit-input-placeholder {
  color: #999;
}
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
  background-color: #eee;
  opacity: 1;
}
.form-control[disabled],
fieldset[disabled] .form-control {
  cursor: not-allowed;
}
textarea.form-control {
  height: auto;
}
input[type="search"] {
  -webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
  input[type="date"].form-control,
  input[type="time"].form-control,
  input[type="datetime-local"].form-control,
  input[type="month"].form-control {
    line-height: 34px;
  }
  input[type="date"].input-sm,
  input[type="time"].input-sm,
  input[type="datetime-local"].input-sm,
  input[type="month"].input-sm,
  .input-group-sm input[type="date"],
  .input-group-sm input[type="time"],
  .input-group-sm input[type="datetime-local"],
  .input-group-sm input[type="month"] {
    line-height: 30px;
  }
  input[type="date"].input-lg,
  input[type="time"].input-lg,
  input[type="datetime-local"].input-lg,
  input[type="month"].input-lg,
  .input-group-lg input[type="date"],
  .input-group-lg input[type="time"],
  .input-group-lg input[type="datetime-local"],
  .input-group-lg input[type="month"] {
    line-height: 46px;
  }
}
.form-group {
  margin-bottom: 15px;
}
.radio,
.checkbox {
  position: relative;
  display: block;
  margin-top: 10px;
  margin-bottom: 10px;
}
.radio label,
.checkbox label {
  min-height: 20px;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  cursor: pointer;
}
.radio input[type="radio"],
.radio-inline input[type="radio"],
.checkbox input[type="checkbox"],
.checkbox-inline input[type="checkbox"] {
  position: absolute;
  margin-top: 4px \9;
  margin-left: -20px;
}
.radio + .radio,
.checkbox + .checkbox {
  margin-top: -5px;
}
.radio-inline,
.checkbox-inline {
  position: relative;
  display: inline-block;
  padding-left: 20px;
  margin-bottom: 0;
  font-weight: normal;
  vertical-align: middle;
  cursor: pointer;
}
.radio-inline + .radio-inline,
.checkbox-inline + .checkbox-inline {
  margin-top: 0;
  margin-left: 10px;
}
input[type="radio"][disabled],
input[type="checkbox"][disabled],
input[type="radio"].disabled,
input[type="checkbox"].disabled,
fieldset[disabled] input[type="radio"],
fieldset[disabled] input[type="checkbox"] {
  cursor: not-allowed;
}
.radio-inline.disabled,
.checkbox-inline.disabled,
fieldset[disabled] .radio-inline,
fieldset[disabled] .checkbox-inline {
  cursor: not-allowed;
}
.radio.disabled label,
.checkbox.disabled label,
fieldset[disabled] .radio label,
fieldset[disabled] .checkbox label {
  cursor: not-allowed;
}
.form-control-static {
  min-height: 34px;
  padding-top: 7px;
  padding-bottom: 7px;
  margin-bottom: 0;
}
.form-control-static.input-lg,
.form-control-static.input-sm {
  padding-right: 0;
  padding-left: 0;
}
.input-sm {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
select.input-sm {
  height: 30px;
  line-height: 30px;
}
textarea.input-sm,
select[multiple].input-sm {
  height: auto;
}
.form-group-sm .form-control {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.form-group-sm select.form-control {
  height: 30px;
  line-height: 30px;
}
.form-group-sm textarea.form-control,
.form-group-sm select[multiple].form-control {
  height: auto;
}
.form-group-sm .form-control-static {
  height: 30px;
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.input-lg {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
select.input-lg {
  height: 46px;
  line-height: 46px;
}
textarea.input-lg,
select[multiple].input-lg {
  height: auto;
}
.form-group-lg .form-control {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
.form-group-lg select.form-control {
  height: 46px;
  line-height: 46px;
}
.form-group-lg textarea.form-control,
.form-group-lg select[multiple].form-control {
  height: auto;
}
.form-group-lg .form-control-static {
  height: 46px;
  min-height: 38px;
  padding: 11px 16px;
  font-size: 18px;
  line-height: 1.3333333;
}
.has-feedback {
  position: relative;
}
.has-feedback .form-control {
  padding-right: 42.5px;
}
.form-control-feedback {
  position: absolute;
  top: 0;
  right: 0;
  z-index: 2;
  display: block;
  width: 34px;
  height: 34px;
  line-height: 34px;
  text-align: center;
  pointer-events: none;
}
.input-lg + .form-control-feedback,
.input-group-lg + .form-control-feedback,
.form-group-lg .form-control + .form-control-feedback {
  width: 46px;
  height: 46px;
  line-height: 46px;
}
.input-sm + .form-control-feedback,
.input-group-sm + .form-control-feedback,
.form-group-sm .form-control + .form-control-feedback {
  width: 30px;
  height: 30px;
  line-height: 30px;
}
.has-success .help-block,
.has-success .control-label,
.has-success .radio,
.has-success .checkbox,
.has-success .radio-inline,
.has-success .checkbox-inline,
.has-success.radio label,
.has-success.checkbox label,
.has-success.radio-inline label,
.has-success.checkbox-inline label {
  color: #3c763d;
}
.has-success .form-control {
  border-color: #3c763d;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}
.has-success .form-control:focus {
  border-color: #2b542c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #67b168;
}
.has-success .input-group-addon {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #3c763d;
}
.has-success .form-control-feedback {
  color: #3c763d;
}
.has-warning .help-block,
.has-warning .control-label,
.has-warning .radio,
.has-warning .checkbox,
.has-warning .radio-inline,
.has-warning .checkbox-inline,
.has-warning.radio label,
.has-warning.checkbox label,
.has-warning.radio-inline label,
.has-warning.checkbox-inline label {
  color: #8a6d3b;
}
.has-warning .form-control {
  border-color: #8a6d3b;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}
.has-warning .form-control:focus {
  border-color: #66512c;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #c0a16b;
}
.has-warning .input-group-addon {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #8a6d3b;
}
.has-warning .form-control-feedback {
  color: #8a6d3b;
}
.has-error .help-block,
.has-error .control-label,
.has-error .radio,
.has-error .checkbox,
.has-error .radio-inline,
.has-error .checkbox-inline,
.has-error.radio label,
.has-error.checkbox label,
.has-error.radio-inline label,
.has-error.checkbox-inline label {
  color: #a94442;
}
.has-error .form-control {
  border-color: #a94442;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
}
.has-error .form-control:focus {
  border-color: #843534;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075), 0 0 6px #ce8483;
}
.has-error .input-group-addon {
  color: #a94442;
  background-color: #f2dede;
  border-color: #a94442;
}
.has-error .form-control-feedback {
  color: #a94442;
}
.has-feedback label ~ .form-control-feedback {
  top: 25px;
}
.has-feedback label.sr-only ~ .form-control-feedback {
  top: 0;
}
.help-block {
  display: block;
  margin-top: 5px;
  margin-bottom: 10px;
  color: #737373;
}
@media (min-width: 768px) {
  .form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .form-inline .form-control-static {
    display: inline-block;
  }
  .form-inline .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .form-inline .input-group .input-group-addon,
  .form-inline .input-group .input-group-btn,
  .form-inline .input-group .form-control {
    width: auto;
  }
  .form-inline .input-group > .form-control {
    width: 100%;
  }
  .form-inline .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio,
  .form-inline .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .form-inline .radio label,
  .form-inline .checkbox label {
    padding-left: 0;
  }
  .form-inline .radio input[type="radio"],
  .form-inline .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .form-inline .has-feedback .form-control-feedback {
    top: 0;
  }
}
.form-horizontal .radio,
.form-horizontal .checkbox,
.form-horizontal .radio-inline,
.form-horizontal .checkbox-inline {
  padding-top: 7px;
  margin-top: 0;
  margin-bottom: 0;
}
.form-horizontal .radio,
.form-horizontal .checkbox {
  min-height: 27px;
}
.form-horizontal .form-group {
  margin-right: -15px;
  margin-left: -15px;
}
@media (min-width: 768px) {
  .form-horizontal .control-label {
    padding-top: 7px;
    margin-bottom: 0;
    text-align: right;
  }
}
.form-horizontal .has-feedback .form-control-feedback {
  right: 15px;
}
@media (min-width: 768px) {
  .form-horizontal .form-group-lg .control-label {
    padding-top: 14.333333px;
    font-size: 18px;
  }
}
@media (min-width: 768px) {
  .form-horizontal .form-group-sm .control-label {
    padding-top: 6px;
    font-size: 12px;
  }
}
.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: thin dotted;
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: .65;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}
.btn-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled,
.btn-primary[disabled],
fieldset[disabled] .btn-primary,
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus,
.btn-primary.disabled:active,
.btn-primary[disabled]:active,
fieldset[disabled] .btn-primary:active,
.btn-primary.disabled.active,
.btn-primary[disabled].active,
fieldset[disabled] .btn-primary.active {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}
.btn-success {
  color: #fff;
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success:focus,
.btn-success.focus {
  color: #fff;
  background-color: #449d44;
  border-color: #255625;
}
.btn-success:hover {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  color: #fff;
  background-color: #449d44;
  border-color: #398439;
}
.btn-success:active:hover,
.btn-success.active:hover,
.open > .dropdown-toggle.btn-success:hover,
.btn-success:active:focus,
.btn-success.active:focus,
.open > .dropdown-toggle.btn-success:focus,
.btn-success:active.focus,
.btn-success.active.focus,
.open > .dropdown-toggle.btn-success.focus {
  color: #fff;
  background-color: #398439;
  border-color: #255625;
}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
  background-image: none;
}
.btn-success.disabled,
.btn-success[disabled],
fieldset[disabled] .btn-success,
.btn-success.disabled:hover,
.btn-success[disabled]:hover,
fieldset[disabled] .btn-success:hover,
.btn-success.disabled:focus,
.btn-success[disabled]:focus,
fieldset[disabled] .btn-success:focus,
.btn-success.disabled.focus,
.btn-success[disabled].focus,
fieldset[disabled] .btn-success.focus,
.btn-success.disabled:active,
.btn-success[disabled]:active,
fieldset[disabled] .btn-success:active,
.btn-success.disabled.active,
.btn-success[disabled].active,
fieldset[disabled] .btn-success.active {
  background-color: #5cb85c;
  border-color: #4cae4c;
}
.btn-success .badge {
  color: #5cb85c;
  background-color: #fff;
}
.btn-info {
  color: #fff;
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info:focus,
.btn-info.focus {
  color: #fff;
  background-color: #31b0d5;
  border-color: #1b6d85;
}
.btn-info:hover {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  color: #fff;
  background-color: #31b0d5;
  border-color: #269abc;
}
.btn-info:active:hover,
.btn-info.active:hover,
.open > .dropdown-toggle.btn-info:hover,
.btn-info:active:focus,
.btn-info.active:focus,
.open > .dropdown-toggle.btn-info:focus,
.btn-info:active.focus,
.btn-info.active.focus,
.open > .dropdown-toggle.btn-info.focus {
  color: #fff;
  background-color: #269abc;
  border-color: #1b6d85;
}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
  background-image: none;
}
.btn-info.disabled,
.btn-info[disabled],
fieldset[disabled] .btn-info,
.btn-info.disabled:hover,
.btn-info[disabled]:hover,
fieldset[disabled] .btn-info:hover,
.btn-info.disabled:focus,
.btn-info[disabled]:focus,
fieldset[disabled] .btn-info:focus,
.btn-info.disabled.focus,
.btn-info[disabled].focus,
fieldset[disabled] .btn-info.focus,
.btn-info.disabled:active,
.btn-info[disabled]:active,
fieldset[disabled] .btn-info:active,
.btn-info.disabled.active,
.btn-info[disabled].active,
fieldset[disabled] .btn-info.active {
  background-color: #5bc0de;
  border-color: #46b8da;
}
.btn-info .badge {
  color: #5bc0de;
  background-color: #fff;
}
.btn-warning {
  color: #fff;
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning:focus,
.btn-warning.focus {
  color: #fff;
  background-color: #ec971f;
  border-color: #985f0d;
}
.btn-warning:hover {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  color: #fff;
  background-color: #ec971f;
  border-color: #d58512;
}
.btn-warning:active:hover,
.btn-warning.active:hover,
.open > .dropdown-toggle.btn-warning:hover,
.btn-warning:active:focus,
.btn-warning.active:focus,
.open > .dropdown-toggle.btn-warning:focus,
.btn-warning:active.focus,
.btn-warning.active.focus,
.open > .dropdown-toggle.btn-warning.focus {
  color: #fff;
  background-color: #d58512;
  border-color: #985f0d;
}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
  background-image: none;
}
.btn-warning.disabled,
.btn-warning[disabled],
fieldset[disabled] .btn-warning,
.btn-warning.disabled:hover,
.btn-warning[disabled]:hover,
fieldset[disabled] .btn-warning:hover,
.btn-warning.disabled:focus,
.btn-warning[disabled]:focus,
fieldset[disabled] .btn-warning:focus,
.btn-warning.disabled.focus,
.btn-warning[disabled].focus,
fieldset[disabled] .btn-warning.focus,
.btn-warning.disabled:active,
.btn-warning[disabled]:active,
fieldset[disabled] .btn-warning:active,
.btn-warning.disabled.active,
.btn-warning[disabled].active,
fieldset[disabled] .btn-warning.active {
  background-color: #f0ad4e;
  border-color: #eea236;
}
.btn-warning .badge {
  color: #f0ad4e;
  background-color: #fff;
}
.btn-danger {
  color: #fff;
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger:focus,
.btn-danger.focus {
  color: #fff;
  background-color: #c9302c;
  border-color: #761c19;
}
.btn-danger:hover {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  color: #fff;
  background-color: #c9302c;
  border-color: #ac2925;
}
.btn-danger:active:hover,
.btn-danger.active:hover,
.open > .dropdown-toggle.btn-danger:hover,
.btn-danger:active:focus,
.btn-danger.active:focus,
.open > .dropdown-toggle.btn-danger:focus,
.btn-danger:active.focus,
.btn-danger.active.focus,
.open > .dropdown-toggle.btn-danger.focus {
  color: #fff;
  background-color: #ac2925;
  border-color: #761c19;
}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
  background-image: none;
}
.btn-danger.disabled,
.btn-danger[disabled],
fieldset[disabled] .btn-danger,
.btn-danger.disabled:hover,
.btn-danger[disabled]:hover,
fieldset[disabled] .btn-danger:hover,
.btn-danger.disabled:focus,
.btn-danger[disabled]:focus,
fieldset[disabled] .btn-danger:focus,
.btn-danger.disabled.focus,
.btn-danger[disabled].focus,
fieldset[disabled] .btn-danger.focus,
.btn-danger.disabled:active,
.btn-danger[disabled]:active,
fieldset[disabled] .btn-danger:active,
.btn-danger.disabled.active,
.btn-danger[disabled].active,
fieldset[disabled] .btn-danger.active {
  background-color: #d9534f;
  border-color: #d43f3a;
}
.btn-danger .badge {
  color: #d9534f;
  background-color: #fff;
}
.btn-link {
  font-weight: normal;
  color: #337ab7;
  border-radius: 0;
}
.btn-link,
.btn-link:active,
.btn-link.active,
.btn-link[disabled],
fieldset[disabled] .btn-link {
  background-color: transparent;
  -webkit-box-shadow: none;
          box-shadow: none;
}
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
  border-color: transparent;
}
.btn-link:hover,
.btn-link:focus {
  color: #23527c;
  text-decoration: underline;
  background-color: transparent;
}
.btn-link[disabled]:hover,
fieldset[disabled] .btn-link:hover,
.btn-link[disabled]:focus,
fieldset[disabled] .btn-link:focus {
  color: #777;
  text-decoration: none;
}
.btn-lg,
.btn-group-lg > .btn {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
.btn-sm,
.btn-group-sm > .btn {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.btn-xs,
.btn-group-xs > .btn {
  padding: 1px 5px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
.btn-block {
  display: block;
  width: 100%;
}
.btn-block + .btn-block {
  margin-top: 5px;
}
input[type="submit"].btn-block,
input[type="reset"].btn-block,
input[type="button"].btn-block {
  width: 100%;
}
.fade {
  opacity: 0;
  -webkit-transition: opacity .15s linear;
       -o-transition: opacity .15s linear;
          transition: opacity .15s linear;
}
.fade.in {
  opacity: 1;
}
.collapse {
  display: none;
}
.collapse.in {
  display: block;
}
tr.collapse.in {
  display: table-row;
}
tbody.collapse.in {
  display: table-row-group;
}
.collapsing {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition-timing-function: ease;
       -o-transition-timing-function: ease;
          transition-timing-function: ease;
  -webkit-transition-duration: .35s;
       -o-transition-duration: .35s;
          transition-duration: .35s;
  -webkit-transition-property: height, visibility;
       -o-transition-property: height, visibility;
          transition-property: height, visibility;
}
.caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 2px;
  vertical-align: middle;
  border-top: 4px dashed;
  border-top: 4px solid \9;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
}
.dropup,
.dropdown {
  position: relative;
}
.dropdown-toggle:focus {
  outline: 0;
}
.dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  z-index: 1000;
  display: none;
  float: left;
  min-width: 160px;
  padding: 5px 0;
  margin: 2px 0 0;
  font-size: 14px;
  text-align: left;
  list-style: none;
  background-color: #fff;
  -webkit-background-clip: padding-box;
          background-clip: padding-box;
  border: 1px solid #ccc;
  border: 1px solid rgba(0, 0, 0, .15);
  border-radius: 4px;
  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
          box-shadow: 0 6px 12px rgba(0, 0, 0, .175);
}
.dropdown-menu.pull-right {
  right: 0;
  left: auto;
}
.dropdown-menu .divider {
  height: 1px;
  margin: 9px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.dropdown-menu > li > a {
  display: block;
  padding: 3px 20px;
  clear: both;
  font-weight: normal;
  line-height: 1.42857143;
  color: #333;
  white-space: nowrap;
}
.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
  color: #262626;
  text-decoration: none;
  background-color: #f5f5f5;
}
.dropdown-menu > .active > a,
.dropdown-menu > .active > a:hover,
.dropdown-menu > .active > a:focus {
  color: #fff;
  text-decoration: none;
  background-color: #337ab7;
  outline: 0;
}
.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  color: #777;
}
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
  text-decoration: none;
  cursor: not-allowed;
  background-color: transparent;
  background-image: none;
  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
}
.open > .dropdown-menu {
  display: block;
}
.open > a {
  outline: 0;
}
.dropdown-menu-right {
  right: 0;
  left: auto;
}
.dropdown-menu-left {
  right: auto;
  left: 0;
}
.dropdown-header {
  display: block;
  padding: 3px 20px;
  font-size: 12px;
  line-height: 1.42857143;
  color: #777;
  white-space: nowrap;
}
.dropdown-backdrop {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 990;
}
.pull-right > .dropdown-menu {
  right: 0;
  left: auto;
}
.dropup .caret,
.navbar-fixed-bottom .dropdown .caret {
  content: "";
  border-top: 0;
  border-bottom: 4px dashed;
  border-bottom: 4px solid \9;
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
  top: auto;
  bottom: 100%;
  margin-bottom: 2px;
}
@media (min-width: 768px) {
  .navbar-right .dropdown-menu {
    right: 0;
    left: auto;
  }
  .navbar-right .dropdown-menu-left {
    right: auto;
    left: 0;
  }
}
.btn-group,
.btn-group-vertical {
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
.btn-group > .btn,
.btn-group-vertical > .btn {
  position: relative;
  float: left;
}
.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
  z-index: 2;
}
.btn-group .btn + .btn,
.btn-group .btn + .btn-group,
.btn-group .btn-group + .btn,
.btn-group .btn-group + .btn-group {
  margin-left: -1px;
}
.btn-toolbar {
  margin-left: -5px;
}
.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
  float: left;
}
.btn-toolbar > .btn,
.btn-toolbar > .btn-group,
.btn-toolbar > .input-group {
  margin-left: 5px;
}
.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
  border-radius: 0;
}
.btn-group > .btn:first-child {
  margin-left: 0;
}
.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn:last-child:not(:first-child),
.btn-group > .dropdown-toggle:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group > .btn-group {
  float: left;
}
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group .dropdown-toggle:active,
.btn-group.open .dropdown-toggle {
  outline: 0;
}
.btn-group > .btn + .dropdown-toggle {
  padding-right: 8px;
  padding-left: 8px;
}
.btn-group > .btn-lg + .dropdown-toggle {
  padding-right: 12px;
  padding-left: 12px;
}
.btn-group.open .dropdown-toggle {
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn-group.open .dropdown-toggle.btn-link {
  -webkit-box-shadow: none;
          box-shadow: none;
}
.btn .caret {
  margin-left: 0;
}
.btn-lg .caret {
  border-width: 5px 5px 0;
  border-bottom-width: 0;
}
.dropup .btn-lg .caret {
  border-width: 0 5px 5px;
}
.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group,
.btn-group-vertical > .btn-group > .btn {
  display: block;
  float: none;
  width: 100%;
  max-width: 100%;
}
.btn-group-vertical > .btn-group > .btn {
  float: none;
}
.btn-group-vertical > .btn + .btn,
.btn-group-vertical > .btn + .btn-group,
.btn-group-vertical > .btn-group + .btn,
.btn-group-vertical > .btn-group + .btn-group {
  margin-top: -1px;
  margin-left: 0;
}
.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.btn-group-vertical > .btn:first-child:not(:last-child) {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn:last-child:not(:first-child) {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  border-bottom-left-radius: 4px;
}
.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
  border-radius: 0;
}
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.btn-group-justified {
  display: table;
  width: 100%;
  table-layout: fixed;
  border-collapse: separate;
}
.btn-group-justified > .btn,
.btn-group-justified > .btn-group {
  display: table-cell;
  float: none;
  width: 1%;
}
.btn-group-justified > .btn-group .btn {
  width: 100%;
}
.btn-group-justified > .btn-group .dropdown-menu {
  left: auto;
}
[data-toggle="buttons"] > .btn input[type="radio"],
[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
[data-toggle="buttons"] > .btn input[type="checkbox"],
[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
  position: absolute;
  clip: rect(0, 0, 0, 0);
  pointer-events: none;
}
.input-group {
  position: relative;
  display: table;
  border-collapse: separate;
}
.input-group[class*="col-"] {
  float: none;
  padding-right: 0;
  padding-left: 0;
}
.input-group .form-control {
  position: relative;
  z-index: 2;
  float: left;
  width: 100%;
  margin-bottom: 0;
}
.input-group-lg > .form-control,
.input-group-lg > .input-group-addon,
.input-group-lg > .input-group-btn > .btn {
  height: 46px;
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
  border-radius: 6px;
}
select.input-group-lg > .form-control,
select.input-group-lg > .input-group-addon,
select.input-group-lg > .input-group-btn > .btn {
  height: 46px;
  line-height: 46px;
}
textarea.input-group-lg > .form-control,
textarea.input-group-lg > .input-group-addon,
textarea.input-group-lg > .input-group-btn > .btn,
select[multiple].input-group-lg > .form-control,
select[multiple].input-group-lg > .input-group-addon,
select[multiple].input-group-lg > .input-group-btn > .btn {
  height: auto;
}
.input-group-sm > .form-control,
.input-group-sm > .input-group-addon,
.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
  border-radius: 3px;
}
select.input-group-sm > .form-control,
select.input-group-sm > .input-group-addon,
select.input-group-sm > .input-group-btn > .btn {
  height: 30px;
  line-height: 30px;
}
textarea.input-group-sm > .form-control,
textarea.input-group-sm > .input-group-addon,
textarea.input-group-sm > .input-group-btn > .btn,
select[multiple].input-group-sm > .form-control,
select[multiple].input-group-sm > .input-group-addon,
select[multiple].input-group-sm > .input-group-btn > .btn {
  height: auto;
}
.input-group-addon,
.input-group-btn,
.input-group .form-control {
  display: table-cell;
}
.input-group-addon:not(:first-child):not(:last-child),
.input-group-btn:not(:first-child):not(:last-child),
.input-group .form-control:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.input-group-addon,
.input-group-btn {
  width: 1%;
  white-space: nowrap;
  vertical-align: middle;
}
.input-group-addon {
  padding: 6px 12px;
  font-size: 14px;
  font-weight: normal;
  line-height: 1;
  color: #555;
  text-align: center;
  background-color: #eee;
  border: 1px solid #ccc;
  border-radius: 4px;
}
.input-group-addon.input-sm {
  padding: 5px 10px;
  font-size: 12px;
  border-radius: 3px;
}
.input-group-addon.input-lg {
  padding: 10px 16px;
  font-size: 18px;
  border-radius: 6px;
}
.input-group-addon input[type="radio"],
.input-group-addon input[type="checkbox"] {
  margin-top: 0;
}
.input-group .form-control:first-child,
.input-group-addon:first-child,
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group > .btn,
.input-group-btn:first-child > .dropdown-toggle,
.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.input-group-addon:first-child {
  border-right: 0;
}
.input-group .form-control:last-child,
.input-group-addon:last-child,
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group > .btn,
.input-group-btn:last-child > .dropdown-toggle,
.input-group-btn:first-child > .btn:not(:first-child),
.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.input-group-addon:last-child {
  border-left: 0;
}
.input-group-btn {
  position: relative;
  font-size: 0;
  white-space: nowrap;
}
.input-group-btn > .btn {
  position: relative;
}
.input-group-btn > .btn + .btn {
  margin-left: -1px;
}
.input-group-btn > .btn:hover,
.input-group-btn > .btn:focus,
.input-group-btn > .btn:active {
  z-index: 2;
}
.input-group-btn:first-child > .btn,
.input-group-btn:first-child > .btn-group {
  margin-right: -1px;
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
  z-index: 2;
  margin-left: -1px;
}
.nav {
  padding-left: 0;
  margin-bottom: 0;
  list-style: none;
}
.nav > li {
  position: relative;
  display: block;
}
.nav > li > a {
  position: relative;
  display: block;
  padding: 10px 15px;
}
.nav > li > a:hover,
.nav > li > a:focus {
  text-decoration: none;
  background-color: #eee;
}
.nav > li.disabled > a {
  color: #777;
}
.nav > li.disabled > a:hover,
.nav > li.disabled > a:focus {
  color: #777;
  text-decoration: none;
  cursor: not-allowed;
  background-color: transparent;
}
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
  background-color: #eee;
  border-color: #337ab7;
}
.nav .nav-divider {
  height: 1px;
  margin: 9px 0;
  overflow: hidden;
  background-color: #e5e5e5;
}
.nav > li > a > img {
  max-width: none;
}
.nav-tabs {
  border-bottom: 1px solid #ddd;
}
.nav-tabs > li {
  float: left;
  margin-bottom: -1px;
}
.nav-tabs > li > a {
  margin-right: 2px;
  line-height: 1.42857143;
  border: 1px solid transparent;
  border-radius: 4px 4px 0 0;
}
.nav-tabs > li > a:hover {
  border-color: #eee #eee #ddd;
}
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
  color: #555;
  cursor: default;
  background-color: #fff;
  border: 1px solid #ddd;
  border-bottom-color: transparent;
}
.nav-tabs.nav-justified {
  width: 100%;
  border-bottom: 0;
}
.nav-tabs.nav-justified > li {
  float: none;
}
.nav-tabs.nav-justified > li > a {
  margin-bottom: 5px;
  text-align: center;
}
.nav-tabs.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-tabs.nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs.nav-justified > li > a {
  margin-right: 0;
  border-radius: 4px;
}
.nav-tabs.nav-justified > .active > a,
.nav-tabs.nav-justified > .active > a:hover,
.nav-tabs.nav-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs.nav-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 4px 4px 0 0;
  }
  .nav-tabs.nav-justified > .active > a,
  .nav-tabs.nav-justified > .active > a:hover,
  .nav-tabs.nav-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.nav-pills > li {
  float: left;
}
.nav-pills > li > a {
  border-radius: 4px;
}
.nav-pills > li + li {
  margin-left: 2px;
}
.nav-pills > li.active > a,
.nav-pills > li.active > a:hover,
.nav-pills > li.active > a:focus {
  color: #fff;
  background-color: #337ab7;
}
.nav-stacked > li {
  float: none;
}
.nav-stacked > li + li {
  margin-top: 2px;
  margin-left: 0;
}
.nav-justified {
  width: 100%;
}
.nav-justified > li {
  float: none;
}
.nav-justified > li > a {
  margin-bottom: 5px;
  text-align: center;
}
.nav-justified > .dropdown .dropdown-menu {
  top: auto;
  left: auto;
}
@media (min-width: 768px) {
  .nav-justified > li {
    display: table-cell;
    width: 1%;
  }
  .nav-justified > li > a {
    margin-bottom: 0;
  }
}
.nav-tabs-justified {
  border-bottom: 0;
}
.nav-tabs-justified > li > a {
  margin-right: 0;
  border-radius: 4px;
}
.nav-tabs-justified > .active > a,
.nav-tabs-justified > .active > a:hover,
.nav-tabs-justified > .active > a:focus {
  border: 1px solid #ddd;
}
@media (min-width: 768px) {
  .nav-tabs-justified > li > a {
    border-bottom: 1px solid #ddd;
    border-radius: 4px 4px 0 0;
  }
  .nav-tabs-justified > .active > a,
  .nav-tabs-justified > .active > a:hover,
  .nav-tabs-justified > .active > a:focus {
    border-bottom-color: #fff;
  }
}
.tab-content > .tab-pane {
  display: none;
}
.tab-content > .active {
  display: block;
}
.nav-tabs .dropdown-menu {
  margin-top: -1px;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.navbar {
  position: relative;
  min-height: 50px;
  margin-bottom: 20px;
  border: 1px solid transparent;
}
@media (min-width: 768px) {
  .navbar {
    border-radius: 4px;
  }
}
@media (min-width: 768px) {
  .navbar-header {
    float: left;
  }
}
.navbar-collapse {
  padding-right: 15px;
  padding-left: 15px;
  overflow-x: visible;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
}
.navbar-collapse.in {
  overflow-y: auto;
}
@media (min-width: 768px) {
  .navbar-collapse {
    width: auto;
    border-top: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  .navbar-collapse.collapse {
    display: block !important;
    height: auto !important;
    padding-bottom: 0;
    overflow: visible !important;
  }
  .navbar-collapse.in {
    overflow-y: visible;
  }
  .navbar-fixed-top .navbar-collapse,
  .navbar-static-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    padding-right: 0;
    padding-left: 0;
  }
}
.navbar-fixed-top .navbar-collapse,
.navbar-fixed-bottom .navbar-collapse {
  max-height: 340px;
}
@media (max-device-width: 480px) and (orientation: landscape) {
  .navbar-fixed-top .navbar-collapse,
  .navbar-fixed-bottom .navbar-collapse {
    max-height: 200px;
  }
}
.container > .navbar-header,
.container-fluid > .navbar-header,
.container > .navbar-collapse,
.container-fluid > .navbar-collapse {
  margin-right: -15px;
  margin-left: -15px;
}
@media (min-width: 768px) {
  .container > .navbar-header,
  .container-fluid > .navbar-header,
  .container > .navbar-collapse,
  .container-fluid > .navbar-collapse {
    margin-right: 0;
    margin-left: 0;
  }
}
.navbar-static-top {
  z-index: 1000;
  border-width: 0 0 1px;
}
@media (min-width: 768px) {
  .navbar-static-top {
    border-radius: 0;
  }
}
.navbar-fixed-top,
.navbar-fixed-bottom {
  position: fixed;
  right: 0;
  left: 0;
  z-index: 1030;
}
@media (min-width: 768px) {
  .navbar-fixed-top,
  .navbar-fixed-bottom {
    border-radius: 0;
  }
}
.navbar-fixed-top {
  top: 0;
  border-width: 0 0 1px;
}
.navbar-fixed-bottom {
  bottom: 0;
  margin-bottom: 0;
  border-width: 1px 0 0;
}
.navbar-brand {
  float: left;
  height: 50px;
  padding: 15px 15px;
  font-size: 18px;
  line-height: 20px;
}
.navbar-brand:hover,
.navbar-brand:focus {
  text-decoration: none;
}
.navbar-brand > img {
  display: block;
}
@media (min-width: 768px) {
  .navbar > .container .navbar-brand,
  .navbar > .container-fluid .navbar-brand {
    margin-left: -15px;
  }
}
.navbar-toggle {
  position: relative;
  float: right;
  padding: 9px 10px;
  margin-top: 8px;
  margin-right: 15px;
  margin-bottom: 8px;
  background-color: transparent;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.navbar-toggle:focus {
  outline: 0;
}
.navbar-toggle .icon-bar {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 1px;
}
.navbar-toggle .icon-bar + .icon-bar {
  margin-top: 4px;
}
@media (min-width: 768px) {
  .navbar-toggle {
    display: none;
  }
}
.navbar-nav {
  margin: 7.5px -15px;
}
.navbar-nav > li > a {
  padding-top: 10px;
  padding-bottom: 10px;
  line-height: 20px;
}
@media (max-width: 767px) {
  .navbar-nav .open .dropdown-menu {
    position: static;
    float: none;
    width: auto;
    margin-top: 0;
    background-color: transparent;
    border: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
  }
  .navbar-nav .open .dropdown-menu > li > a,
  .navbar-nav .open .dropdown-menu .dropdown-header {
    padding: 5px 15px 5px 25px;
  }
  .navbar-nav .open .dropdown-menu > li > a {
    line-height: 20px;
  }
  .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-nav .open .dropdown-menu > li > a:focus {
    background-image: none;
  }
}
@media (min-width: 768px) {
  .navbar-nav {
    float: left;
    margin: 0;
  }
  .navbar-nav > li {
    float: left;
  }
  .navbar-nav > li > a {
    padding-top: 15px;
    padding-bottom: 15px;
  }
}
.navbar-form {
  padding: 10px 15px;
  margin-top: 8px;
  margin-right: -15px;
  margin-bottom: 8px;
  margin-left: -15px;
  border-top: 1px solid transparent;
  border-bottom: 1px solid transparent;
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
          box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1), 0 1px 0 rgba(255, 255, 255, .1);
}
@media (min-width: 768px) {
  .navbar-form .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .form-control {
    display: inline-block;
    width: auto;
    vertical-align: middle;
  }
  .navbar-form .form-control-static {
    display: inline-block;
  }
  .navbar-form .input-group {
    display: inline-table;
    vertical-align: middle;
  }
  .navbar-form .input-group .input-group-addon,
  .navbar-form .input-group .input-group-btn,
  .navbar-form .input-group .form-control {
    width: auto;
  }
  .navbar-form .input-group > .form-control {
    width: 100%;
  }
  .navbar-form .control-label {
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio,
  .navbar-form .checkbox {
    display: inline-block;
    margin-top: 0;
    margin-bottom: 0;
    vertical-align: middle;
  }
  .navbar-form .radio label,
  .navbar-form .checkbox label {
    padding-left: 0;
  }
  .navbar-form .radio input[type="radio"],
  .navbar-form .checkbox input[type="checkbox"] {
    position: relative;
    margin-left: 0;
  }
  .navbar-form .has-feedback .form-control-feedback {
    top: 0;
  }
}
@media (max-width: 767px) {
  .navbar-form .form-group {
    margin-bottom: 5px;
  }
  .navbar-form .form-group:last-child {
    margin-bottom: 0;
  }
}
@media (min-width: 768px) {
  .navbar-form {
    width: auto;
    padding-top: 0;
    padding-bottom: 0;
    margin-right: 0;
    margin-left: 0;
    border: 0;
    -webkit-box-shadow: none;
            box-shadow: none;
  }
}
.navbar-nav > li > .dropdown-menu {
  margin-top: 0;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
  margin-bottom: 0;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}
.navbar-btn {
  margin-top: 8px;
  margin-bottom: 8px;
}
.navbar-btn.btn-sm {
  margin-top: 10px;
  margin-bottom: 10px;
}
.navbar-btn.btn-xs {
  margin-top: 14px;
  margin-bottom: 14px;
}
.navbar-text {
  margin-top: 15px;
  margin-bottom: 15px;
}
@media (min-width: 768px) {
  .navbar-text {
    float: left;
    margin-right: 15px;
    margin-left: 15px;
  }
}
@media (min-width: 768px) {
  .navbar-left {
    float: left !important;
  }
  .navbar-right {
    float: right !important;
    margin-right: -15px;
  }
  .navbar-right ~ .navbar-right {
    margin-right: 0;
  }
}
.navbar-default {
  background-color: #f8f8f8;
  border-color: #e7e7e7;
}
.navbar-default .navbar-brand {
  color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
  color: #5e5e5e;
  background-color: transparent;
}
.navbar-default .navbar-text {
  color: #777;
}
.navbar-default .navbar-nav > li > a {
  color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
  color: #333;
  background-color: transparent;
}
.navbar-default .navbar-nav > .active > a,
.navbar-default .navbar-nav > .active > a:hover,
.navbar-default .navbar-nav > .active > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
.navbar-default .navbar-nav > .disabled > a,
.navbar-default .navbar-nav > .disabled > a:hover,
.navbar-default .navbar-nav > .disabled > a:focus {
  color: #ccc;
  background-color: transparent;
}
.navbar-default .navbar-toggle {
  border-color: #ddd;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
  background-color: #ddd;
}
.navbar-default .navbar-toggle .icon-bar {
  background-color: #888;
}
.navbar-default .navbar-collapse,
.navbar-default .navbar-form {
  border-color: #e7e7e7;
}
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus {
  color: #555;
  background-color: #e7e7e7;
}
@media (max-width: 767px) {
  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
    color: #777;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #333;
    background-color: transparent;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #555;
    background-color: #e7e7e7;
  }
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #ccc;
    background-color: transparent;
  }
}
.navbar-default .navbar-link {
  color: #777;
}
.navbar-default .navbar-link:hover {
  color: #333;
}
.navbar-default .btn-link {
  color: #777;
}
.navbar-default .btn-link:hover,
.navbar-default .btn-link:focus {
  color: #333;
}
.navbar-default .btn-link[disabled]:hover,
fieldset[disabled] .navbar-default .btn-link:hover,
.navbar-default .btn-link[disabled]:focus,
fieldset[disabled] .navbar-default .btn-link:focus {
  color: #ccc;
}
.navbar-inverse {
  background-color: #222;
  border-color: #080808;
}
.navbar-inverse .navbar-brand {
  color: #9d9d9d;
}
.navbar-inverse .navbar-brand:hover,
.navbar-inverse .navbar-brand:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-text {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a {
  color: #9d9d9d;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
  color: #fff;
  background-color: transparent;
}
.navbar-inverse .navbar-nav > .active > a,
.navbar-inverse .navbar-nav > .active > a:hover,
.navbar-inverse .navbar-nav > .active > a:focus {
  color: #fff;
  background-color: #080808;
}
.navbar-inverse .navbar-nav > .disabled > a,
.navbar-inverse .navbar-nav > .disabled > a:hover,
.navbar-inverse .navbar-nav > .disabled > a:focus {
  color: #444;
  background-color: transparent;
}
.navbar-inverse .navbar-toggle {
  border-color: #333;
}
.navbar-inverse .navbar-toggle:hover,
.navbar-inverse .navbar-toggle:focus {
  background-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
  background-color: #fff;
}
.navbar-inverse .navbar-collapse,
.navbar-inverse .navbar-form {
  border-color: #101010;
}
.navbar-inverse .navbar-nav > .open > a,
.navbar-inverse .navbar-nav > .open > a:hover,
.navbar-inverse .navbar-nav > .open > a:focus {
  color: #fff;
  background-color: #080808;
}
@media (max-width: 767px) {
  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
    border-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
    color: #9d9d9d;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
    color: #fff;
    background-color: transparent;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
    color: #fff;
    background-color: #080808;
  }
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
    color: #444;
    background-color: transparent;
  }
}
.navbar-inverse .navbar-link {
  color: #9d9d9d;
}
.navbar-inverse .navbar-link:hover {
  color: #fff;
}
.navbar-inverse .btn-link {
  color: #9d9d9d;
}
.navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link:focus {
  color: #fff;
}
.navbar-inverse .btn-link[disabled]:hover,
fieldset[disabled] .navbar-inverse .btn-link:hover,
.navbar-inverse .btn-link[disabled]:focus,
fieldset[disabled] .navbar-inverse .btn-link:focus {
  color: #444;
}
.breadcrumb {
  padding: 8px 15px;
  margin-bottom: 20px;
  list-style: none;
  background-color: #f5f5f5;
  border-radius: 4px;
}
.breadcrumb > li {
  display: inline-block;
}
.breadcrumb > li + li:before {
  padding: 0 5px;
  color: #ccc;
  content: "/\00a0";
}
.breadcrumb > .active {
  color: #777;
}
.pagination {
  display: inline-block;
  padding-left: 0;
  margin: 20px 0;
  border-radius: 4px;
}
.pagination > li {
  display: inline;
}
.pagination > li > a,
.pagination > li > span {
  position: relative;
  float: left;
  padding: 6px 12px;
  margin-left: -1px;
  line-height: 1.42857143;
  color: #337ab7;
  text-decoration: none;
  background-color: #fff;
  border: 1px solid #ddd;
}
.pagination > li:first-child > a,
.pagination > li:first-child > span {
  margin-left: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
}
.pagination > li:last-child > a,
.pagination > li:last-child > span {
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}
.pagination > li > a:hover,
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
  z-index: 3;
  color: #23527c;
  background-color: #eee;
  border-color: #ddd;
}
.pagination > .active > a,
.pagination > .active > span,
.pagination > .active > a:hover,
.pagination > .active > span:hover,
.pagination > .active > a:focus,
.pagination > .active > span:focus {
  z-index: 2;
  color: #fff;
  cursor: default;
  background-color: #337ab7;
  border-color: #337ab7;
}
.pagination > .disabled > span,
.pagination > .disabled > span:hover,
.pagination > .disabled > span:focus,
.pagination > .disabled > a,
.pagination > .disabled > a:hover,
.pagination > .disabled > a:focus {
  color: #777;
  cursor: not-allowed;
  background-color: #fff;
  border-color: #ddd;
}
.pagination-lg > li > a,
.pagination-lg > li > span {
  padding: 10px 16px;
  font-size: 18px;
  line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}
.pagination-lg > li:last-child > a,
.pagination-lg > li:last-child > span {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}
.pagination-sm > li > a,
.pagination-sm > li > span {
  padding: 5px 10px;
  font-size: 12px;
  line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
  border-top-left-radius: 3px;
  border-bottom-left-radius: 3px;
}
.pagination-sm > li:last-child > a,
.pagination-sm > li:last-child > span {
  border-top-right-radius: 3px;
  border-bottom-right-radius: 3px;
}
.pager {
  padding-left: 0;
  margin: 20px 0;
  text-align: center;
  list-style: none;
}
.pager li {
  display: inline;
}
.pager li > a,
.pager li > span {
  display: inline-block;
  padding: 5px 14px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
}
.pager li > a:hover,
.pager li > a:focus {
  text-decoration: none;
  background-color: #eee;
}
.pager .next > a,
.pager .next > span {
  float: right;
}
.pager .previous > a,
.pager .previous > span {
  float: left;
}
.pager .disabled > a,
.pager .disabled > a:hover,
.pager .disabled > a:focus,
.pager .disabled > span {
  color: #777;
  cursor: not-allowed;
  background-color: #fff;
}
.label {
  display: inline;
  padding: .2em .6em .3em;
  font-size: 75%;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: baseline;
  border-radius: .25em;
}
a.label:hover,
a.label:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.label:empty {
  display: none;
}
.btn .label {
  position: relative;
  top: -1px;
}
.label-default {
  background-color: #777;
}
.label-default[href]:hover,
.label-default[href]:focus {
  background-color: #5e5e5e;
}
.label-primary {
  background-color: #337ab7;
}
.label-primary[href]:hover,
.label-primary[href]:focus {
  background-color: #286090;
}
.label-success {
  background-color: #5cb85c;
}
.label-success[href]:hover,
.label-success[href]:focus {
  background-color: #449d44;
}
.label-info {
  background-color: #5bc0de;
}
.label-info[href]:hover,
.label-info[href]:focus {
  background-color: #31b0d5;
}
.label-warning {
  background-color: #f0ad4e;
}
.label-warning[href]:hover,
.label-warning[href]:focus {
  background-color: #ec971f;
}
.label-danger {
  background-color: #d9534f;
}
.label-danger[href]:hover,
.label-danger[href]:focus {
  background-color: #c9302c;
}
.badge {
  display: inline-block;
  min-width: 10px;
  padding: 3px 7px;
  font-size: 12px;
  font-weight: bold;
  line-height: 1;
  color: #fff;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  background-color: #777;
  border-radius: 10px;
}
.badge:empty {
  display: none;
}
.btn .badge {
  position: relative;
  top: -1px;
}
.btn-xs .badge,
.btn-group-xs > .btn .badge {
  top: 0;
  padding: 1px 5px;
}
a.badge:hover,
a.badge:focus {
  color: #fff;
  text-decoration: none;
  cursor: pointer;
}
.list-group-item.active > .badge,
.nav-pills > .active > a > .badge {
  color: #337ab7;
  background-color: #fff;
}
.list-group-item > .badge {
  float: right;
}
.list-group-item > .badge + .badge {
  margin-right: 5px;
}
.nav-pills > li > a > .badge {
  margin-left: 3px;
}
.jumbotron {
  padding-top: 30px;
  padding-bottom: 30px;
  margin-bottom: 30px;
  color: inherit;
  background-color: #eee;
}
.jumbotron h1,
.jumbotron .h1 {
  color: inherit;
}
.jumbotron p {
  margin-bottom: 15px;
  font-size: 21px;
  font-weight: 200;
}
.jumbotron > hr {
  border-top-color: #d5d5d5;
}
.container .jumbotron,
.container-fluid .jumbotron {
  border-radius: 6px;
}
.jumbotron .container {
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .jumbotron {
    padding-top: 48px;
    padding-bottom: 48px;
  }
  .container .jumbotron,
  .container-fluid .jumbotron {
    padding-right: 60px;
    padding-left: 60px;
  }
  .jumbotron h1,
  .jumbotron .h1 {
    font-size: 63px;
  }
}
.thumbnail {
  display: block;
  padding: 4px;
  margin-bottom: 20px;
  line-height: 1.42857143;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 4px;
  -webkit-transition: border .2s ease-in-out;
       -o-transition: border .2s ease-in-out;
          transition: border .2s ease-in-out;
}
.thumbnail > img,
.thumbnail a > img {
  margin-right: auto;
  margin-left: auto;
}
a.thumbnail:hover,
a.thumbnail:focus,
a.thumbnail.active {
  border-color: #337ab7;
}
.thumbnail .caption {
  padding: 9px;
  color: #333;
}
.alert {
  padding: 15px;
  margin-bottom: 20px;
  border: 1px solid transparent;
  border-radius: 4px;
}
.alert h4 {
  margin-top: 0;
  color: inherit;
}
.alert .alert-link {
  font-weight: bold;
}
.alert > p,
.alert > ul {
  margin-bottom: 0;
}
.alert > p + p {
  margin-top: 5px;
}
.alert-dismissable,
.alert-dismissible {
  padding-right: 35px;
}
.alert-dismissable .close,
.alert-dismissible .close {
  position: relative;
  top: -2px;
  right: -21px;
  color: inherit;
}
.alert-success {
  color: #3c763d;
  background-color: #dff0d8;
  border-color: #d6e9c6;
}
.alert-success hr {
  border-top-color: #c9e2b3;
}
.alert-success .alert-link {
  color: #2b542c;
}
.alert-info {
  color: #31708f;
  background-color: #d9edf7;
  border-color: #bce8f1;
}
.alert-info hr {
  border-top-color: #a6e1ec;
}
.alert-info .alert-link {
  color: #245269;
}
.alert-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
  border-color: #faebcc;
}
.alert-warning hr {
  border-top-color: #f7e1b5;
}
.alert-warning .alert-link {
  color: #66512c;
}
.alert-danger {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}
.alert-danger hr {
  border-top-color: #e4b9c0;
}
.alert-danger .alert-link {
  color: #843534;
}
@-webkit-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@-o-keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
@keyframes progress-bar-stripes {
  from {
    background-position: 40px 0;
  }
  to {
    background-position: 0 0;
  }
}
.progress {
  height: 20px;
  margin-bottom: 20px;
  overflow: hidden;
  background-color: #f5f5f5;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, .1);
}
.progress-bar {
  float: left;
  width: 0;
  height: 100%;
  font-size: 12px;
  line-height: 20px;
  color: #fff;
  text-align: center;
  background-color: #337ab7;
  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, .15);
  -webkit-transition: width .6s ease;
       -o-transition: width .6s ease;
          transition: width .6s ease;
}
.progress-striped .progress-bar,
.progress-bar-striped {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  -webkit-background-size: 40px 40px;
          background-size: 40px 40px;
}
.progress.active .progress-bar,
.progress-bar.active {
  -webkit-animation: progress-bar-stripes 2s linear infinite;
       -o-animation: progress-bar-stripes 2s linear infinite;
          animation: progress-bar-stripes 2s linear infinite;
}
.progress-bar-success {
  background-color: #5cb85c;
}
.progress-striped .progress-bar-success {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-info {
  background-color: #5bc0de;
}
.progress-striped .progress-bar-info {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-warning {
  background-color: #f0ad4e;
}
.progress-striped .progress-bar-warning {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.progress-bar-danger {
  background-color: #d9534f;
}
.progress-striped .progress-bar-danger {
  background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:      -o-linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
  background-image:         linear-gradient(45deg, rgba(255, 255, 255, .15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%, transparent 75%, transparent);
}
.media {
  margin-top: 15px;
}
.media:first-child {
  margin-top: 0;
}
.media,
.media-body {
  overflow: hidden;
  zoom: 1;
}
.media-body {
  width: 10000px;
}
.media-object {
  display: block;
}
.media-object.img-thumbnail {
  max-width: none;
}
.media-right,
.media > .pull-right {
  padding-left: 10px;
}
.media-left,
.media > .pull-left {
  padding-right: 10px;
}
.media-left,
.media-right,
.media-body {
  display: table-cell;
  vertical-align: top;
}
.media-middle {
  vertical-align: middle;
}
.media-bottom {
  vertical-align: bottom;
}
.media-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.media-list {
  padding-left: 0;
  list-style: none;
}
.list-group {
  padding-left: 0;
  margin-bottom: 20px;
}
.list-group-item {
  position: relative;
  display: block;
  padding: 10px 15px;
  margin-bottom: -1px;
  background-color: #fff;
  border: 1px solid #ddd;
}
.list-group-item:first-child {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.list-group-item:last-child {
  margin-bottom: 0;
  border-bottom-right-radius: 4px;
  border-bottom-left-radius: 4px;
}
a.list-group-item,
button.list-group-item {
  color: #555;
}
a.list-group-item .list-group-item-heading,
button.list-group-item .list-group-item-heading {
  color: #333;
}
a.list-group-item:hover,
button.list-group-item:hover,
a.list-group-item:focus,
button.list-group-item:focus {
  color: #555;
  text-decoration: none;
  background-color: #f5f5f5;
}
button.list-group-item {
  width: 100%;
  text-align: left;
}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
  color: #777;
  cursor: not-allowed;
  background-color: #eee;
}
.list-group-item.disabled .list-group-item-heading,
.list-group-item.disabled:hover .list-group-item-heading,
.list-group-item.disabled:focus .list-group-item-heading {
  color: inherit;
}
.list-group-item.disabled .list-group-item-text,
.list-group-item.disabled:hover .list-group-item-text,
.list-group-item.disabled:focus .list-group-item-text {
  color: #777;
}
.list-group-item.active,
.list-group-item.active:hover,
.list-group-item.active:focus {
  z-index: 2;
  color: #fff;
  background-color: #337ab7;
  border-color: #337ab7;
}
.list-group-item.active .list-group-item-heading,
.list-group-item.active:hover .list-group-item-heading,
.list-group-item.active:focus .list-group-item-heading,
.list-group-item.active .list-group-item-heading > small,
.list-group-item.active:hover .list-group-item-heading > small,
.list-group-item.active:focus .list-group-item-heading > small,
.list-group-item.active .list-group-item-heading > .small,
.list-group-item.active:hover .list-group-item-heading > .small,
.list-group-item.active:focus .list-group-item-heading > .small {
  color: inherit;
}
.list-group-item.active .list-group-item-text,
.list-group-item.active:hover .list-group-item-text,
.list-group-item.active:focus .list-group-item-text {
  color: #c7ddef;
}
.list-group-item-success {
  color: #3c763d;
  background-color: #dff0d8;
}
a.list-group-item-success,
button.list-group-item-success {
  color: #3c763d;
}
a.list-group-item-success .list-group-item-heading,
button.list-group-item-success .list-group-item-heading {
  color: inherit;
}
a.list-group-item-success:hover,
button.list-group-item-success:hover,
a.list-group-item-success:focus,
button.list-group-item-success:focus {
  color: #3c763d;
  background-color: #d0e9c6;
}
a.list-group-item-success.active,
button.list-group-item-success.active,
a.list-group-item-success.active:hover,
button.list-group-item-success.active:hover,
a.list-group-item-success.active:focus,
button.list-group-item-success.active:focus {
  color: #fff;
  background-color: #3c763d;
  border-color: #3c763d;
}
.list-group-item-info {
  color: #31708f;
  background-color: #d9edf7;
}
a.list-group-item-info,
button.list-group-item-info {
  color: #31708f;
}
a.list-group-item-info .list-group-item-heading,
button.list-group-item-info .list-group-item-heading {
  color: inherit;
}
a.list-group-item-info:hover,
button.list-group-item-info:hover,
a.list-group-item-info:focus,
button.list-group-item-info:focus {
  color: #31708f;
  background-color: #c4e3f3;
}
a.list-group-item-info.active,
button.list-group-item-info.active,
a.list-group-item-info.active:hover,
button.list-group-item-info.active:hover,
a.list-group-item-info.active:focus,
button.list-group-item-info.active:focus {
  color: #fff;
  background-color: #31708f;
  border-color: #31708f;
}
.list-group-item-warning {
  color: #8a6d3b;
  background-color: #fcf8e3;
}
a.list-group-item-warning,
button.list-group-item-warning {
  color: #8a6d3b;
}
a.list-group-item-warning .list-group-item-heading,
button.list-group-item-warning .list-group-item-heading {
  color: inherit;
}
a.list-group-item-warning:hover,
button.list-group-item-warning:hover,
a.list-group-item-warning:focus,
button.list-group-item-warning:focus {
  color: #8a6d3b;
  background-color: #faf2cc;
}
a.list-group-item-warning.active,
button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
button.list-group-item-warning.active:hover,
a.list-group-item-warning.active:focus,
button.list-group-item-warning.active:focus {
  color: #fff;
  background-color: #8a6d3b;
  border-color: #8a6d3b;
}
.list-group-item-danger {
  color: #a94442;
  background-color: #f2dede;
}
a.list-group-item-danger,
button.list-group-item-danger {
  color: #a94442;
}
a.list-group-item-danger .list-group-item-heading,
button.list-group-item-danger .list-group-item-heading {
  color: inherit;
}
a.list-group-item-danger:hover,
button.list-group-item-danger:hover,
a.list-group-item-danger:focus,
button.list-group-item-danger:focus {
  color: #a94442;
  background-color: #ebcccc;
}
a.list-group-item-danger.active,
button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
button.list-group-item-danger.active:hover,
a.list-group-item-danger.active:focus,
button.list-group-item-danger.active:focus {
  color: #fff;
  background-color: #a94442;
  border-color: #a94442;
}
.list-group-item-heading {
  margin-top: 0;
  margin-bottom: 5px;
}
.list-group-item-text {
  margin-bottom: 0;
  line-height: 1.3;
}
.panel {
  margin-bottom: 20px;
  background-color: #fff;
  border: 1px solid transparent;
  border-radius: 4px;
  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
          box-shadow: 0 1px 1px rgba(0, 0, 0, .05);
}
.panel-body {
  padding: 15px;
}
.panel-heading {
  padding: 10px 15px;
  border-bottom: 1px solid transparent;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.panel-heading > .dropdown .dropdown-toggle {
  color: inherit;
}
.panel-title {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 16px;
  color: inherit;
}
.panel-title > a,
.panel-title > small,
.panel-title > .small,
.panel-title > small > a,
.panel-title > .small > a {
  color: inherit;
}
.panel-footer {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-top: 1px solid #ddd;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
.panel > .list-group,
.panel > .panel-collapse > .list-group {
  margin-bottom: 0;
}
.panel > .list-group .list-group-item,
.panel > .panel-collapse > .list-group .list-group-item {
  border-width: 1px 0;
  border-radius: 0;
}
.panel > .list-group:first-child .list-group-item:first-child,
.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
  border-top: 0;
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.panel > .list-group:last-child .list-group-item:last-child,
.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
  border-bottom: 0;
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}
.panel-heading + .list-group .list-group-item:first-child {
  border-top-width: 0;
}
.list-group + .panel-footer {
  border-top-width: 0;
}
.panel > .table,
.panel > .table-responsive > .table,
.panel > .panel-collapse > .table {
  margin-bottom: 0;
}
.panel > .table caption,
.panel > .table-responsive > .table caption,
.panel > .panel-collapse > .table caption {
  padding-right: 15px;
  padding-left: 15px;
}
.panel > .table:first-child,
.panel > .table-responsive:first-child > .table:first-child {
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
  border-top-left-radius: 3px;
  border-top-right-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
  border-top-left-radius: 3px;
}
.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
  border-top-right-radius: 3px;
}
.panel > .table:last-child,
.panel > .table-responsive:last-child > .table:last-child {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
  border-bottom-right-radius: 3px;
  border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
  border-bottom-left-radius: 3px;
}
.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
  border-bottom-right-radius: 3px;
}
.panel > .panel-body + .table,
.panel > .panel-body + .table-responsive,
.panel > .table + .panel-body,
.panel > .table-responsive + .panel-body {
  border-top: 1px solid #ddd;
}
.panel > .table > tbody:first-child > tr:first-child th,
.panel > .table > tbody:first-child > tr:first-child td {
  border-top: 0;
}
.panel > .table-bordered,
.panel > .table-responsive > .table-bordered {
  border: 0;
}
.panel > .table-bordered > thead > tr
Download .txt
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
Download .txt
SYMBOL INDEX (1551 symbols across 185 files)

FILE: gmall-api/src/main/java/com/lee/gmall/bean/AdBanner.java
  class AdBanner (line 4) | public class AdBanner {
    method getId (line 11) | public long getId() {
    method setId (line 15) | public void setId(long id) {
    method getAdDesc (line 20) | public String getAdDesc() {
    method setAdDesc (line 24) | public void setAdDesc(String adDesc) {
    method getFileName (line 29) | public String getFileName() {
    method setFileName (line 33) | public void setFileName(String fileName) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrInfo.java
  class BaseAttrInfo (line 9) | public class BaseAttrInfo implements Serializable {
    method getId (line 20) | public String getId() {
    method setId (line 24) | public void setId(String id) {
    method getAttrName (line 28) | public String getAttrName() {
    method setAttrName (line 32) | public void setAttrName(String attrName) {
    method getCatalog3Id (line 36) | public String getCatalog3Id() {
    method setCatalog3Id (line 40) | public void setCatalog3Id(String catalog3Id) {
    method getIsEnabled (line 44) | public String getIsEnabled() {
    method setIsEnabled (line 48) | public void setIsEnabled(String isEnabled) {
    method getAttrValueList (line 52) | public List<BaseAttrValue> getAttrValueList() {
    method setAttrValueList (line 56) | public void setAttrValueList(List<BaseAttrValue> attrValueList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrValue.java
  class BaseAttrValue (line 5) | public class BaseAttrValue implements Serializable {
    method getId (line 13) | public String getId() {
    method setId (line 17) | public void setId(String id) {
    method getValueName (line 22) | public String getValueName() {
    method setValueName (line 26) | public void setValueName(String valueName) {
    method getAttrId (line 31) | public String getAttrId() {
    method setAttrId (line 35) | public void setAttrId(String attrId) {
    method getIsEnabled (line 40) | public String getIsEnabled() {
    method setIsEnabled (line 44) | public void setIsEnabled(String isEnabled) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1.java
  class BaseCatalog1 (line 5) | public class BaseCatalog1 implements Serializable {
    method getId (line 11) | public String getId() {
    method setId (line 15) | public void setId(String id) {
    method getName (line 20) | public String getName() {
    method setName (line 24) | public void setName(String name) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1Tm.java
  class BaseCatalog1Tm (line 4) | public class BaseCatalog1Tm {
    method getId (line 11) | public long getId() {
    method setId (line 15) | public void setId(long id) {
    method getTmId (line 20) | public long getTmId() {
    method setTmId (line 24) | public void setTmId(long tmId) {
    method getCatalog1Id (line 29) | public String getCatalog1Id() {
    method setCatalog1Id (line 33) | public void setCatalog1Id(String catalog1Id) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog2.java
  class BaseCatalog2 (line 5) | public class BaseCatalog2 implements Serializable {
    method getId (line 12) | public String getId() {
    method setId (line 16) | public void setId(String id) {
    method getName (line 21) | public String getName() {
    method setName (line 25) | public void setName(String name) {
    method getCatalog1Id (line 30) | public String getCatalog1Id() {
    method setCatalog1Id (line 34) | public void setCatalog1Id(String catalog1Id) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog3.java
  class BaseCatalog3 (line 5) | public class BaseCatalog3 implements Serializable {
    method getId (line 12) | public String getId() {
    method setId (line 16) | public void setId(String id) {
    method getName (line 21) | public String getName() {
    method setName (line 25) | public void setName(String name) {
    method getCatalog2Id (line 30) | public String getCatalog2Id() {
    method setCatalog2Id (line 34) | public void setCatalog2Id(String catalog2Id) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseDict.java
  class BaseDict (line 3) | public class BaseDict {
    method getId (line 10) | public String getId() {
    method setId (line 14) | public void setId(String id) {
    method getParentId (line 19) | public String getParentId() {
    method setParentId (line 23) | public void setParentId(String parentId) {
    method getName (line 28) | public String getName() {
    method setName (line 32) | public void setName(String name) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseSaleAttr.java
  class BaseSaleAttr (line 5) | public class BaseSaleAttr implements Serializable {
    method getId (line 11) | public String getId() {
    method setId (line 15) | public void setId(String id) {
    method getName (line 20) | public String getName() {
    method setName (line 24) | public void setName(String name) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/BaseTrademark.java
  class BaseTrademark (line 4) | public class BaseTrademark {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getTmName (line 21) | public String getTmName() {
    method setTmName (line 25) | public void setTmName(String tmName) {
    method getLogoUrl (line 30) | public String getLogoUrl() {
    method setLogoUrl (line 34) | public void setLogoUrl(String logoUrl) {
    method getIsEnable (line 39) | public String getIsEnable() {
    method setIsEnable (line 43) | public void setIsEnable(String isEnable) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/CartInfo.java
  class CartInfo (line 6) | public class CartInfo implements Serializable {
    method getId (line 20) | public String getId() {
    method setId (line 24) | public void setId(String id) {
    method getUserId (line 29) | public String getUserId() {
    method setUserId (line 33) | public void setUserId(String userId) {
    method getSkuId (line 38) | public String getSkuId() {
    method setSkuId (line 42) | public void setSkuId(String skuId) {
    method getCartPrice (line 47) | public BigDecimal getCartPrice() {
    method setCartPrice (line 51) | public void setCartPrice(BigDecimal cartPrice) {
    method getQuantity (line 56) | public long getQuantity() {
    method setQuantity (line 60) | public void setQuantity(long quantity) {
    method getImgUrl (line 65) | public String getImgUrl() {
    method setImgUrl (line 69) | public void setImgUrl(String imgUrl) {
    method getIsChecked (line 74) | public String getIsChecked() {
    method setIsChecked (line 78) | public void setIsChecked(String isChecked) {
    method getSkuPrice (line 83) | public BigDecimal getSkuPrice() {
    method setSkuPrice (line 87) | public void setSkuPrice(BigDecimal skuPrice) {
    method getSkuNum (line 92) | public Integer getSkuNum() {
    method setSkuNum (line 96) | public void setSkuNum(Integer skuNum) {
    method getSkuName (line 101) | public String getSkuName() {
    method setSkuName (line 105) | public void setSkuName(String skuName) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/Crumb.java
  class Crumb (line 3) | public class Crumb {
    method getValueName (line 9) | public String getValueName() {
    method setValueName (line 13) | public void setValueName(String valueName) {
    method getUrlParam (line 17) | public String getUrlParam() {
    method setUrlParam (line 21) | public void setUrlParam(String urlParam) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderDetail.java
  class OrderDetail (line 7) | public class OrderDetail implements Serializable {
    method getId (line 24) | public String getId() {
    method setId (line 28) | public void setId(String id) {
    method getOrderId (line 33) | public String getOrderId() {
    method setOrderId (line 37) | public void setOrderId(String orderId) {
    method getSkuId (line 42) | public String getSkuId() {
    method setSkuId (line 46) | public void setSkuId(String skuId) {
    method getSkuName (line 51) | public String getSkuName() {
    method setSkuName (line 55) | public void setSkuName(String skuName) {
    method getImgFileName (line 60) | public String getImgFileName() {
    method setImgFileName (line 64) | public void setImgFileName(String imgFileName) {
    method getOrderPrice (line 69) | public BigDecimal getOrderPrice() {
    method setOrderPrice (line 73) | public void setOrderPrice(BigDecimal orderPrice) {
    method getSkuNums (line 78) | public Integer getSkuNums() {
    method setSkuNums (line 82) | public void setSkuNums(Integer skuNums) {
    method getLogisticsId (line 87) | public String getLogisticsId() {
    method setLogisticsId (line 91) | public void setLogisticsId(String logisticsId) {
    method getImgUrl (line 96) | public String getImgUrl() {
    method setImgUrl (line 100) | public void setImgUrl(String imgUrl) {
    method getSkuNum (line 105) | public Integer getSkuNum() {
    method setSkuNum (line 109) | public void setSkuNum(Integer skuNum) {
    method getHasStock (line 113) | public String getHasStock() {
    method setHasStock (line 117) | public void setHasStock(String hasStock) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderInfo.java
  class OrderInfo (line 13) | public class OrderInfo implements Serializable {
    method getId (line 39) | public String getId() {
    method setId (line 43) | public void setId(String id) {
    method getConsignee (line 48) | public String getConsignee() {
    method setConsignee (line 52) | public void setConsignee(String consignee) {
    method getTotalAmount (line 57) | public BigDecimal getTotalAmount() {
    method setTotalAmount (line 61) | public void setTotalAmount(BigDecimal totalAmount) {
    method getOrderStatus (line 66) | public String getOrderStatus() {
    method setOrderStatus (line 70) | public void setOrderStatus(String orderStatus) {
    method getUserId (line 75) | public String getUserId() {
    method setUserId (line 79) | public void setUserId(String userId) {
    method getPaymentWay (line 84) | public PaymentWay getPaymentWay() {
    method setPaymentWay (line 88) | public void setPaymentWay(PaymentWay paymentWay) {
    method getDeliveryAddress (line 94) | public String getDeliveryAddress() {
    method setDeliveryAddress (line 98) | public void setDeliveryAddress(String deliveryAddress) {
    method getOrderComment (line 103) | public String getOrderComment() {
    method setOrderComment (line 107) | public void setOrderComment(String orderComment) {
    method getOutTradeNo (line 112) | public String getOutTradeNo() {
    method setOutTradeNo (line 116) | public void setOutTradeNo(String outTradeNo) {
    method getTradeBody (line 121) | public String getTradeBody() {
    method setTradeBody (line 125) | public void setTradeBody(String tradeBody) {
    method getWareStatus (line 130) | public String getWareStatus() {
    method setWareStatus (line 134) | public void setWareStatus(String wareStatus) {
    method getParentOrderId (line 139) | public String getParentOrderId() {
    method setParentOrderId (line 143) | public void setParentOrderId(String parentOrderId) {
    method getProcessStatus (line 148) | public String getProcessStatus() {
    method setProcessStatus (line 152) | public void setProcessStatus(String processStatus) {
    method getTrackingNo (line 157) | public String getTrackingNo() {
    method setTrackingNo (line 161) | public void setTrackingNo(String trackingNo) {
    method getConsigneeTel (line 166) | public String getConsigneeTel() {
    method setConsigneeTel (line 170) | public void setConsigneeTel(String consigneeTel) {
    method getExpectDeliveryTime (line 175) | public Date getExpectDeliveryTime() {
    method setExpectDeliveryTime (line 179) | public void setExpectDeliveryTime(Date expectDeliveryTime) {
    method getCreateTime (line 183) | public Date getCreateTime() {
    method setCreateTime (line 187) | public void setCreateTime(Date createTime) {
    method getExpireTime (line 191) | public Date getExpireTime() {
    method setExpireTime (line 195) | public void setExpireTime(Date expireTime) {
    method getOrderDetailList (line 199) | public List<OrderDetail> getOrderDetailList() {
    method setOrderDetailList (line 203) | public void setOrderDetailList(List<OrderDetail> orderDetailList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderLog.java
  class OrderLog (line 4) | public class OrderLog {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getOrderId (line 21) | public long getOrderId() {
    method setOrderId (line 25) | public void setOrderId(long orderId) {
    method getOperateDate (line 30) | public java.sql.Timestamp getOperateDate() {
    method setOperateDate (line 34) | public void setOperateDate(java.sql.Timestamp operateDate) {
    method getLogComment (line 39) | public String getLogComment() {
    method setLogComment (line 43) | public void setLogComment(String logComment) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/OrderLogistics.java
  class OrderLogistics (line 4) | public class OrderLogistics {
    method getId (line 13) | public long getId() {
    method setId (line 17) | public void setId(long id) {
    method getOrderId (line 22) | public long getOrderId() {
    method setOrderId (line 26) | public void setOrderId(long orderId) {
    method getLogisticsStatus (line 31) | public String getLogisticsStatus() {
    method setLogisticsStatus (line 35) | public void setLogisticsStatus(String logisticsStatus) {
    method getLogisticsNo (line 40) | public String getLogisticsNo() {
    method setLogisticsNo (line 44) | public void setLogisticsNo(String logisticsNo) {
    method getCreateTime (line 49) | public java.sql.Timestamp getCreateTime() {
    method setCreateTime (line 53) | public void setCreateTime(java.sql.Timestamp createTime) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/PaymentInfo.java
  class PaymentInfo (line 4) | public class PaymentInfo {
    method getId (line 19) | public long getId() {
    method setId (line 23) | public void setId(long id) {
    method getOutTradeNo (line 28) | public String getOutTradeNo() {
    method setOutTradeNo (line 32) | public void setOutTradeNo(String outTradeNo) {
    method getOrderId (line 37) | public String getOrderId() {
    method setOrderId (line 41) | public void setOrderId(String orderId) {
    method getAlipayTradeNo (line 46) | public String getAlipayTradeNo() {
    method setAlipayTradeNo (line 50) | public void setAlipayTradeNo(String alipayTradeNo) {
    method getTotalAmount (line 55) | public double getTotalAmount() {
    method setTotalAmount (line 59) | public void setTotalAmount(double totalAmount) {
    method getSubject (line 64) | public String getSubject() {
    method setSubject (line 68) | public void setSubject(String subject) {
    method getPaymentStatus (line 73) | public String getPaymentStatus() {
    method setPaymentStatus (line 77) | public void setPaymentStatus(String paymentStatus) {
    method getCreateTime (line 82) | public java.sql.Timestamp getCreateTime() {
    method setCreateTime (line 86) | public void setCreateTime(java.sql.Timestamp createTime) {
    method getConfirmTime (line 91) | public java.sql.Timestamp getConfirmTime() {
    method setConfirmTime (line 95) | public void setConfirmTime(java.sql.Timestamp confirmTime) {
    method getCallbackContent (line 100) | public String getCallbackContent() {
    method setCallbackContent (line 104) | public void setCallbackContent(String callbackContent) {
    method getCallbackTime (line 109) | public java.sql.Timestamp getCallbackTime() {
    method setCallbackTime (line 113) | public void setCallbackTime(java.sql.Timestamp callbackTime) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuAttrValue.java
  class SkuAttrValue (line 5) | public class SkuAttrValue implements Serializable {
    method getId (line 13) | public String getId() {
    method setId (line 17) | public void setId(String id) {
    method getAttrId (line 22) | public String getAttrId() {
    method setAttrId (line 26) | public void setAttrId(String attrId) {
    method getValueId (line 31) | public String getValueId() {
    method setValueId (line 35) | public void setValueId(String valueId) {
    method getSkuId (line 40) | public String getSkuId() {
    method setSkuId (line 44) | public void setSkuId(String skuId) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuImage.java
  class SkuImage (line 5) | public class SkuImage implements Serializable {
    method getId (line 15) | public String getId() {
    method setId (line 19) | public void setId(String id) {
    method getSkuId (line 24) | public String getSkuId() {
    method setSkuId (line 28) | public void setSkuId(String skuId) {
    method getImgName (line 33) | public String getImgName() {
    method setImgName (line 37) | public void setImgName(String imgName) {
    method getImgUrl (line 42) | public String getImgUrl() {
    method setImgUrl (line 46) | public void setImgUrl(String imgUrl) {
    method getSpuImgId (line 51) | public String getSpuImgId() {
    method setSpuImgId (line 55) | public void setSpuImgId(String spuImgId) {
    method getIsDefault (line 60) | public String getIsDefault() {
    method setIsDefault (line 64) | public void setIsDefault(String isDefault) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuInfo.java
  class SkuInfo (line 10) | public class SkuInfo implements Serializable {
    method getId (line 32) | public String getId() {
    method setId (line 36) | public void setId(String id) {
    method getSpuId (line 41) | public String getSpuId() {
    method setSpuId (line 45) | public void setSpuId(String spuId) {
    method getPrice (line 50) | public BigDecimal getPrice() {
    method setPrice (line 54) | public void setPrice(BigDecimal price) {
    method getSkuName (line 59) | public String getSkuName() {
    method setSkuName (line 63) | public void setSkuName(String skuName) {
    method getSkuDesc (line 68) | public String getSkuDesc() {
    method setSkuDesc (line 72) | public void setSkuDesc(String skuDesc) {
    method getWeight (line 77) | public String getWeight() {
    method setWeight (line 81) | public void setWeight(String weight) {
    method getTmId (line 86) | public String getTmId() {
    method setTmId (line 90) | public void setTmId(String tmId) {
    method getCatalog3Id (line 95) | public String getCatalog3Id() {
    method setCatalog3Id (line 99) | public void setCatalog3Id(String catalog3Id) {
    method getSkuDefaultImg (line 104) | public String getSkuDefaultImg() {
    method setSkuDefaultImg (line 108) | public void setSkuDefaultImg(String skuDefaultImg) {
    method getSkuImageList (line 113) | public List<SkuImage> getSkuImageList() {
    method setSkuImageList (line 117) | public void setSkuImageList(List<SkuImage> skuImageList) {
    method getSkuAttrValueList (line 121) | public List<SkuAttrValue> getSkuAttrValueList() {
    method setSkuAttrValueList (line 125) | public void setSkuAttrValueList(List<SkuAttrValue> skuAttrValueList) {
    method getSkuSaleAttrValueList (line 129) | public List<SkuSaleAttrValue> getSkuSaleAttrValueList() {
    method setSkuSaleAttrValueList (line 133) | public void setSkuSaleAttrValueList(List<SkuSaleAttrValue> skuSaleAttr...

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsAttrValue.java
  class SkuLsAttrValue (line 7) | public class SkuLsAttrValue implements Serializable {
    method getValueId (line 12) | public String getValueId() {
    method setValueId (line 16) | public void setValueId(String valueId) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsInfo.java
  class SkuLsInfo (line 7) | public class SkuLsInfo implements Serializable {
    method getId (line 26) | public String getId() {
    method setId (line 30) | public void setId(String id) {
    method getPrice (line 34) | public BigDecimal getPrice() {
    method setPrice (line 38) | public void setPrice(BigDecimal price) {
    method getSkuName (line 42) | public String getSkuName() {
    method setSkuName (line 46) | public void setSkuName(String skuName) {
    method getSkuDesc (line 50) | public String getSkuDesc() {
    method setSkuDesc (line 54) | public void setSkuDesc(String skuDesc) {
    method getCatalog3Id (line 58) | public String getCatalog3Id() {
    method setCatalog3Id (line 62) | public void setCatalog3Id(String catalog3Id) {
    method getSkuDefaultImg (line 66) | public String getSkuDefaultImg() {
    method setSkuDefaultImg (line 70) | public void setSkuDefaultImg(String skuDefaultImg) {
    method getHotScore (line 74) | public Long getHotScore() {
    method setHotScore (line 78) | public void setHotScore(Long hotScore) {
    method getSkuAttrValueList (line 82) | public List<SkuLsAttrValue> getSkuAttrValueList() {
    method setSkuAttrValueList (line 86) | public void setSkuAttrValueList(List<SkuLsAttrValue> skuAttrValueList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsParam.java
  class SkuLsParam (line 5) | public class SkuLsParam implements Serializable{
    method getCatalog3Id (line 17) | public String getCatalog3Id() {
    method setCatalog3Id (line 21) | public void setCatalog3Id(String catalog3Id) {
    method getValueId (line 25) | public String[] getValueId() {
    method setValueId (line 29) | public void setValueId(String[] valueId) {
    method getKeyword (line 33) | public String getKeyword() {
    method setKeyword (line 37) | public void setKeyword(String keyword) {
    method getPageNo (line 41) | public int getPageNo() {
    method setPageNo (line 45) | public void setPageNo(int pageNo) {
    method getPageSize (line 49) | public int getPageSize() {
    method setPageSize (line 53) | public void setPageSize(int pageSize) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuLsResult.java
  class SkuLsResult (line 6) | public class SkuLsResult implements Serializable{
    method getSkuLsInfoList (line 14) | public List<SkuLsInfo> getSkuLsInfoList() {
    method setSkuLsInfoList (line 18) | public void setSkuLsInfoList(List<SkuLsInfo> skuLsInfoList) {
    method getTotal (line 22) | public int getTotal() {
    method setTotal (line 26) | public void setTotal(int total) {
    method getValueIdList (line 30) | public List<String> getValueIdList() {
    method setValueIdList (line 34) | public void setValueIdList(List<String> valueIdList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SkuSaleAttrValue.java
  class SkuSaleAttrValue (line 5) | public class SkuSaleAttrValue implements Serializable {
    method getId (line 15) | public String getId() {
    method setId (line 19) | public void setId(String id) {
    method getSkuId (line 24) | public String getSkuId() {
    method setSkuId (line 28) | public void setSkuId(String skuId) {
    method getSaleAttrId (line 33) | public String getSaleAttrId() {
    method setSaleAttrId (line 37) | public void setSaleAttrId(String saleAttrId) {
    method getSaleAttrValueId (line 42) | public String getSaleAttrValueId() {
    method setSaleAttrValueId (line 46) | public void setSaleAttrValueId(String saleAttrValueId) {
    method getSaleAttrName (line 51) | public String getSaleAttrName() {
    method setSaleAttrName (line 55) | public void setSaleAttrName(String saleAttrName) {
    method getSaleAttrValueName (line 60) | public String getSaleAttrValueName() {
    method setSaleAttrValueName (line 64) | public void setSaleAttrValueName(String saleAttrValueName) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuColor.java
  class SpuColor (line 4) | public class SpuColor {
    method getId (line 13) | public long getId() {
    method setId (line 17) | public void setId(long id) {
    method getSpuId (line 22) | public long getSpuId() {
    method setSpuId (line 26) | public void setSpuId(long spuId) {
    method getColor (line 31) | public String getColor() {
    method setColor (line 35) | public void setColor(String color) {
    method getFileName (line 40) | public String getFileName() {
    method setFileName (line 44) | public void setFileName(String fileName) {
    method getIsEnabled (line 49) | public String getIsEnabled() {
    method setIsEnabled (line 53) | public void setIsEnabled(String isEnabled) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuImage.java
  class SpuImage (line 5) | public class SpuImage implements Serializable {
    method getId (line 13) | public String getId() {
    method setId (line 17) | public void setId(String id) {
    method getSpuId (line 22) | public String getSpuId() {
    method setSpuId (line 26) | public void setSpuId(String spuId) {
    method getImgName (line 31) | public String getImgName() {
    method setImgName (line 35) | public void setImgName(String imgName) {
    method getImgUrl (line 40) | public String getImgUrl() {
    method setImgUrl (line 44) | public void setImgUrl(String imgUrl) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuInfo.java
  class SpuInfo (line 9) | public class SpuInfo implements Serializable {
    method getId (line 25) | public String getId() {
    method setId (line 29) | public void setId(String id) {
    method getSpuName (line 34) | public String getSpuName() {
    method setSpuName (line 38) | public void setSpuName(String spuName) {
    method getDescription (line 43) | public String getDescription() {
    method setDescription (line 47) | public void setDescription(String description) {
    method getCatalog3Id (line 52) | public String getCatalog3Id() {
    method setCatalog3Id (line 56) | public void setCatalog3Id(String catalog3Id) {
    method getTmId (line 61) | public String getTmId() {
    method setTmId (line 65) | public void setTmId(String tmId) {
    method getSpuSaleAttrList (line 69) | public List<SpuSaleAttr> getSpuSaleAttrList() {
    method setSpuSaleAttrList (line 73) | public void setSpuSaleAttrList(List<SpuSaleAttr> spuSaleAttrList) {
    method getSpuImageList (line 77) | public List<SpuImage> getSpuImageList() {
    method setSpuImageList (line 82) | public void setSpuImageList(List<SpuImage> spuImageList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuPoster.java
  class SpuPoster (line 4) | public class SpuPoster {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getSpuId (line 21) | public long getSpuId() {
    method setSpuId (line 25) | public void setSpuId(long spuId) {
    method getFileName (line 30) | public String getFileName() {
    method setFileName (line 34) | public void setFileName(String fileName) {
    method getFileType (line 39) | public String getFileType() {
    method setFileType (line 43) | public void setFileType(String fileType) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttr.java
  class SpuSaleAttr (line 8) | public class SpuSaleAttr implements Serializable {
    method getId (line 21) | public String getId() {
    method setId (line 25) | public void setId(String id) {
    method getSpuId (line 30) | public String getSpuId() {
    method setSpuId (line 34) | public void setSpuId(String spuId) {
    method getSaleAttrId (line 39) | public String getSaleAttrId() {
    method setSaleAttrId (line 43) | public void setSaleAttrId(String saleAttrId) {
    method getSaleAttrName (line 48) | public String getSaleAttrName() {
    method getSpuSaleAttrValueList (line 52) | public List<SpuSaleAttrValue> getSpuSaleAttrValueList() {
    method setSpuSaleAttrValueList (line 56) | public void setSpuSaleAttrValueList(List<SpuSaleAttrValue> spuSaleAttr...
    method getSpuSaleAttrValueJson (line 60) | public Map<String, String> getSpuSaleAttrValueJson() {
    method setSpuSaleAttrValueJson (line 64) | public void setSpuSaleAttrValueJson(Map<String, String> spuSaleAttrVal...
    method setSaleAttrName (line 68) | public void setSaleAttrName(String saleAttrName) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttrValue.java
  class SpuSaleAttrValue (line 6) | public class SpuSaleAttrValue implements Serializable {
    method getId (line 18) | public String getId() {
    method setId (line 22) | public void setId(String id) {
    method getSpuId (line 27) | public String getSpuId() {
    method setSpuId (line 31) | public void setSpuId(String spuId) {
    method getSaleAttrId (line 36) | public String getSaleAttrId() {
    method setSaleAttrId (line 40) | public void setSaleAttrId(String saleAttrId) {
    method getSaleAttrValueName (line 45) | public String getSaleAttrValueName() {
    method setSaleAttrValueName (line 49) | public void setSaleAttrValueName(String saleAttrValueName) {
    method getIsChecked (line 53) | public String getIsChecked() {
    method setIsChecked (line 57) | public void setIsChecked(String isChecked) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuSize.java
  class SpuSize (line 4) | public class SpuSize {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getSpuId (line 21) | public long getSpuId() {
    method setSpuId (line 25) | public void setSpuId(long spuId) {
    method getSpuSize (line 30) | public String getSpuSize() {
    method setSpuSize (line 34) | public void setSpuSize(String spuSize) {
    method getIsEnabled (line 39) | public String getIsEnabled() {
    method setIsEnabled (line 43) | public void setIsEnabled(String isEnabled) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/SpuVersion.java
  class SpuVersion (line 4) | public class SpuVersion {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getSpuId (line 21) | public long getSpuId() {
    method setSpuId (line 25) | public void setSpuId(long spuId) {
    method getSpuVersion (line 30) | public String getSpuVersion() {
    method setSpuVersion (line 34) | public void setSpuVersion(String spuVersion) {
    method getIsEnabled (line 39) | public String getIsEnabled() {
    method setIsEnabled (line 43) | public void setIsEnabled(String isEnabled) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserAddress.java
  class UserAddress (line 5) | public class UserAddress implements Serializable {
    method getId (line 15) | public String getId() {
    method setId (line 19) | public void setId(String id) {
    method getUserAddress (line 24) | public String getUserAddress() {
    method setUserAddress (line 28) | public void setUserAddress(String userAddress) {
    method getUserId (line 33) | public String getUserId() {
    method setUserId (line 37) | public void setUserId(String userId) {
    method getConsignee (line 42) | public String getConsignee() {
    method setConsignee (line 46) | public void setConsignee(String consignee) {
    method getPhoneNum (line 51) | public String getPhoneNum() {
    method setPhoneNum (line 55) | public void setPhoneNum(String phoneNum) {
    method getIsDefault (line 60) | public String getIsDefault() {
    method setIsDefault (line 64) | public void setIsDefault(String isDefault) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserDetails.java
  class UserDetails (line 4) | public class UserDetails {
    method getId (line 16) | public long getId() {
    method setId (line 20) | public void setId(long id) {
    method getIdCard (line 25) | public long getIdCard() {
    method setIdCard (line 29) | public void setIdCard(long idCard) {
    method getUserId (line 34) | public long getUserId() {
    method setUserId (line 38) | public void setUserId(long userId) {
    method getUserPhone (line 43) | public String getUserPhone() {
    method setUserPhone (line 47) | public void setUserPhone(String userPhone) {
    method getHometown (line 52) | public String getHometown() {
    method setHometown (line 56) | public void setHometown(String hometown) {
    method getAddressId (line 61) | public long getAddressId() {
    method setAddressId (line 65) | public void setAddressId(long addressId) {
    method getSex (line 70) | public String getSex() {
    method setSex (line 74) | public void setSex(String sex) {
    method getCreateTime (line 79) | public java.sql.Timestamp getCreateTime() {
    method setCreateTime (line 83) | public void setCreateTime(java.sql.Timestamp createTime) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/UserInfo.java
  class UserInfo (line 7) | public class UserInfo implements Serializable {
    method getId (line 23) | public String getId() {
    method setId (line 27) | public void setId(String id) {
    method getLoginName (line 32) | public String getLoginName() {
    method setLoginName (line 36) | public void setLoginName(String loginName) {
    method getNickName (line 41) | public String getNickName() {
    method setNickName (line 45) | public void setNickName(String nickName) {
    method getPasswd (line 50) | public String getPasswd() {
    method setPasswd (line 54) | public void setPasswd(String passwd) {
    method getName (line 59) | public String getName() {
    method setName (line 63) | public void setName(String name) {
    method getPhoneNum (line 68) | public String getPhoneNum() {
    method setPhoneNum (line 72) | public void setPhoneNum(String phoneNum) {
    method getEmail (line 77) | public String getEmail() {
    method setEmail (line 81) | public void setEmail(String email) {
    method getHeadImg (line 86) | public String getHeadImg() {
    method setHeadImg (line 90) | public void setHeadImg(String headImg) {
    method getUserLevel (line 95) | public String getUserLevel() {
    method setUserLevel (line 99) | public void setUserLevel(String userLevel) {
    method getUserAddressList (line 104) | public List<UserAddress> getUserAddressList() {
    method setUserAddressList (line 108) | public void setUserAddressList(List<UserAddress> userAddressList) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareInfo.java
  class WareInfo (line 4) | public class WareInfo {
    method getId (line 12) | public long getId() {
    method setId (line 16) | public void setId(long id) {
    method getName (line 21) | public String getName() {
    method setName (line 25) | public void setName(String name) {
    method getAddress (line 30) | public String getAddress() {
    method setAddress (line 34) | public void setAddress(String address) {
    method getAreacode (line 39) | public String getAreacode() {
    method setAreacode (line 43) | public void setAreacode(String areacode) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTask.java
  class WareOrderTask (line 4) | public class WareOrderTask {
    method getId (line 21) | public long getId() {
    method setId (line 25) | public void setId(long id) {
    method getOrderId (line 30) | public long getOrderId() {
    method setOrderId (line 34) | public void setOrderId(long orderId) {
    method getConsignee (line 39) | public String getConsignee() {
    method setConsignee (line 43) | public void setConsignee(String consignee) {
    method getConsigneeTel (line 48) | public String getConsigneeTel() {
    method setConsigneeTel (line 52) | public void setConsigneeTel(String consigneeTel) {
    method getDeliveryAddress (line 57) | public String getDeliveryAddress() {
    method setDeliveryAddress (line 61) | public void setDeliveryAddress(String deliveryAddress) {
    method getOrderComment (line 66) | public String getOrderComment() {
    method setOrderComment (line 70) | public void setOrderComment(String orderComment) {
    method getPaymentWay (line 75) | public String getPaymentWay() {
    method setPaymentWay (line 79) | public void setPaymentWay(String paymentWay) {
    method getTaskStatus (line 84) | public String getTaskStatus() {
    method setTaskStatus (line 88) | public void setTaskStatus(String taskStatus) {
    method getOrderBody (line 93) | public String getOrderBody() {
    method setOrderBody (line 97) | public void setOrderBody(String orderBody) {
    method getTrackingNo (line 102) | public String getTrackingNo() {
    method setTrackingNo (line 106) | public void setTrackingNo(String trackingNo) {
    method getCreateTime (line 111) | public java.sql.Timestamp getCreateTime() {
    method setCreateTime (line 115) | public void setCreateTime(java.sql.Timestamp createTime) {
    method getWareId (line 120) | public long getWareId() {
    method setWareId (line 124) | public void setWareId(long wareId) {
    method getTaskComment (line 129) | public String getTaskComment() {
    method setTaskComment (line 133) | public void setTaskComment(String taskComment) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTaskDetail.java
  class WareOrderTaskDetail (line 4) | public class WareOrderTaskDetail {
    method getId (line 14) | public long getId() {
    method setId (line 18) | public void setId(long id) {
    method getSkuId (line 23) | public long getSkuId() {
    method setSkuId (line 27) | public void setSkuId(long skuId) {
    method getSkuName (line 32) | public String getSkuName() {
    method setSkuName (line 36) | public void setSkuName(String skuName) {
    method getSkuNums (line 41) | public long getSkuNums() {
    method setSkuNums (line 45) | public void setSkuNums(long skuNums) {
    method getTaskId (line 50) | public long getTaskId() {
    method setTaskId (line 54) | public void setTaskId(long taskId) {
    method getSkuNum (line 59) | public long getSkuNum() {
    method setSkuNum (line 63) | public void setSkuNum(long skuNum) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/WareSku.java
  class WareSku (line 4) | public class WareSku {
    method getId (line 14) | public long getId() {
    method setId (line 18) | public void setId(long id) {
    method getSkuId (line 23) | public long getSkuId() {
    method setSkuId (line 27) | public void setSkuId(long skuId) {
    method getWarehouseId (line 32) | public long getWarehouseId() {
    method setWarehouseId (line 36) | public void setWarehouseId(long warehouseId) {
    method getStock (line 41) | public long getStock() {
    method setStock (line 45) | public void setStock(long stock) {
    method getStockName (line 50) | public String getStockName() {
    method setStockName (line 54) | public void setStockName(String stockName) {
    method getStockLocked (line 59) | public long getStockLocked() {
    method setStockLocked (line 63) | public void setStockLocked(long stockLocked) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/OrderStatus.java
  type OrderStatus (line 7) | public enum OrderStatus {
    method OrderStatus (line 19) | OrderStatus(String comment ){
    method getComment (line 23) | public String getComment() {
    method setComment (line 27) | public void setComment(String comment) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentStatus.java
  type PaymentStatus (line 7) | public enum PaymentStatus {
    method PaymentStatus (line 16) | PaymentStatus(String name) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentWay.java
  type PaymentWay (line 7) | public enum PaymentWay {
    method PaymentWay (line 14) | PaymentWay(String comment ){
    method getComment (line 18) | public String getComment() {
    method setComment (line 22) | public void setComment(String comment) {

FILE: gmall-api/src/main/java/com/lee/gmall/bean/enums/ProcessStatus.java
  type ProcessStatus (line 7) | public enum ProcessStatus {
    method ProcessStatus (line 22) | ProcessStatus(String comment, OrderStatus orderStatus) {
    method getComment (line 27) | public String getComment() {
    method setComment (line 31) | public void setComment(String comment) {
    method getOrderStatus (line 35) | public OrderStatus getOrderStatus() {
    method setOrderStatus (line 39) | public void setOrderStatus(OrderStatus orderStatus) {

FILE: gmall-api/src/main/java/com/lee/gmall/service/AttrService.java
  type AttrService (line 9) | public interface AttrService {
    method getAttrList (line 11) | List<BaseAttrInfo> getAttrList(String catalog3Id);
    method saveAttr (line 13) | void saveAttr(BaseAttrInfo baseAttrInfo);
    method getAttrValue (line 15) | List<BaseAttrValue> getAttrValue(String attrName);
    method deleteAttr (line 17) | void deleteAttr(String attrId);
    method getAttrListByCtg3Id (line 19) | List<BaseAttrInfo> getAttrListByCtg3Id(String ctg3Id);
    method getAttrListByValueIds (line 21) | List<BaseAttrInfo> getAttrListByValueIds(Set<String> valueIds);

FILE: gmall-api/src/main/java/com/lee/gmall/service/CartService.java
  type CartService (line 7) | public interface CartService {
    method ifCartExist (line 8) | CartInfo ifCartExist(CartInfo cartInfo);
    method updateCart (line 10) | void updateCart(CartInfo cartInfoDb);
    method insertCart (line 12) | void insertCart(CartInfo cartInfo);
    method syncCache (line 14) | void syncCache(String userId);
    method getCartCache (line 16) | List<CartInfo> getCartCache(String userId);
    method updateCartChecked (line 18) | void updateCartChecked(CartInfo cartInfo);
    method combineCart (line 20) | void combineCart(List<CartInfo> cartInfos, String userId);
    method getCartCacheByChecked (line 22) | List<CartInfo> getCartCacheByChecked(String userId);
    method deleteCartById (line 24) | void deleteCartById(List<CartInfo> cartInfos);

FILE: gmall-api/src/main/java/com/lee/gmall/service/CatalogService.java
  type CatalogService (line 9) | public interface CatalogService {
    method getCatalog1 (line 10) | List<BaseCatalog1> getCatalog1();
    method getCatalog2 (line 12) | List<BaseCatalog2> getCatalog2(String catalog1Id);
    method getCatalog3 (line 14) | List<BaseCatalog3> getCatalog3(String catalog2Id);

FILE: gmall-api/src/main/java/com/lee/gmall/service/OrderService.java
  type OrderService (line 5) | public interface OrderService {
    method genTradeCode (line 6) | String genTradeCode(String userId);
    method checkTradeCode (line 8) | boolean checkTradeCode(String tradeCode, String userId);
    method saveOrder (line 10) | void saveOrder(OrderInfo orderInfo);

FILE: gmall-api/src/main/java/com/lee/gmall/service/SearchService.java
  type SearchService (line 8) | public interface SearchService {
    method search (line 10) | List<SkuLsInfo> search(SkuLsParam skuLsParam);

FILE: gmall-api/src/main/java/com/lee/gmall/service/SkuService.java
  type SkuService (line 8) | public interface SkuService {
    method getSkuListBySpuId (line 10) | List<SkuInfo> getSkuListBySpuId(String spuId);
    method saveSku (line 12) | void saveSku(SkuInfo skuInfo);
    method getSkuById (line 14) | SkuInfo getSkuById(String skuId);
    method getSkuListByCatalog3Id (line 16) | List<SkuInfo> getSkuListByCatalog3Id(String catalog3Id);
    method checkPrice (line 18) | boolean checkPrice(BigDecimal skuPrice, String skuId);

FILE: gmall-api/src/main/java/com/lee/gmall/service/SpuService.java
  type SpuService (line 8) | public interface SpuService {
    method spuList (line 9) | List<SpuInfo> spuList(String catalog3Id);
    method baseSaleAttrList (line 11) | List<BaseSaleAttr> baseSaleAttrList();
    method saveSpu (line 13) | void saveSpu(SpuInfo spuInfo);
    method getSpuImageList (line 15) | List<SpuImage> getSpuImageList(String spuId);
    method getSpuSaleAttrList (line 17) | List<SpuSaleAttr> getSpuSaleAttrList(String spuId);
    method deleteSpu (line 19) | void deleteSpu(String spuId);
    method getSpuSaleAttrListBySpuId (line 21) | List<SpuSaleAttr> getSpuSaleAttrListBySpuId(String spuId);
    method getSpuSaleAttrListCheckBySku (line 23) | List<SpuSaleAttr> getSpuSaleAttrListCheckBySku(Map<String, String> idM...
    method getSkuSaleAttrValueListBySpu (line 25) | List<SkuInfo> getSkuSaleAttrValueListBySpu(String spuId);

FILE: gmall-api/src/main/java/com/lee/gmall/service/UserService.java
  type UserService (line 9) | @Service
    method userInfoList (line 12) | List<UserInfo> userInfoList();
    method login (line 14) | UserInfo login(UserInfo userInfo);
    method getUserAddressList (line 16) | List<UserAddress> getUserAddressList(String userId);

FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/GmallCartServiceApplication.java
  class GmallCartServiceApplication (line 8) | @SpringBootApplication
    method main (line 13) | public static void main(String[] args) {

FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/mapper/CartInfoMapper.java
  type CartInfoMapper (line 6) | public interface CartInfoMapper extends Mapper<CartInfo> {

FILE: gmall-cart-service/src/main/java/com/lee/gmall/cart/service/impl/CartServiceImpl.java
  class CartServiceImpl (line 18) | @Service
    method ifCartExist (line 27) | @Override
    method updateCart (line 38) | @Override
    method insertCart (line 43) | @Override
    method syncCache (line 48) | @Override
    method getCartCache (line 67) | @Override
    method updateCartChecked (line 84) | @Override
    method combineCart (line 94) | @Override
    method getCartCacheByChecked (line 117) | @Override
    method deleteCartById (line 145) | @Override

FILE: gmall-cart-service/src/test/java/com/lee/gmall/cart/GmallCartServiceApplicationTests.java
  class GmallCartServiceApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-cart-web/src/main/java/com/lee/gmall/GmallCartWebApplication.java
  class GmallCartWebApplication (line 6) | @SpringBootApplication
    method main (line 11) | public static void main(String[] args) {

FILE: gmall-cart-web/src/main/java/com/lee/gmall/cart/controller/CartController.java
  class CartController (line 22) | @Controller
    method checkCart (line 32) | @LoginRequire(ifNeedSuccess = false)
    method cartList (line 75) | @LoginRequire(ifNeedSuccess = false)
    method getTotalPrice (line 98) | private BigDecimal getTotalPrice(List<CartInfo> cartInfos) {
    method addToCart (line 107) | @LoginRequire(ifNeedSuccess = false)
    method isNewCart (line 170) | private boolean isNewCart(List<CartInfo> cartInfos, CartInfo cartInfo) {
    method cartSuccess (line 180) | @LoginRequire(ifNeedSuccess = false)

FILE: gmall-cart-web/src/main/resources/static/bootstrap/js/bootstrap.js
  function transitionEnd (line 34) | function transitionEnd() {
  function removeElement (line 126) | function removeElement() {
  function Plugin (line 142) | function Plugin(option) {
  function Plugin (line 251) | function Plugin(option) {
  function Plugin (line 475) | function Plugin(option) {
  function getTargetFromTrigger (line 695) | function getTargetFromTrigger($trigger) {
  function Plugin (line 707) | function Plugin(option) {
  function getParent (line 774) | function getParent($this) {
  function clearMenus (line 787) | function clearMenus(e) {
  function Plugin (line 880) | function Plugin(option) {
  function Plugin (line 1208) | function Plugin(option, _relatedTarget) {
  function complete (line 1574) | function complete() {
  function Plugin (line 1750) | function Plugin(option) {
  function Plugin (line 1859) | function Plugin(option) {
  function ScrollSpy (line 1902) | function ScrollSpy(element, options) {
  function Plugin (line 2022) | function Plugin(option) {
  function next (line 2131) | function next() {
  function Plugin (line 2177) | function Plugin(option) {
  function Plugin (line 2334) | function Plugin(option) {

FILE: gmall-cart-web/src/test/java/com/lee/gmall/cart/GmallCartWebApplicationTests.java
  class GmallCartWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-common-util/src/main/java/com/lee/gmall/util/HttpClientUtil.java
  class HttpClientUtil (line 20) | public class HttpClientUtil {
    method doGet (line 22) | public static String doGet(String url)   {
    method download (line 50) | public static void download(String url,String fileName)   {

FILE: gmall-item-web/src/main/java/com/lee/gmall/item/GmallItemWebApplication.java
  class GmallItemWebApplication (line 7) | @SpringBootApplication
    method main (line 10) | public static void main(String[] args) {

FILE: gmall-item-web/src/main/java/com/lee/gmall/item/controller/ItemController.java
  class ItemController (line 19) | @Controller
    method index (line 29) | @RequestMapping("index")
    method item (line 45) | @RequestMapping("{skuId}.html")

FILE: gmall-item-web/src/main/resources/static/bootstrap/js/bootstrap.js
  function transitionEnd (line 34) | function transitionEnd() {
  function removeElement (line 126) | function removeElement() {
  function Plugin (line 142) | function Plugin(option) {
  function Plugin (line 251) | function Plugin(option) {
  function Plugin (line 475) | function Plugin(option) {
  function getTargetFromTrigger (line 695) | function getTargetFromTrigger($trigger) {
  function Plugin (line 707) | function Plugin(option) {
  function getParent (line 774) | function getParent($this) {
  function clearMenus (line 787) | function clearMenus(e) {
  function Plugin (line 880) | function Plugin(option) {
  function Plugin (line 1208) | function Plugin(option, _relatedTarget) {
  function complete (line 1574) | function complete() {
  function Plugin (line 1750) | function Plugin(option) {
  function Plugin (line 1859) | function Plugin(option) {
  function ScrollSpy (line 1902) | function ScrollSpy(element, options) {
  function Plugin (line 2022) | function Plugin(option) {
  function next (line 2131) | function next() {
  function Plugin (line 2177) | function Plugin(option) {
  function Plugin (line 2334) | function Plugin(option) {

FILE: gmall-item-web/src/main/resources/static/js/jquery1.9.js
  function M (line 3) | function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.n...
  function F (line 3) | function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t...
  function P (line 3) | function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==...
  function R (line 3) | function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache...
  function W (line 3) | function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-...
  function $ (line 3) | function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&...
  function it (line 3) | function it(){return!0}
  function ot (line 3) | function ot(){return!1}
  function rt (line 4) | function rt(e){return Y.test(e+"")}
  function it (line 4) | function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i....
  function ot (line 4) | function ot(e){return e[x]=!0,e}
  function at (line 4) | function at(e){var t=p.createElement("div");try{return e(t)}catch(n){ret...
  function st (line 4) | function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)...
  function ut (line 4) | function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j)...
  function lt (line 4) | function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"...
  function ct (line 4) | function ct(e){return function(t){var n=t.nodeName.toLowerCase();return(...
  function pt (line 4) | function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,...
  function ft (line 4) | function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0)...
  function dt (line 4) | function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}
  function ht (line 4) | function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.firs...
  function gt (line 4) | function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i-...
  function mt (line 4) | function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)...
  function yt (line 4) | function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)...
  function vt (line 4) | function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relat...
  function bt (line 4) | function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d)...
  function xt (line 4) | function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}
  function wt (line 4) | function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0...
  function Tt (line 4) | function Tt(){}
  function pt (line 4) | function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}
  function ft (line 4) | function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,...
  function dt (line 4) | function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.cre...
  function Lt (line 4) | function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ow...
  function Ht (line 4) | function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.spec...
  function qt (line 4) | function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttrib...
  function Mt (line 4) | function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval...
  function _t (line 4) | function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e)...
  function Ft (line 4) | function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCas...
  function Ot (line 4) | function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getEl...
  function Bt (line 4) | function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}
  function tn (line 5) | function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.sl...
  function nn (line 5) | function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(...
  function rn (line 5) | function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.sty...
  function on (line 5) | function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[...
  function an (line 5) | function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:...
  function sn (line 5) | function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o...
  function un (line 5) | function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(...
  function ln (line 5) | function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[...
  function gn (line 5) | function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn....
  function Hn (line 5) | function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var ...
  function qn (line 5) | function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!...
  function Mn (line 5) | function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i...
  function k (line 5) | function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t...
  function _n (line 5) | function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFi...
  function Fn (line 5) | function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e....
  function In (line 5) | function In(){try{return new e.XMLHttpRequest}catch(t){}}
  function zn (line 5) | function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(...
  function Kn (line 5) | function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}
  function Zn (line 5) | function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]...
  function er (line 5) | function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(functio...
  function tr (line 5) | function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e...
  function nr (line 5) | function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e....
  function rr (line 5) | function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}
  function ir (line 5) | function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r...
  function or (line 5) | function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.pa...

FILE: gmall-item-web/src/main/resources/static/js/js.js
  function Zoom (line 199) | function Zoom(imgbox, hoverbox, l, t, x, y, h_w, h_h, showbox) {
  function Zoomhover (line 233) | function Zoomhover(imgbox, hoverbox, showbox) {

FILE: gmall-item-web/src/test/java/com/lee/gmall/item/GmallItemWebApplicationTests.java
  class GmallItemWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-list-service/src/main/java/com/lee/gmall/list/GmallListServiceApplication.java
  class GmallListServiceApplication (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: gmall-list-service/src/main/java/com/lee/gmall/list/service/impl/SearchServiceImpl.java
  class SearchServiceImpl (line 26) | @Service
    method search (line 32) | @Override
    method getMyDsl (line 60) | public static String getMyDsl(SkuLsParam skuLsParam) {

FILE: gmall-list-service/src/test/java/com/lee/gmall/list/GmallListServiceApplicationTests.java
  class GmallListServiceApplicationTests (line 21) | @RunWith(SpringRunner.class)
    method contextLoads (line 34) | @Test

FILE: gmall-list-web/src/main/java/com/lee/gmall/list/GmallListWebApplication.java
  class GmallListWebApplication (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: gmall-list-web/src/main/java/com/lee/gmall/list/controller/ListController.java
  class ListController (line 14) | @Controller
    method search (line 23) | @RequestMapping("list.html")
    method getUrlParam (line 68) | private String getUrlParam(SkuLsParam skuLsParam,String id) {
    method getAttrValueIds (line 98) | private List<BaseAttrInfo> getAttrValueIds(List<SkuLsInfo> skuLsInfos) {
    method index (line 115) | @RequestMapping("index")

FILE: gmall-list-web/src/main/resources/static/index/js/secend.js
  function time (line 31) | function time() {

FILE: gmall-list-web/src/main/resources/static/list/font/iconfont.js
  function IEContentLoaded (line 1) | function IEContentLoaded(w,fn){var d=w.document,done=false,init=function...
  function appendSvg (line 1) | function appendSvg(){var div,svg;div=document.createElement("div");div.i...

FILE: gmall-list-web/src/main/resources/static/list/js/jquery-1.12.4.js
  function isArrayLike (line 563) | function isArrayLike( obj ) {
  function Sizzle (line 772) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 912) | function createCache() {
  function markFunction (line 930) | function markFunction( fn ) {
  function assert (line 939) | function assert( fn ) {
  function addHandle (line 961) | function addHandle( attrs, handler ) {
  function siblingCheck (line 976) | function siblingCheck( a, b ) {
  function createInputPseudo (line 1003) | function createInputPseudo( type ) {
  function createButtonPseudo (line 1014) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 1025) | function createPositionalPseudo( fn ) {
  function testContext (line 1048) | function testContext( context ) {
  function setFilters (line 2093) | function setFilters() {}
  function toSelector (line 2164) | function toSelector( tokens ) {
  function addCombinator (line 2174) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2232) | function elementMatcher( matchers ) {
  function multipleContexts (line 2246) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2255) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2276) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2369) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2427) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function winnow (line 2765) | function winnow( elements, qualifier, not ) {
  function sibling (line 3078) | function sibling( cur, dir ) {
  function createOptions (line 3159) | function createOptions( options ) {
  function detach (line 3595) | function detach() {
  function completed (line 3609) | function completed() {
  function dataAttr (line 3779) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 3813) | function isEmptyDataObject( obj ) {
  function internalData (line 3829) | function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
  function internalRemoveData (line 3921) | function internalRemoveData( elem, name, pvt ) {
  function adjustCSS (line 4314) | function adjustCSS( elem, prop, valueParts, tween ) {
  function createSafeFragment (line 4444) | function createSafeFragment( document ) {
  function getAll (line 4548) | function getAll( context, tag ) {
  function setGlobalEval (line 4577) | function setGlobalEval( elems, refElements ) {
  function fixDefaultChecked (line 4593) | function fixDefaultChecked( elem ) {
  function buildFragment (line 4599) | function buildFragment( elems, context, scripts, selection, ignored ) {
  function returnTrue (line 4759) | function returnTrue() {
  function returnFalse (line 4763) | function returnFalse() {
  function safeActiveElement (line 4769) | function safeActiveElement() {
  function on (line 4775) | function on( elem, types, selector, data, fn, one ) {
  function manipulationTarget (line 5890) | function manipulationTarget( elem, content ) {
  function disableScript (line 5900) | function disableScript( elem ) {
  function restoreScript (line 5904) | function restoreScript( elem ) {
  function cloneCopyEvent (line 5914) | function cloneCopyEvent( src, dest ) {
  function fixCloneNodeIssues (line 5941) | function fixCloneNodeIssues( src, dest ) {
  function domManip (line 6009) | function domManip( collection, args, callback, ignored ) {
  function remove (line 6106) | function remove( elem, selector, keepData ) {
  function actualDisplay (line 6442) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 6458) | function defaultDisplay( nodeName ) {
  function computeStyleTests (line 6607) | function computeStyleTests() {
  function addGetHookIf (line 6819) | function addGetHookIf( conditionFn, hookFn ) {
  function vendorPropName (line 6862) | function vendorPropName( name ) {
  function showHide (line 6881) | function showHide( elements, show ) {
  function setPositiveNumber (line 6938) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 6947) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 6991) | function getWidthOrHeight( elem, name, extra ) {
  function Tween (line 7374) | function Tween( elem, options, prop, end, easing ) {
  function createFxNow (line 7498) | function createFxNow() {
  function genFx (line 7506) | function genFx( type, includeWidth ) {
  function createTween (line 7526) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 7540) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 7685) | function propFilter( props, specialEasing ) {
  function Animation (line 7722) | function Animation( elem, properties, options ) {
  function getClass (line 8803) | function getClass( elem ) {
  function addToPrefiltersOrTransports (line 9115) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 9149) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 9178) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 9198) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 9255) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 9753) | function done( status, nativeStatusText, responses, headers ) {
  function getDisplay (line 9985) | function getDisplay( elem ) {
  function filterHidden (line 9989) | function filterHidden( elem ) {
  function buildParams (line 10027) | function buildParams( prefix, obj, traditional, add ) {
  function createStandardXHR (line 10346) | function createStandardXHR() {
  function createActiveXHR (line 10352) | function createActiveXHR() {
  function getWindow (line 10682) | function getWindow( elem ) {

FILE: gmall-list-web/src/test/java/com/lee/gmall/list/GmallListWebApplicationTests.java
  class GmallListWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/GmallManageServiceApplication.java
  class GmallManageServiceApplication (line 8) | @SpringBootApplication
    method main (line 13) | public static void main(String[] args) {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseAttrInfoMapper.java
  type BaseAttrInfoMapper (line 6) | public interface BaseAttrInfoMapper extends Mapper<BaseAttrInfo> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseAttrValueMapper.java
  type BaseAttrValueMapper (line 10) | public interface BaseAttrValueMapper extends Mapper<BaseAttrValue> {
    method selectAttrListByValueIds (line 11) | List<BaseAttrInfo> selectAttrListByValueIds(@Param("ids") String join);

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog1Mapper.java
  type BaseCatalog1Mapper (line 6) | public interface BaseCatalog1Mapper extends Mapper<BaseCatalog1> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog2Mapper.java
  type BaseCatalog2Mapper (line 6) | public interface BaseCatalog2Mapper extends Mapper<BaseCatalog2> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog3Mapper.java
  type BaseCatalog3Mapper (line 6) | public interface BaseCatalog3Mapper extends Mapper<BaseCatalog3> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseSaleAttrMapper.java
  type BaseSaleAttrMapper (line 6) | public interface BaseSaleAttrMapper extends Mapper<BaseSaleAttr> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuAttrValueMapper.java
  type SkuAttrValueMapper (line 6) | public interface SkuAttrValueMapper extends Mapper<SkuAttrValue> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuImageMapper.java
  type SkuImageMapper (line 6) | public interface SkuImageMapper extends Mapper<SkuImage> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuInfoMapper.java
  type SkuInfoMapper (line 6) | public interface SkuInfoMapper extends Mapper<SkuInfo> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuSaleAttrValueMapper.java
  type SkuSaleAttrValueMapper (line 6) | public interface SkuSaleAttrValueMapper extends Mapper<SkuSaleAttrValue> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuImageMapper.java
  type SpuImageMapper (line 6) | public interface SpuImageMapper extends Mapper<SpuImage> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuInfoMapper.java
  type SpuInfoMapper (line 6) | public interface SpuInfoMapper extends Mapper<SpuInfo > {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuSaleAttrMapper.java
  type SpuSaleAttrMapper (line 6) | public interface SpuSaleAttrMapper extends Mapper<SpuSaleAttr> {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuSaleAttrValueMapper.java
  type SpuSaleAttrValueMapper (line 12) | public interface SpuSaleAttrValueMapper extends Mapper<SpuSaleAttrValue> {
    method selectSpuSaleAttrListCheckBySku (line 14) | List<SpuSaleAttr> selectSpuSaleAttrListCheckBySku(Map<String, String> ...
    method selectSkuSaleAttrValueListBySpu (line 16) | List<SkuInfo> selectSkuSaleAttrValueListBySpu(@Param("spuId") String s...

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/AttrServiceImpl.java
  class AttrServiceImpl (line 15) | @Service
    method getAttrList (line 23) | @Override
    method saveAttr (line 31) | @Override
    method getAttrValue (line 42) | @Override
    method deleteAttr (line 49) | @Override
    method getAttrListByCtg3Id (line 56) | @Override
    method getAttrListByValueIds (line 71) | @Override

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/CatalogServieImpl.java
  class CatalogServieImpl (line 15) | @Service
    method getCatalog1 (line 25) | @Override
    method getCatalog2 (line 31) | @Override
    method getCatalog3 (line 39) | @Override

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/SkuServiceImpl.java
  class SkuServiceImpl (line 23) | @Service
    method getSkuListBySpuId (line 37) | @Override
    method saveSku (line 44) | @Override
    method getSkuById (line 72) | @Override
    method getSkuListByCatalog3Id (line 122) | @Override
    method checkPrice (line 139) | @Override
    method getSkuByIdFormDb (line 155) | private SkuInfo getSkuByIdFormDb(String skuId) {

FILE: gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/SpuServiceImpl.java
  class SpuServiceImpl (line 12) | @Service
    method spuList (line 27) | @Override
    method baseSaleAttrList (line 35) | @Override
    method saveSpu (line 41) | @Override
    method getSpuImageList (line 71) | @Override
    method getSpuSaleAttrList (line 82) | @Override
    method deleteSpu (line 89) | @Override
    method getSpuSaleAttrListBySpuId (line 105) | @Override
    method getSpuSaleAttrListCheckBySku (line 121) | @Override
    method getSkuSaleAttrValueListBySpu (line 127) | @Override

FILE: gmall-manage-service/src/test/java/com/lee/gmall/manage/GmallManageServiceApplicationTests.java
  class GmallManageServiceApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/GmallManageWebApplication.java
  class GmallManageWebApplication (line 11) | @SpringBootApplication
    method main (line 15) | public static void main(String[] args) {
    method multipartConfigElement (line 22) | @Bean

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/AttrController.java
  class AttrController (line 13) | @Controller
    method getAttrList (line 20) | @RequestMapping("getAttrList")
    method saveAttr (line 28) | @RequestMapping("saveAttrValue")
    method getAttrValue (line 36) | @RequestMapping("getAttrValue")
    method deleteAttr (line 44) | @RequestMapping("deleteAttr")
    method getAttrListByCtg3Id (line 51) | @RequestMapping("getAttrListByCtg3Id")

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/CatalogController.java
  class CatalogController (line 14) | @Controller
    method getCatalog1 (line 21) | @RequestMapping("getCatalog1")
    method getCatalog2 (line 29) | @RequestMapping("getCatalog2")
    method getCatalog3 (line 37) | @RequestMapping("getCatalog3")

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/IndexController.java
  class IndexController (line 6) | @Controller
    method index (line 9) | @RequestMapping("index")
    method attrListPage (line 14) | @RequestMapping("attrListPage")
    method spuListPage (line 19) | @RequestMapping("spuListPage")

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/SkuController.java
  class SkuController (line 16) | @Controller
    method getSkuListBySpuId (line 23) | @RequestMapping("getSkuListBySpuId")
    method saveSku (line 29) | @RequestMapping("saveSku")

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/SpuController.java
  class SpuController (line 15) | @Controller
    method spuList (line 21) | @RequestMapping("spuList")
    method baseSaleAttrList (line 28) | @RequestMapping("baseSaleAttrList")
    method saveSpu (line 36) | @RequestMapping("saveSpu")
    method fileUpload (line 45) | @RequestMapping("fileUpload")
    method getSpuImageList (line 52) | @RequestMapping("getSpuImageList")
    method getSpuSaleAttrList (line 59) | @RequestMapping("getSpuSaleAttrList")
    method deleteSpu (line 66) | @RequestMapping("deleteSpu")
    method getSpuSaleAttrListBySpuId (line 73) | @RequestMapping("getSpuSaleAttrListBySpuId")
    method getSpuImageListBySpuId (line 80) | @RequestMapping("getSpuImageListBySpuId")

FILE: gmall-manage-web/src/main/java/com/lee/gmall/manage/util/MyUploadUtil.java
  class MyUploadUtil (line 12) | public class MyUploadUtil {
    method uploadImage (line 14) | public static String uploadImage(MultipartFile file) {

FILE: gmall-manage-web/src/main/resources/static/esayui/datagrid-detailview.js
  function _insert (line 160) | function _insert(frozen){
  function resizeDetails (line 319) | function resizeDetails(){
  function createGrid (line 428) | function createGrid(target, conf, prow){
  function getSubGrid (line 486) | function getSubGrid(rowDetail){
  function setParentHeight (line 494) | function setParentHeight(target){
  function setHeight (line 502) | function setHeight(target, index){

FILE: gmall-manage-web/src/main/resources/static/esayui/easyloader.js
  function _4 (line 14) | function _4(_5,_6){
  function _9 (line 31) | function _9(_a,_b){
  function _c (line 39) | function _c(_d,_e){
  function _10 (line 50) | function _10(_11,_12){
  function _17 (line 87) | function _17(_18,_19){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.accordion.js
  function _1 (line 11) | function _1(_2,_3){
  function _10 (line 65) | function _10(_11,_12,_13,all){
  function _15 (line 86) | function _15(_16){
  function _17 (line 89) | function _17(_18){
  function _19 (line 93) | function _19(_1a,_1b){
  function _1c (line 96) | function _1c(_1d,_1e){
  function _20 (line 107) | function _20(_21){
  function _23 (line 116) | function _23(_24){
  function _28 (line 134) | function _28(_29,pp,_2a){
  function _33 (line 206) | function _33(_35,_36){
  function _34 (line 215) | function _34(_39,_3a){
  function _3c (line 224) | function _3c(_3d){
  function _37 (line 240) | function _37(_42){
  function add (line 246) | function add(_44,_45){
  function _49 (line 263) | function _49(_4a,_4b){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.calendar.js
  function _1 (line 11) | function _1(_2,_3){
  function _6 (line 23) | function _6(_7){
  function _9 (line 32) | function _9(_a){
  function _5 (line 147) | function _5(_1a){
  function _20 (line 172) | function _20(_21,_22,_23){
  function _19 (line 231) | function _19(_2f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.checkbox.js
  function _2 (line 12) | function _2(_3){
  function _6 (line 23) | function _6(_7){
  function _e (line 52) | function _e(_f){
  function _13 (line 62) | function _13(_14){
  function _c (line 76) | function _c(_18,_19){
  function _d (line 92) | function _d(_1e,_1f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.combo.js
  function _2 (line 21) | function _2(_3){
  function _c (line 58) | function _c(_d){
  function _10 (line 70) | function _10(_11){
  function _1 (line 85) | function _1(_15){
  function _16 (line 93) | function _16(e){
  function _1b (line 109) | function _1b(e){
  function _1f (line 153) | function _1f(e){
  function _22 (line 160) | function _22(_23){
  function _14 (line 211) | function _14(_2c){
  function _2e (line 215) | function _2e(_2f,_30){
  function _33 (line 223) | function _33(_34){
  function _39 (line 237) | function _39(_3a,_3b){
  function _45 (line 288) | function _45(_46){
  function _48 (line 292) | function _48(_49,_4a){
  function _4b (line 295) | function _4b(_4c){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.combobox.js
  function _1 (line 11) | function _1(_2,_3){
  function _5 (line 15) | function _5(_6,_7){
  function _b (line 32) | function _b(_c,_d){
  function _13 (line 68) | function _13(_14,_15,_16){
  function _1a (line 80) | function _1a(_1b,_1c){
  function _19 (line 89) | function _19(_20,_21,_22){
  function _2a (line 156) | function _2a(_2b,_2c,_2d){
  function _30 (line 174) | function _30(_31,url,_32,_33){
  function _36 (line 189) | function _36(_37,q){
  function _41 (line 241) | function _41(_42){
  function _47 (line 271) | function _47(_48){
  function _4b (line 282) | function _4b(e){
  function _4d (line 290) | function _4d(e){
  function _4e (line 294) | function _4e(e){
  function _53 (line 325) | function _53(e){
  function _71 (line 469) | function _71(el,_72){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.combogrid.js
  function _1 (line 11) | function _1(_2){
  function nav (line 86) | function nav(_23,dir){
  function _22 (line 117) | function _22(_29,_2a,_2b){
  function _3d (line 175) | function _3d(_3e,q){
  function _48 (line 227) | function _48(_49){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.combotree.js
  function _1 (line 11) | function _1(_2){
  function _e (line 51) | function _e(_f){
  function _15 (line 69) | function _15(_16,_17,_18){
  function _29 (line 133) | function _29(_2a,q){
  function _2e (line 140) | function _2e(_2f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.combotreegrid.js
  function _1 (line 11) | function _1(_2){
  function _11 (line 55) | function _11(_12){
  function _16 (line 73) | function _16(_17,_18){
  function _23 (line 138) | function _23(_24,q){
  function _2a (line 196) | function _2a(_2b){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.datagrid.js
  function _2 (line 12) | function _2(a,o){
  function _3 (line 15) | function _3(a,o,id){
  function _4 (line 18) | function _4(a,o,r){
  function _5 (line 21) | function _5(_6,aa){
  function _7 (line 24) | function _7(_8){
  function _1a (line 91) | function _1a(_1b,_1c){
  function _20 (line 105) | function _20(_21){
  function _34 (line 148) | function _34(_35,_36,_37){
  function _46 (line 215) | function _46(_47,_48){
  function _4e (line 231) | function _4e(_4f,_50){
  function _59 (line 269) | function _59(_5a){
  function _76 (line 442) | function _76(_77){
  function _83 (line 531) | function _83(_84){
  function _87 (line 544) | function _87(e){
  function _8e (line 569) | function _8e(e){
  function _94 (line 588) | function _94(e){
  function _97 (line 594) | function _97(_98){
  function _9f (line 613) | function _9f(e){
  function _aa (line 677) | function _aa(e){
  function _af (line 693) | function _af(e){
  function _86 (line 710) | function _86(t){
  function _99 (line 713) | function _99(t,_b4){
  function _9c (line 721) | function _9c(tr){
  function _8d (line 728) | function _8d(_b5,_b6){
  function _c2 (line 788) | function _c2(_c3,_c4,_c5){
  function _cd (line 811) | function _cd(_ce){
  function _e1 (line 910) | function _e1(_e2,_e3){
  function _f0 (line 969) | function _f0(_f1,_f2){
  function _f6 (line 994) | function _f6(_f9,tds){
  function _f7 (line 1012) | function _f7(_fc){
  function _75 (line 1025) | function _75(_ff,_100){
  function _c8 (line 1047) | function _c8(_102,_103){
  function _74 (line 1086) | function _74(_10c,_10d){
  function _c1 (line 1090) | function _c1(_10e,data){
  function _115 (line 1153) | function _115(_116){
  function _11d (line 1188) | function _11d(_11e,row){
  function _120 (line 1203) | function _120(_121){
  function _123 (line 1217) | function _123(_124){
  function _126 (line 1230) | function _126(_127,_128){
  function _9d (line 1256) | function _9d(_12e,_12f){
  function _a6 (line 1263) | function _a6(_131,_132,_133,_134){
  function _a7 (line 1289) | function _a7(_137,_138,_139){
  function _13b (line 1309) | function _13b(_13c,_13d){
  function _136 (line 1325) | function _136(_141,_142){
  function _a3 (line 1341) | function _a3(_146,_147,_148){
  function _a4 (line 1370) | function _a4(_14a,_14b,_14c){
  function _8a (line 1393) | function _8a(_14f,_150){
  function _8b (line 1411) | function _8b(_152,_153){
  function _155 (line 1429) | function _155(_156,_157){
  function _15b (line 1450) | function _15b(_15c,_15d,_15e){
  function _168 (line 1499) | function _168(_169,_16a){
  function _16c (line 1512) | function _16c(_16d,_16e){
  function _158 (line 1521) | function _158(_170,_171){
  function _167 (line 1552) | function _167(_178,_179){
  function _15a (line 1569) | function _15a(_17a,_17b){
  function _17d (line 1580) | function _17d(_17e,_17f){
  function _183 (line 1605) | function _183(_184,_185){
  function _189 (line 1626) | function _189(_18a,_18b){
  function _18d (line 1634) | function _18d(_18e,row){
  function _190 (line 1642) | function _190(_191,_192){
  function _196 (line 1663) | function _196(_197){
  function _19a (line 1676) | function _19a(_19b){
  function _19c (line 1690) | function _19c(_19d){
  function _c0 (line 1728) | function _c0(_1aa,_1ab,cb){
  function _1ae (line 1760) | function _1ae(_1af,_1b0){
  function _1b7 (line 1833) | function _1b7(_1b8){
  function _22f (line 2349) | function _22f(_231){
  function _232 (line 2353) | function _232(_233){
  function _23a (line 2381) | function _23a(_23b){
  function _23e (line 2399) | function _23e(_23f){
  function _246 (line 2427) | function _246(_247){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.datalist.js
  function _1 (line 11) | function _1(_2){
  function _1c (line 69) | function _1c(_1e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.datebox.js
  function _1 (line 11) | function _1(_2){
  function _16 (line 94) | function _16(_17,q){
  function _19 (line 97) | function _19(_1a){
  function _18 (line 106) | function _18(_1e,_1f,_20){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.datetimebox.js
  function _1 (line 11) | function _1(_2){
  function _8 (line 31) | function _8(_9){
  function _b (line 37) | function _b(_c,q){
  function _e (line 40) | function _e(_f){
  function _d (line 46) | function _d(_12,_13,_14){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.datetimespinner.js
  function _1 (line 11) | function _1(_2){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.dialog.js
  function _1 (line 11) | function _1(_2){
  function _b (line 72) | function _b(_c,_d){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.draggable.js
  function _1 (line 11) | function _1(e){
  function _8 (line 54) | function _8(e){
  function _c (line 64) | function _c(e){
  function _12 (line 102) | function _12(e){
  function _16 (line 133) | function _16(e){
  function _17 (line 203) | function _17(){
  function _26 (line 267) | function _26(e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.droppable.js
  function _1 (line 11) | function _1(_2){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.filebox.js
  function _2 (line 12) | function _2(_3){
  function _7 (line 30) | function _7(_9){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.form.js
  function _1 (line 11) | function _1(_2,_3){
  function _8 (line 55) | function _8(_a,_b){
  function _9 (line 136) | function _9(_18,_19){
  function _20 (line 159) | function _20(_21,_22){
  function _34 (line 242) | function _34(_35){
  function _3c (line 287) | function _3c(_3d){
  function _42 (line 300) | function _42(_43){
  function _46 (line 327) | function _46(_47,_48){
  function _4a (line 336) | function _4a(_4b){
  function _45 (line 346) | function _45(_4d,_4e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.layout.js
  function _2 (line 12) | function _2(_3,_4){
  function _12 (line 70) | function _12(_13){
  function _19 (line 95) | function _19(_1a,_1b,el){
  function _34 (line 213) | function _34(_35,_36){
  function _39 (line 226) | function _39(_3a,_3b,_3c){
  function _4f (line 353) | function _4f(_50,_51){
  function _a (line 392) | function _a(pp){
  function _58 (line 402) | function _58(_59){
  function _60 (line 421) | function _60(_61,_62,_63){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.linkbutton.js
  function _1 (line 11) | function _1(_2,_3){
  function _b (line 37) | function _b(_c){
  function _f (line 84) | function _f(_11,_12){
  function _10 (line 105) | function _10(_14,_15){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.maskedbox.js
  function _1 (line 11) | function _1(_2){
  function _5 (line 17) | function _5(_6,_7){
  function _9 (line 29) | function _9(_a,_b){
  function _d (line 52) | function _d(_e,c){
  function _16 (line 70) | function _16(_17,_18){
  function _14 (line 94) | function _14(_1f,pos){
  function _12 (line 107) | function _12(_22,pos){
  function _1c (line 118) | function _1c(_24,pos){
  function _26 (line 129) | function _26(e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.menu.js
  function _2 (line 21) | function _2(_3){
  function _b (line 53) | function _b(_c,_d){
  function _f (line 70) | function _f(_12,div,_13){
  function _10 (line 102) | function _10(_17,_18){
  function _11 (line 148) | function _11(_20,_21){
  function _25 (line 156) | function _25(e){
  function _28 (line 164) | function _28(e){
  function _2c (line 173) | function _2c(e){
  function _30 (line 194) | function _30(e){
  function _33 (line 210) | function _33(e){
  function _2b (line 229) | function _2b(_38,_39){
  function _3b (line 243) | function _3b(_3c,_3d){
  function _1 (line 301) | function _1(_44){
  function _46 (line 319) | function _46(_47,_48){
  function _16 (line 344) | function _16(_4e,_4f,_50){
  function _52 (line 358) | function _52(_53,_54){
  function _58 (line 373) | function _58(_59,_5a){
  function _5d (line 389) | function _5d(_5e,_5f,_60){
  function _62 (line 398) | function _62(_63){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.menubutton.js
  function _1 (line 11) | function _1(_2){
  function _f (line 43) | function _f(_10){
  function _14 (line 69) | function _14(_15){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.messager.js
  function _1 (line 11) | function _1(){
  function _7 (line 42) | function _7(){
  function _8 (line 45) | function _8(_9){
  function _d (line 86) | function _d(_e){
  function _6 (line 100) | function _6(dlg,_10){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.numberbox.js
  function _1 (line 11) | function _1(_2){
  function _7 (line 23) | function _7(_8,_9){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.numberspinner.js
  function _1 (line 11) | function _1(_2){
  function _4 (line 17) | function _4(_5,_6){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.pagination.js
  function _1 (line 11) | function _1(_2){
  function _10 (line 138) | function _10(_11,_12){
  function _14 (line 143) | function _14(_15,_16){
  function _1d (line 216) | function _1d(_1e,_1f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.panel.js
  function _1 (line 21) | function _1(_2){
  function _3 (line 24) | function _3(_4,_5){
  function _15 (line 87) | function _15(_16,_17){
  function _1b (line 105) | function _1b(_1c){
  function _1f (line 117) | function _1f(_20){
  function _2f (line 231) | function _2f(_30,_31){
  function _37 (line 262) | function _37(_38){
  function _39 (line 281) | function _39(_3a){
  function _3b (line 284) | function _3b(_3c,_3d){
  function _44 (line 341) | function _44(_45,_46){
  function _4a (line 378) | function _4a(_4b,_4c){
  function _43 (line 391) | function _43(_50,_51){
  function _57 (line 427) | function _57(_58,_59){
  function _42 (line 465) | function _42(_5e){
  function _62 (line 484) | function _62(_63){
  function _66 (line 493) | function _66(_67){
  function _6b (line 509) | function _6b(_6c,_6d){
  function _7c (line 611) | function _7c(_7d,_7e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.parser.js
  function _20 (line 241) | function _20(_23,_24,fit){
  function _22 (line 272) | function _22(_26,_27,_28,_29){
  function _21 (line 295) | function _21(_2b,_2c,_2d){
  function _32 (line 333) | function _32(e){
  function _34 (line 355) | function _34(e){
  function _35 (line 367) | function _35(e){
  function _33 (line 376) | function _33(e,_36,_37){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.passwordbox.js
  function _1 (line 11) | function _1(_2){
  function _7 (line 24) | function _7(_8,_9,_a){
  function _6 (line 55) | function _6(_e,_f){
  function _13 (line 65) | function _13(e){
  function _18 (line 91) | function _18(e){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.progressbar.js
  function _1 (line 11) | function _1(_2){
  function _4 (line 22) | function _4(_5,_6){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.propertygrid.js
  function _3 (line 20) | function _3(_4){
  function _2 (line 56) | function _2(_f){
  function _27 (line 157) | function _27(css,cls){
  function _3c (line 219) | function _3c(_40){
  function _39 (line 228) | function _39(){
  function _6d (line 381) | function _6d(_6e,_6f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.radiobutton.js
  function _2 (line 12) | function _2(_3){
  function _6 (line 23) | function _6(_7){
  function _e (line 52) | function _e(_f){
  function _13 (line 62) | function _13(_14){
  function _c (line 76) | function _c(_18,_19){
  function _d (line 100) | function _d(_1e,_1f){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.resizable.js
  function _1 (line 11) | function _1(e){
  function _6 (line 37) | function _6(e){
  function _8 (line 48) | function _8(e){
  function _9 (line 53) | function _9(e){
  function _a (line 60) | function _a(e){
  function _b (line 69) | function _b(e){
  function _18 (line 136) | function _18(css){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.searchbox.js
  function _1 (line 11) | function _1(_2){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.sidemenu.js
  function _2 (line 12) | function _2(_3){
  function _4 (line 15) | function _4(_5,_6){
  function _8 (line 23) | function _8(_9,_a,_b){
  function _13 (line 51) | function _13(_14,_15,_16){
  function _1c (line 81) | function _1c(_1d,_1e){
  function _12 (line 95) | function _12(_1f,_20,_21){
  function _25 (line 112) | function _25(_26,_27){
  function _2b (line 124) | function _2b(_2c){
  function _30 (line 160) | function _30(_31,_32){
  function _37 (line 194) | function _37(_38){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.slider.js
  function _1 (line 11) | function _1(_2){
  function _6 (line 28) | function _6(_7,_8){
  function _d (line 51) | function _d(_e){
  function _17 (line 81) | function _17(_18){
  function _27 (line 167) | function _27(_28,_29){
  function _c (line 217) | function _c(_35){
  function _33 (line 225) | function _33(_37,_38){
  function _25 (line 239) | function _25(_3d,pos){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.spinner.js
  function _1 (line 11) | function _1(_2){
  function _13 (line 90) | function _13(_14,_15){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.splitbutton.js
  function _1 (line 11) | function _1(_2){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.switchbutton.js
  function _1 (line 11) | function _1(_2){
  function _6 (line 28) | function _6(_7,_8){
  function _10 (line 56) | function _10(_11){
  function _f (line 78) | function _f(_18,_19,_1a){
  function _21 (line 96) | function _21(_22,_23){
  function _17 (line 111) | function _17(_28,_29){
  function _2c (line 117) | function _2c(_2d){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.tabs.js
  function _1 (line 11) | function _1(c){
  function _2 (line 18) | function _2(_3){
  function _f (line 66) | function _f(_10){
  function _15 (line 89) | function _15(_16,_17){
  function _23 (line 158) | function _23(_24){
  function _2a (line 168) | function _2a(_2b){
  function _30 (line 194) | function _30(_31){
  function _38 (line 245) | function _38(_39){
  function _3e (line 289) | function _3e(_3f,_40,pp){
  function _4e (line 377) | function _4e(_4f,_50){
  function _54 (line 389) | function _54(_55,_56){
  function _5d (line 466) | function _5d(_5e,_5f){
  function _65 (line 499) | function _65(_6a,_6b,_6c){
  function _4d (line 529) | function _4d(_6f,tab){
  function _26 (line 538) | function _26(_71){
  function _73 (line 548) | function _73(_74){
  function _53 (line 560) | function _53(_78,_79){
  function _7b (line 569) | function _7b(_7c,_7d){
  function _7a (line 576) | function _7a(_7e){
  function _64 (line 581) | function _64(_7f,_80){
  function _81 (line 584) | function _81(_82,_83){
  function _85 (line 589) | function _85(_86,_87){
  function _9c (line 693) | function _9c(){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.tagbox.js
  function _1 (line 11) | function _1(_2){
  function _12 (line 57) | function _12(_13,_14){
  function _1c (line 71) | function _1c(_1d){
  function _23 (line 108) | function _23(_24){
  function _2c (line 127) | function _2c(_2d){
  function _33 (line 149) | function _33(_34,_35){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.textbox.js
  function _2 (line 12) | function _2(_3){
  function _6 (line 22) | function _6(_7){
  function _f (line 78) | function _f(_10){
  function _12 (line 86) | function _12(_13,_14){
  function _c (line 169) | function _c(_22){
  function _28 (line 200) | function _28(_29){
  function _d (line 275) | function _d(_36,_37){
  function _e (line 295) | function _e(_3b,_3c){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.timespinner.js
  function _1 (line 11) | function _1(_2){
  function _5 (line 17) | function _5(e){
  function _a (line 29) | function _a(_b,_c){
  function _f (line 41) | function _f(_10,_11){
  function _14 (line 47) | function _14(_15,_16){
  function _2c (line 157) | function _2c(_2d){
  function _30 (line 174) | function _30(s){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.tooltip.js
  function _1 (line 11) | function _1(_2){
  function _3 (line 14) | function _3(_4){
  function _6 (line 28) | function _6(_7){
  function _9 (line 39) | function _9(_a){
  function _15 (line 117) | function _15(_16,e){
  function _1c (line 139) | function _1c(_1d,e){
  function _19 (line 149) | function _19(_1f,_20){
  function _23 (line 162) | function _23(_24){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.tree.js
  function _1 (line 11) | function _1(_2){
  function _4 (line 16) | function _4(_5){
  function _d (line 84) | function _d(_e){
  function _11 (line 91) | function _11(_12){
  function _34 (line 237) | function _34(_35,_36,_37,_38){
  function _3c (line 287) | function _3c(_3f,_40,_41){
  function _3e (line 314) | function _3e(_47,_48,_49){
  function _3d (line 328) | function _3d(_4b,_4c){
  function _46 (line 335) | function _46(row){
  function _4f (line 366) | function _4f(_50,_51){
  function _56 (line 402) | function _56(_57,ul,_58,_59,_5a){
  function _61 (line 436) | function _61(_62,ul,_63){
  function _6f (line 482) | function _6f(_70,ul,_71,_72){
  function _79 (line 512) | function _79(_7a,_7b,_7c){
  function _80 (line 570) | function _80(_81,_82){
  function _85 (line 597) | function _85(_86,_87){
  function _88 (line 608) | function _88(_89,_8a){
  function _8d (line 617) | function _8d(_8e,_8f){
  function _91 (line 628) | function _91(_92,_93){
  function _96 (line 648) | function _96(_97,_98){
  function _9a (line 657) | function _9a(_9b,_9c){
  function _a1 (line 686) | function _a1(_a2,_a3){
  function _a7 (line 718) | function _a7(_a8,_a9){
  function _60 (line 745) | function _60(_ae,_af){
  function _b3 (line 759) | function _b3(_b4,_b5){
  function _b7 (line 772) | function _b7(_b8){
  function _8c (line 779) | function _8c(_bb,_bc){
  function _4d (line 788) | function _4d(_c0,_c1){
  function _c2 (line 792) | function _c2(_c3,_c4){
  function _c6 (line 805) | function _c6(_c7){
  function _c9 (line 809) | function _c9(_ca,_cb){
  function _c (line 818) | function _c(_ce,_cf){
  function _d0 (line 821) | function _d0(_d1,_d2){
  function _5f (line 845) | function _5f(_d7,_d8,_d9){
  function _ba (line 850) | function _ba(_db){
  function _dc (line 854) | function _dc(_dd,_de){
  function _9f (line 864) | function _9f(_e1,_e2){
  function _e3 (line 867) | function _e3(_e4,_e5){
  function _ea (line 902) | function _ea(_eb,_ec){
  function _f0 (line 913) | function _f0(_f1,_f2){
  function _f5 (line 921) | function _f5(_f6,q){
  function _11d (line 1107) | function _11d(aa,tree){
  function _126 (line 1133) | function _126(_127,_128){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.treegrid.js
  function _1 (line 11) | function _1(_2){
  function _16 (line 57) | function _16(_17,_18){
  function _1f (line 79) | function _1f(_20){
  function _22 (line 89) | function _22(_23){
  function _24 (line 99) | function _24(e){
  function _27 (line 137) | function _27(t){
  function _29 (line 140) | function _29(_30,_31,_32,_33){
  function _3a (line 192) | function _3a(_3b,row,_3c){
  function _38 (line 214) | function _38(_40,row,_41){
  function _39 (line 221) | function _39(_43,row){
  function _47 (line 229) | function _47(row){
  function _49 (line 260) | function _49(_4a,_4b){
  function _4e (line 296) | function _4e(_4f,_50){
  function _56 (line 308) | function _56(_57,_58,_59,_5a,_5b){
  function _15 (line 361) | function _15(_63,_64,_65,_66,_67){
  function _6e (line 404) | function _6e(_6f){
  function _71 (line 408) | function _71(_72){
  function _46 (line 411) | function _46(_73,_74){
  function _1b (line 419) | function _1b(_75,_76){
  function _7b (line 431) | function _7b(_7c,_7d){
  function _37 (line 437) | function _37(_80,_81){
  function _86 (line 449) | function _86(_87,_88){
  function _8a (line 481) | function _8a(_8b,_8c){
  function _28 (line 532) | function _28(_91,_92){
  function _94 (line 542) | function _94(_95,_96){
  function _99 (line 552) | function _99(_9a,_9b){
  function _9e (line 562) | function _9e(_9f,_a0){
  function _a2 (line 575) | function _a2(_a3,_a4){
  function _a9 (line 595) | function _a9(_aa,_ab){
  function _b5 (line 628) | function _b5(_b6,_b7){
  function _bb (line 642) | function _bb(_bc){
  function _ee (line 937) | function _ee(_ef,_f0,_f1){
  function _10d (line 1114) | function _10d(_10e){
  function del (line 1150) | function del(id){
  function _118 (line 1185) | function _118(_119,_11a){
  function _11e (line 1216) | function _11e(rows){
  function _124 (line 1258) | function _124(_126,rows){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.validatebox.js
  function _1 (line 11) | function _1(_2){
  function _3 (line 14) | function _3(_4){
  function _6 (line 27) | function _6(_7){
  function _a (line 37) | function _a(e){
  function _f (line 69) | function _f(e){
  function _13 (line 89) | function _13(e){
  function _16 (line 94) | function _16(e){
  function _19 (line 101) | function _19(_1a,_1b,_1c){
  function _1f (line 113) | function _1f(_20){
  function _30 (line 187) | function _30(_31,_32){
  function _34 (line 198) | function _34(_35,_36){

FILE: gmall-manage-web/src/main/resources/static/esayui/plugins/jquery.window.js
  function _1 (line 11) | function _1(_2,_3){
  function _5 (line 26) | function _5(_6,_7){
  function _b (line 40) | function _b(_c,_d){
  function _11 (line 54) | function _11(_12){
  function _19 (line 137) | function _19(_1a,top,_1b,_1c){
  function _21 (line 171) | function _21(_22){

FILE: gmall-manage-web/src/main/resources/static/webuploader/webuploader.js
  function uncurryThis (line 205) | function uncurryThis( fn ) {
  function bindFn (line 211) | function bindFn( fn, context ) {
  function createObject (line 217) | function createObject( proto ) {
  function findHandlers (line 506) | function findHandlers( arr, name, callback, context ) {
  function eachEvent (line 516) | function eachEvent( events, callback, iterator ) {
  function triggerHanders (line 523) | function triggerHanders( events, args ) {
  function Uploader (line 732) | function Uploader( opts ) {
  function Runtime (line 930) | function Runtime( options ) {
  function RuntimeClient (line 1062) | function RuntimeClient( component, standalone ) {
  function DragAndDrop (line 1168) | function DragAndDrop( opts ) {
  function isArrayLike (line 1216) | function isArrayLike( obj ) {
  function Widget (line 1233) | function Widget( uploader ) {
  function FilePaste (line 1525) | function FilePaste( opts ) {
  function Blob (line 1606) | function Blob( ruid, source ) {
  function File (line 1656) | function File( ruid, file ) {
  function FilePicker (line 1691) | function FilePicker( opts ) {
  function Image (line 1964) | function Image( opts ) {
  function gid (line 2374) | function gid() {
  function WUFile (line 2385) | function WUFile( source ) {
  function Queue (line 2563) | function Queue() {
  function Transport (line 3163) | function Transport( opts ) {
  function CuteFile (line 3376) | function CuteFile( file, chunkSize ) {
  function hashString (line 4316) | function hashString( str ) {
  function Md5 (line 4369) | function Md5() {
  function CompBase (line 4476) | function CompBase( owner, runtime ) {
  function Html5Runtime (line 4508) | function Html5Runtime() {
  function JPEGEncoder (line 5547) | function JPEGEncoder(quality) {
  function detectVerticalSquash (line 6614) | function detectVerticalSquash( img, iw, ih ) {
  function detectSubsampling (line 6666) | function detectSubsampling( img ) {
  function getFlashVersion (line 7557) | function getFlashVersion() {
  function FlashRuntime (line 7575) | function FlashRuntime() {
  function send (line 8048) | function send(data) {

FILE: gmall-manage-web/src/test/java/com/lee/gmall/manage/GmallManageWebApplicationTests.java
  class GmallManageWebApplicationTests (line 17) | @RunWith(SpringRunner.class)
    method contextLoads (line 21) | @Test

FILE: gmall-order-service/src/main/java/com/lee/gmall/GmallOrderServiceApplication.java
  class GmallOrderServiceApplication (line 7) | @SpringBootApplication
    method main (line 11) | public static void main(String[] args) {

FILE: gmall-order-service/src/main/java/com/lee/gmall/order/mapper/OrderDetailMapper.java
  type OrderDetailMapper (line 6) | public interface OrderDetailMapper extends Mapper<OrderDetail> {

FILE: gmall-order-service/src/main/java/com/lee/gmall/order/mapper/OrderInfoMapper.java
  type OrderInfoMapper (line 6) | public interface OrderInfoMapper extends Mapper<OrderInfo> {

FILE: gmall-order-service/src/main/java/com/lee/gmall/order/service/impl/OrderServiceImpl.java
  class OrderServiceImpl (line 16) | @Service
    method genTradeCode (line 26) | @Override
    method checkTradeCode (line 39) | @Override
    method saveOrder (line 55) | @Override

FILE: gmall-order-service/src/test/java/com/lee/gmall/order/GmallOrderServiceImplApplicationTests.java
  class GmallOrderServiceImplApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-order-web/src/main/java/com/lee/gmall/GmallOrderWebApplication.java
  class GmallOrderWebApplication (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: gmall-order-web/src/main/java/com/lee/gmall/order/controller/OrderController.java
  class OrderController (line 24) | @Controller
    method submitOrder (line 36) | @LoginRequire(ifNeedSuccess = true)
    method toTrade (line 114) | @LoginRequire(ifNeedSuccess = true)
    method getTotalPrice (line 146) | private BigDecimal getTotalPrice(List<CartInfo> cartInfos) {

FILE: gmall-order-web/src/test/java/com/lee/gmall/order/GmallOrderWebApplicationTests.java
  class GmallOrderWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-passport-web/src/main/java/com/lee/gmall/passport/GmallPassportWebApplication.java
  class GmallPassportWebApplication (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: gmall-passport-web/src/main/java/com/lee/gmall/passport/controller/PassportController.java
  class PassportController (line 24) | @Controller
    method index (line 37) | @RequestMapping("index")
    method login (line 47) | @RequestMapping("login")
    method verify (line 83) | @RequestMapping("verify")

FILE: gmall-passport-web/src/main/resources/static/js/zepto.js
  function type (line 85) | function type(obj) {
  function isFunction (line 90) | function isFunction(value) { return type(value) == "function" }
  function isWindow (line 91) | function isWindow(obj)     { return obj != null && obj == obj.window }
  function isDocument (line 92) | function isDocument(obj)   { return obj != null && obj.nodeType == obj.D...
  function isObject (line 93) | function isObject(obj)     { return type(obj) == "object" }
  function isPlainObject (line 94) | function isPlainObject(obj) {
  function isArray (line 97) | function isArray(value) { return value instanceof Array }
  function likeArray (line 98) | function likeArray(obj) { return typeof obj.length == 'number' }
  function compact (line 100) | function compact(array) { return filter.call(array, function(item){ retu...
  function flatten (line 101) | function flatten(array) { return array.length > 0 ? $.fn.concat.apply([]...
  function dasherize (line 103) | function dasherize(str) {
  function classRE (line 112) | function classRE(name) {
  function maybeAddPx (line 117) | function maybeAddPx(name, value) {
  function defaultDisplay (line 121) | function defaultDisplay(nodeName) {
  function children (line 134) | function children(element) {
  function extend (line 221) | function extend(target, source, deep) {
  function filtered (line 260) | function filtered(nodes, selector) {
  function funcArg (line 268) | function funcArg(context, arg, idx, payload) {
  function setAttribute (line 272) | function setAttribute(node, name, value) {
  function className (line 277) | function className(node, value){
  function deserializeValue (line 292) | function deserializeValue(value) {
  function traverseNode (line 761) | function traverseNode(node, fun) {
  function detect (line 832) | function detect(ua){
  function zid (line 893) | function zid(element) {
  function findHandlers (line 896) | function findHandlers(element, event, fn, selector) {
  function parse (line 907) | function parse(event) {
  function matcherFor (line 911) | function matcherFor(ns) {
  function eachEvent (line 915) | function eachEvent(events, fn, iterator){
  function eventCapture (line 920) | function eventCapture(handler, captureSetting) {
  function realEvent (line 926) | function realEvent(type) {
  function add (line 930) | function add(element, events, fn, selector, getDelegate, capture){
  function remove (line 954) | function remove(element, events, fn, selector, capture){
  function createProxy (line 1008) | function createProxy(event) {
  function fix (line 1024) | function fix(event) {
  function triggerAndReturn (line 1149) | function triggerAndReturn(context, eventName, data) {
  function triggerGlobal (line 1156) | function triggerGlobal(settings, context, eventName, data) {
  function ajaxStart (line 1163) | function ajaxStart(settings) {
  function ajaxStop (line 1166) | function ajaxStop(settings) {
  function ajaxBeforeSend (line 1171) | function ajaxBeforeSend(xhr, settings) {
  function ajaxSuccess (line 1179) | function ajaxSuccess(data, xhr, settings) {
  function ajaxError (line 1186) | function ajaxError(error, type, xhr, settings) {
  function ajaxComplete (line 1193) | function ajaxComplete(status, xhr, settings) {
  function empty (line 1201) | function empty() {}
  function mimeToDataType (line 1281) | function mimeToDataType(mime) {
  function appendQuery (line 1289) | function appendQuery(url, query) {
  function serializeData (line 1294) | function serializeData(options) {
  function parseArguments (line 1381) | function parseArguments(url, data, success, dataType) {
  function serialize (line 1425) | function serialize(params, obj, traditional, scope){
  function dasherize (line 1502) | function dasherize(str) { return downcase(str.replace(/([a-z])([A-Z])/, ...
  function downcase (line 1503) | function downcase(str) { return str.toLowerCase() }
  function normalizeEvent (line 1504) | function normalizeEvent(name) { return eventPrefix ? eventPrefix + name ...
  function anim (line 1599) | function anim(el, speed, opacity, scale, callback) {
  function hide (line 1609) | function hide(el, speed, scale, callback) {
  function getData (line 1677) | function getData(node, name) {
  function setData (line 1691) | function setData(node, name, value) {
  function attributeData (line 1699) | function attributeData(node) {
  function visible (line 1756) | function visible(elem){
  function process (line 1789) | function process(sel, fn) {
  function parentIfText (line 1844) | function parentIfText(node) {
  function swipeDirection (line 1848) | function swipeDirection(x1, x2, y1, y2) {
  function longTap (line 1853) | function longTap() {
  function cancelLongTap (line 1861) | function cancelLongTap() {
  function cancelAll (line 1866) | function cancelAll() {

FILE: gmall-passport-web/src/test/java/com/lee/gmall/passport/GmallPassportWebApplicationTests.java
  class GmallPassportWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-service-util/src/main/java/com/lee/gmall/util/RedisConfig.java
  class RedisConfig (line 7) | @Configuration
    method getRedisUtil (line 20) | @Bean

FILE: gmall-service-util/src/main/java/com/lee/gmall/util/RedisUtil.java
  class RedisUtil (line 7) | public class RedisUtil {
    method initPool (line 11) | public void initPool(String host,int port ,int database){
    method getJedis (line 21) | public Jedis getJedis(){

FILE: gmall-user-web/src/main/java/com/lee/gmall/user/GmallUserWebApplication.java
  class GmallUserWebApplication (line 6) | @SpringBootApplication
    method main (line 9) | public static void main(String[] args) {

FILE: gmall-user-web/src/main/java/com/lee/gmall/user/controller/UserController.java
  class UserController (line 12) | @RestController
    method userInfoList (line 18) | @RequestMapping("/userInfoList")

FILE: gmall-user-web/src/test/java/com/lee/gmall/user/GmallUserWebApplicationTests.java
  class GmallUserWebApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-user/src/main/java/com/lee/gmall/GmallUserApplication.java
  class GmallUserApplication (line 8) | @SpringBootApplication
    method main (line 12) | public static void main(String[] args) {

FILE: gmall-user/src/main/java/com/lee/gmall/user/mapper/UserAddressMapper.java
  type UserAddressMapper (line 6) | public interface UserAddressMapper extends Mapper<UserAddress> {

FILE: gmall-user/src/main/java/com/lee/gmall/user/mapper/UserInfoMapper.java
  type UserInfoMapper (line 7) | public interface UserInfoMapper extends Mapper<UserInfo> {

FILE: gmall-user/src/main/java/com/lee/gmall/user/service/impl/UserServiceImpl.java
  class UserServiceImpl (line 16) | @Service
    method userInfoList (line 27) | @Override
    method login (line 32) | @Override
    method getUserAddressList (line 44) | @Override

FILE: gmall-user/src/test/java/com/lee/gmall/user/GmallUserApplicationTests.java
  class GmallUserApplicationTests (line 8) | @RunWith(SpringRunner.class)
    method contextLoads (line 12) | @Test

FILE: gmall-web-util/src/main/java/com/lee/gmall/config/WebMvcConfiguration.java
  class WebMvcConfiguration (line 10) | @Configuration
    method addInterceptors (line 15) | @Override

FILE: gmall-web-util/src/main/java/com/lee/gmall/interceptor/AuthInterceptor.java
  class AuthInterceptor (line 17) | @Component
    method preHandle (line 21) | public boolean preHandle(HttpServletRequest request, HttpServletRespon...

FILE: gmall-web-util/src/main/java/com/lee/gmall/util/CookieUtil.java
  class CookieUtil (line 14) | public class CookieUtil {
    method getCookieValue (line 24) | public static String getCookieValue(HttpServletRequest request, String...
    method setCookie (line 57) | public static   void setCookie(HttpServletRequest request, HttpServlet...
    method getDomainName (line 83) | private static final String getDomainName(HttpServletRequest request) {
    method deleteCookie (line 121) | public static void deleteCookie(HttpServletRequest request, HttpServle...

FILE: gmall-web-util/src/main/java/com/lee/gmall/util/JwtUtil.java
  class JwtUtil (line 16) | public class JwtUtil {
    method main (line 18) | public static void main(String[] args){
    method encode (line 30) | public static String encode(String key,Map map,String salt){
    method decode (line 50) | public static  Map decode(String key,String token,String salt)throws S...

FILE: gmall-web-util/src/main/java/com/lee/gmall/util/PassportUtil.java
  class PassportUtil (line 7) | public  class PassportUtil {
    method getRequestAddr (line 9) | public static String getRequestAddr(HttpServletRequest request) {

FILE: gmall4.sql
  type `ad_banner` (line 22) | CREATE TABLE `ad_banner` (
  type `base_attr_info` (line 33) | CREATE TABLE `base_attr_info` (
  type `base_attr_value` (line 45) | CREATE TABLE `base_attr_value` (
  type `base_catalog1` (line 57) | CREATE TABLE `base_catalog1` (
  type `base_catalog1_tm` (line 67) | CREATE TABLE `base_catalog1_tm` (
  type `base_catalog2` (line 78) | CREATE TABLE `base_catalog2` (
  type `base_catalog3` (line 89) | CREATE TABLE `base_catalog3` (
  type `base_dict` (line 100) | CREATE TABLE `base_dict` (
  type `base_sale_attr` (line 111) | CREATE TABLE `base_sale_attr` (
  type `base_trademark` (line 121) | CREATE TABLE `base_trademark` (
  type `cart_info` (line 133) | CREATE TABLE `cart_info` (
  type `order_detail` (line 151) | CREATE TABLE `order_detail` (
  type `order_info` (line 169) | CREATE TABLE `order_info` (
  type `order_log` (line 195) | CREATE TABLE `order_log` (
  type `order_logistics` (line 207) | CREATE TABLE `order_logistics` (
  type `payment_info` (line 220) | CREATE TABLE `payment_info` (
  type `sku_attr_value` (line 239) | CREATE TABLE `sku_attr_value` (
  type `sku_image` (line 251) | CREATE TABLE `sku_image` (
  type `sku_info` (line 265) | CREATE TABLE `sku_info` (
  type `sku_sale_attr_value` (line 282) | CREATE TABLE `sku_sale_attr_value` (
  type `spu_color` (line 296) | CREATE TABLE `spu_color` (
  type `spu_image` (line 309) | CREATE TABLE `spu_image` (
  type `spu_info` (line 321) | CREATE TABLE `spu_info` (
  type `spu_poster` (line 334) | CREATE TABLE `spu_poster` (
  type `spu_sale_attr` (line 346) | CREATE TABLE `spu_sale_attr` (
  type `spu_sale_attr_value` (line 358) | CREATE TABLE `spu_sale_attr_value` (
  type `spu_size` (line 370) | CREATE TABLE `spu_size` (
  type `spu_version` (line 382) | CREATE TABLE `spu_version` (
  type `user_address` (line 394) | CREATE TABLE `user_address` (
  type `user_details` (line 408) | CREATE TABLE `user_details` (
  type `user_info` (line 424) | CREATE TABLE `user_info` (
  type `ware_info` (line 441) | CREATE TABLE `ware_info` (
  type `ware_order_task` (line 454) | CREATE TABLE `ware_order_task` (
  type `ware_order_task_detail` (line 475) | CREATE TABLE `ware_order_task_detail` (
  type `ware_sku` (line 489) | CREATE TABLE `ware_sku` (

FILE: 类目.sql
  type `base_catalog1` (line 23) | CREATE TABLE `base_catalog1` (
  type `base_catalog2` (line 180) | CREATE TABLE `base_catalog2` (
Condensed preview — 816 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,752K chars).
[
  {
    "path": ".gitattributes",
    "chars": 89,
    "preview": "*.js linguist-language=java\n\n*.css linguist-language=java\n\n*.html linguist-language=java\n"
  },
  {
    "path": "README.md",
    "chars": 2,
    "preview": "\n\n"
  },
  {
    "path": "gmall-api/pom.xml",
    "chars": 924,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/AdBanner.java",
    "chars": 494,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class AdBanner {\n\n  private long id;\n  private String adDesc;\n  private String file"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrInfo.java",
    "chars": 1287,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.GenerationType;\nimport ja"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseAttrValue.java",
    "chars": 738,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class BaseAttrValue implements Serializable {\n\n  priva"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1.java",
    "chars": 377,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class BaseCatalog1 implements Serializable {\n\n  privat"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog1Tm.java",
    "chars": 494,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class BaseCatalog1Tm {\n\n  private long id;\n  private long tmId;\n  private String ca"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog2.java",
    "chars": 557,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class BaseCatalog2 implements Serializable {\n\n  privat"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseCatalog3.java",
    "chars": 557,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class BaseCatalog3 implements Serializable {\n\n  privat"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseDict.java",
    "chars": 485,
    "preview": "package com.lee.gmall.bean;\n\npublic class BaseDict {\n\n  private String id;\n  private String parentId;\n  private String n"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseSaleAttr.java",
    "chars": 377,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class BaseSaleAttr implements Serializable {\n\n  privat"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/BaseTrademark.java",
    "chars": 658,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class BaseTrademark {\n\n  private long id;\n  private String tmName;\n  private String"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/CartInfo.java",
    "chars": 1723,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\n\npublic class CartInfo implements"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/Crumb.java",
    "chars": 427,
    "preview": "package com.lee.gmall.bean;\n\npublic class Crumb {\n\n    private String valueName;\n\n    private String urlParam;\n\n    publ"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/OrderDetail.java",
    "chars": 1979,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.Transient;\nimport java.io.Serializable;\nimport java.math.BigDecima"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/OrderInfo.java",
    "chars": 4045,
    "preview": "package com.lee.gmall.bean;\n\nimport com.lee.gmall.bean.enums.PaymentWay;\n\nimport javax.persistence.GeneratedValue;\nimpor"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/OrderLog.java",
    "chars": 732,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class OrderLog {\n\n  private long id;\n  private long orderId;\n  private java.sql.Tim"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/OrderLogistics.java",
    "chars": 953,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class OrderLogistics {\n\n  private long id;\n  private long orderId;\n  private String"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/PaymentInfo.java",
    "chars": 2150,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class PaymentInfo {\n\n  private long id;\n  private String outTradeNo;\n  private Stri"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuAttrValue.java",
    "chars": 695,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class SkuAttrValue implements Serializable {\n\n  privat"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuImage.java",
    "chars": 1036,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class SkuImage implements Serializable {\n\n  private St"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuInfo.java",
    "chars": 2549,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.Id;\nimport javax.persiste"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuLsAttrValue.java",
    "chars": 349,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.Column;\nimport javax.persistence.Id;\nimport java.io.Serializable;\n"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuLsInfo.java",
    "chars": 1682,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\nimport java.math.BigDecimal;\nimport java.util.List;\n\npublic cl"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuLsParam.java",
    "chars": 971,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class SkuLsParam implements Serializable{\n\n    String "
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuLsResult.java",
    "chars": 728,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\nimport java.util.List;\n\npublic class SkuLsResult implements Se"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SkuSaleAttrValue.java",
    "chars": 1206,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class SkuSaleAttrValue implements Serializable {\n\n  pr"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuColor.java",
    "chars": 799,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class SpuColor {\n\n  private long id;\n  private long spuId;\n  private String color;\n"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuImage.java",
    "chars": 691,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class SpuImage implements Serializable {\n\n  private St"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuInfo.java",
    "chars": 1626,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.GeneratedValue;\nimport javax.persistence.Id;\nimport javax.persiste"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuPoster.java",
    "chars": 648,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class SpuPoster {\n\n  private long id;\n  private long spuId;\n  private String fileNa"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttr.java",
    "chars": 1451,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.Transient;\nimport java.io.Serializable;\nimport java.util.List;\nimp"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuSaleAttrValue.java",
    "chars": 1039,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.Transient;\nimport java.io.Serializable;\n\npublic class SpuSaleAttrV"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuSize.java",
    "chars": 646,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class SpuSize {\n\n  private long id;\n  private long spuId;\n  private String spuSize;"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/SpuVersion.java",
    "chars": 670,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class SpuVersion {\n\n  private long id;\n  private long spuId;\n  private String spuVe"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/UserAddress.java",
    "chars": 1089,
    "preview": "package com.lee.gmall.bean;\n\nimport java.io.Serializable;\n\npublic class UserAddress implements Serializable {\n\n  private"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/UserDetails.java",
    "chars": 1324,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class UserDetails {\n\n  private long id;\n  private long idCard;\n  private long userI"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/UserInfo.java",
    "chars": 1819,
    "preview": "package com.lee.gmall.bean;\n\nimport javax.persistence.Transient;\nimport java.io.Serializable;\nimport java.util.List;\n\npu"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/WareInfo.java",
    "chars": 639,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class WareInfo {\n\n  private long id;\n  private String name;\n  private String addres"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTask.java",
    "chars": 2372,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class WareOrderTask {\n\n  private long id;\n  private long orderId;\n  private String "
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/WareOrderTaskDetail.java",
    "chars": 930,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class WareOrderTaskDetail {\n\n  private long id;\n  private long skuId;\n  private Str"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/WareSku.java",
    "chars": 988,
    "preview": "package com.lee.gmall.bean;\n\n\npublic class WareSku {\n\n  private long id;\n  private long skuId;\n  private long warehouseI"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/enums/OrderStatus.java",
    "chars": 493,
    "preview": "package com.lee.gmall.bean.enums;\n\n/**\n * @param\n * @return\n */\npublic enum OrderStatus {\n    UNPAID(\"未支付\"),\n    PAID(\"已"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentStatus.java",
    "chars": 264,
    "preview": "package com.lee.gmall.bean.enums;\n\n/**\n * @param\n * @return\n */\npublic enum PaymentStatus {\n\n    UNPAID(\"支付中\"),\n    PAID"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/enums/PaymentWay.java",
    "chars": 385,
    "preview": "package com.lee.gmall.bean.enums;\n\n/**\n * @param\n * @return\n */\npublic enum PaymentWay {\n    ONLINE(\"在线支付\"),\n    OUTLINE"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/bean/enums/ProcessStatus.java",
    "chars": 1062,
    "preview": "package com.lee.gmall.bean.enums;\n\n/**\n * @param\n * @return\n */\npublic enum ProcessStatus {\n    UNPAID(\"未支付\", OrderStatu"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/AttrService.java",
    "chars": 518,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.BaseAttrInfo;\nimport com.lee.gmall.bean.BaseAttrValue;\n\nimport"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/CartService.java",
    "chars": 562,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.CartInfo;\n\nimport java.util.List;\n\npublic interface CartServic"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/CatalogService.java",
    "chars": 363,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.BaseCatalog1;\nimport com.lee.gmall.bean.BaseCatalog2;\nimport c"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/OrderService.java",
    "chars": 248,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.OrderInfo;\n\npublic interface OrderService {\n    String genTrad"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/SearchService.java",
    "chars": 219,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.SkuLsInfo;\nimport com.lee.gmall.bean.SkuLsParam;\n\nimport java."
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/SkuService.java",
    "chars": 402,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.SkuInfo;\n\nimport java.math.BigDecimal;\nimport java.util.List;\n"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/SpuService.java",
    "chars": 616,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.*;\n\nimport java.util.List;\nimport java.util.Map;\n\npublic inter"
  },
  {
    "path": "gmall-api/src/main/java/com/lee/gmall/service/UserService.java",
    "chars": 355,
    "preview": "package com.lee.gmall.service;\n\nimport com.lee.gmall.bean.UserAddress;\nimport com.lee.gmall.bean.UserInfo;\nimport org.sp"
  },
  {
    "path": "gmall-cart-service/pom.xml",
    "chars": 1400,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-cart-service/src/main/java/com/lee/gmall/cart/GmallCartServiceApplication.java",
    "chars": 545,
    "preview": "package com.lee.gmall.cart;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconf"
  },
  {
    "path": "gmall-cart-service/src/main/java/com/lee/gmall/cart/mapper/CartInfoMapper.java",
    "chars": 174,
    "preview": "package com.lee.gmall.cart.mapper;\n\nimport com.lee.gmall.bean.CartInfo;\nimport tk.mybatis.mapper.common.Mapper;\n\npublic "
  },
  {
    "path": "gmall-cart-service/src/main/java/com/lee/gmall/cart/service/impl/CartServiceImpl.java",
    "chars": 4611,
    "preview": "package com.lee.gmall.cart.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Service;\nimport com.alibaba.fastjso"
  },
  {
    "path": "gmall-cart-service/src/main/resources/application.properties",
    "chars": 621,
    "preview": "server.port=8074\n\n#jdbc\nspring.datasource.username=root\nspring.datasource.password=password\nspring.datasource.url=jdbc:m"
  },
  {
    "path": "gmall-cart-service/src/test/java/com/lee/gmall/cart/GmallCartServiceApplicationTests.java",
    "chars": 354,
    "preview": "package com.lee.gmall.cart;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.tes"
  },
  {
    "path": "gmall-cart-web/pom.xml",
    "chars": 1386,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-cart-web/src/main/java/com/lee/gmall/GmallCartWebApplication.java",
    "chars": 332,
    "preview": "package com.lee.gmall;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconfigure"
  },
  {
    "path": "gmall-cart-web/src/main/java/com/lee/gmall/cart/controller/CartController.java",
    "chars": 6975,
    "preview": "package com.lee.gmall.cart.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.alibaba.fastjso"
  },
  {
    "path": "gmall-cart-web/src/main/resources/application.properties",
    "chars": 439,
    "preview": "server.port=8084\n\n#zookeeper\nspring.dubbo.registry.address=192.168.159.129:2181\nspring.dubbo.registry.protocol=zookeeper"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/bootstrap/css/bootstrap.css",
    "chars": 147430,
    "preview": "/*!\n * Bootstrap v3.3.5 (http://getbootstrap.com)\n * Copyright 2011-2015 Twitter, Inc.\n * Licensed under MIT (https://gi"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/bootstrap/js/bootstrap.js",
    "chars": 69707,
    "preview": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/One_bdyStyle.css",
    "chars": 18513,
    "preview": "*{\n  margin:0;\n  padding:0;\n  font-size:12px;\n  box-sizing: border-box;\n}\nbody{\n   user-select: none;\n}\nul,li{\n  list-st"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/One_mainFoot.css",
    "chars": 5140,
    "preview": "* {\n\tmargin: 0;\n\tpadding: 0;\n\tbox-sizing: border-box;\n\tfont-size: 12px;\n}\n\nul,\nli {\n\tlist-style: none;\n}\n\n.one_main {\n\tw"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/HELP-US-OUT.txt",
    "chars": 323,
    "preview": "I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,\nFort Awes"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/css/font-awesome(1).css",
    "chars": 37414,
    "preview": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/lice"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/animated.less",
    "chars": 713,
    "preview": "// Animated Icons\n// --------------------------\n\n.@{fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite linea"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/bordered-pulled.less",
    "chars": 585,
    "preview": "// Bordered & Pulled\n// -------------------------\n\n.@{fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: sol"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/core.less",
    "chars": 452,
    "preview": "// Base Class Definition\n// -------------------------\n\n.@{fa-css-prefix} {\n  display: inline-block;\n  font: normal norma"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/fixed-width.less",
    "chars": 119,
    "preview": "// Fixed Width Icons\n// -------------------------\n.@{fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/font-awesome.less",
    "chars": 495,
    "preview": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/lice"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/icons.less",
    "chars": 49712,
    "preview": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters th"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/larger.less",
    "chars": 370,
    "preview": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.@{fa-css-pre"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/list.less",
    "chars": 377,
    "preview": "// List Icons\n// -------------------------\n\n.@{fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: @fa-li-width;\n  lis"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/mixins.less",
    "chars": 1603,
    "preview": "// Mixins\n// --------------------------\n\n.fa-icon() {\n  display: inline-block;\n  font: normal normal normal @fa-font-siz"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/path.less",
    "chars": 771,
    "preview": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('@{fa-font-path}/fo"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/rotated-flipped.less",
    "chars": 622,
    "preview": "// Rotated & Flipped Icons\n// -------------------------\n\n.@{fa-css-prefix}-rotate-90  { .fa-icon-rotate(90deg, 1);  }\n.@"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/screen-reader.less",
    "chars": 118,
    "preview": "// Screen Readers\n// -------------------------\n\n.sr-only { .sr-only(); }\n.sr-only-focusable { .sr-only-focusable(); }\n"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/stacked.less",
    "chars": 476,
    "preview": "// Stacked Icons\n// -------------------------\n\n.@{fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;\n"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/less/variables.less",
    "chars": 22563,
    "preview": "// Variables\n// --------------------------\n\n@fa-font-path:        \"../fonts\";\n@fa-font-size-base:   14px;\n@fa-line-heigh"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_animated.scss",
    "chars": 715,
    "preview": "// Spinning Icons\n// --------------------------\n\n.#{$fa-css-prefix}-spin {\n  -webkit-animation: fa-spin 2s infinite line"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_bordered-pulled.scss",
    "chars": 592,
    "preview": "// Bordered & Pulled\n// -------------------------\n\n.#{$fa-css-prefix}-border {\n  padding: .2em .25em .15em;\n  border: so"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_core.scss",
    "chars": 459,
    "preview": "// Base Class Definition\n// -------------------------\n\n.#{$fa-css-prefix} {\n  display: inline-block;\n  font: normal norm"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_fixed-width.scss",
    "chars": 120,
    "preview": "// Fixed Width Icons\n// -------------------------\n.#{$fa-css-prefix}-fw {\n  width: (18em / 14);\n  text-align: center;\n}\n"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_icons.scss",
    "chars": 50498,
    "preview": "/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\n   readers do not read off random characters th"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_larger.scss",
    "chars": 375,
    "preview": "// Icon Sizes\n// -------------------------\n\n/* makes the font 33% larger relative to the icon container */\n.#{$fa-css-pr"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_list.scss",
    "chars": 378,
    "preview": "// List Icons\n// -------------------------\n\n.#{$fa-css-prefix}-ul {\n  padding-left: 0;\n  margin-left: $fa-li-width;\n  li"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_mixins.scss",
    "chars": 1637,
    "preview": "// Mixins\n// --------------------------\n\n@mixin fa-icon() {\n  display: inline-block;\n  font: normal normal normal #{$fa-"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_path.scss",
    "chars": 783,
    "preview": "/* FONT PATH\n * -------------------------- */\n\n@font-face {\n  font-family: 'FontAwesome';\n  src: url('#{$fa-font-path}/f"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_rotated-flipped.scss",
    "chars": 672,
    "preview": "// Rotated & Flipped Icons\n// -------------------------\n\n.#{$fa-css-prefix}-rotate-90  { @include fa-icon-rotate(90deg, "
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_screen-reader.scss",
    "chars": 134,
    "preview": "// Screen Readers\n// -------------------------\n\n.sr-only { @include sr-only(); }\n.sr-only-focusable { @include sr-only-f"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_stacked.scss",
    "chars": 482,
    "preview": "// Stacked Icons\n// -------------------------\n\n.#{$fa-css-prefix}-stack {\n  position: relative;\n  display: inline-block;"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/_variables.scss",
    "chars": 22644,
    "preview": "// Variables\n// --------------------------\n\n$fa-font-path:        \"../fonts\" !default;\n$fa-font-size-base:   14px !defau"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/font-awesome-4.7.0/scss/font-awesome.scss",
    "chars": 430,
    "preview": "/*!\n *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome\n *  License - http://fontawesome.io/lice"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/index.css",
    "chars": 3683,
    "preview": "*{\n\tmargin: 0;\n\tpadding: 0;\n\tbox-sizing: border-box;\n}\nul{\n\tlist-style: none;\n\n}\n.header-left>li:first-child img{\n\tmargi"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/css/success.css",
    "chars": 63712,
    "preview": "* {\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n  text-decoration: none; }\n\nol,\nul {\n  list-style: none; }\n\na {"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/js/index.js",
    "chars": 724,
    "preview": "$('.header-right li:nth-of-type(6)').hover(function(){\n\t$('.header-r-11').css('display','block')\t\n},function(){\n\t$('.hea"
  },
  {
    "path": "gmall-cart-web/src/main/resources/static/js/success.js",
    "chars": 3423,
    "preview": "//下拉菜单\n$(function(){\n\t$(\".hd_wrap_left>.dorpdown\").mouseover(function(){\n\t\t$(this).children(\".dd\").show();\n\t\t$(this).css"
  },
  {
    "path": "gmall-cart-web/src/main/resources/templates/One_JDshop.html",
    "chars": 49853,
    "preview": "<!DOCTYPE html>\n<html>\n\t<head>\n\t\t<meta charset=\"UTF-8\">\n\t\t<title>我的购物车-京东商城</title>\n\t\t<link rel=\"icon\" href=\"img/心04.png"
  },
  {
    "path": "gmall-cart-web/src/main/resources/templates/cartList.html",
    "chars": 22874,
    "preview": "<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:th=\"http://www.thymeleaf.or\" g>\n<head>\n    <meta charse"
  },
  {
    "path": "gmall-cart-web/src/main/resources/templates/cartListInner.html",
    "chars": 3561,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:th=\"http://www.thymeleaf.org\">\n<head>\n    <me"
  },
  {
    "path": "gmall-cart-web/src/main/resources/templates/success.html",
    "chars": 3048,
    "preview": "<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:th=\"http://www.thymeleaf.org\">\n<head>\n    <meta charset"
  },
  {
    "path": "gmall-cart-web/src/test/java/com/lee/gmall/cart/GmallCartWebApplicationTests.java",
    "chars": 350,
    "preview": "package com.lee.gmall.cart;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.tes"
  },
  {
    "path": "gmall-common-util/pom.xml",
    "chars": 2262,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\n<project xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apac"
  },
  {
    "path": "gmall-common-util/src/main/java/com/lee/gmall/util/HttpClientUtil.java",
    "chars": 2608,
    "preview": "package com.lee.gmall.util;\n\nimport org.apache.http.HttpEntity;\nimport org.apache.http.HttpStatus;\nimport org.apache.htt"
  },
  {
    "path": "gmall-item-web/pom.xml",
    "chars": 1388,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-item-web/src/main/java/com/lee/gmall/item/GmallItemWebApplication.java",
    "chars": 396,
    "preview": "package com.lee.gmall.item;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconf"
  },
  {
    "path": "gmall-item-web/src/main/java/com/lee/gmall/item/controller/ItemController.java",
    "chars": 2573,
    "preview": "package com.lee.gmall.item.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.alibaba.fastjso"
  },
  {
    "path": "gmall-item-web/src/main/resources/application.properties",
    "chars": 441,
    "preview": "server.port=8082\n\n#zookeeper\nspring.dubbo.registry.address=192.168.159.129:2181\nspring.dubbo.registry.protocol=zookeeper"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/bootstrap/css/bootstrap.css",
    "chars": 145894,
    "preview": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under MIT (https://gi"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/bootstrap/js/bootstrap.js",
    "chars": 69707,
    "preview": "/*!\n * Bootstrap v3.3.7 (http://getbootstrap.com)\n * Copyright 2011-2016 Twitter, Inc.\n * Licensed under the MIT license"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/js/index.js",
    "chars": 649,
    "preview": "$(\".header_ul_left>.glyphicon-map-marker\").mouseover(function(){\n\t$(this).children(\"#beijing\").show();\n}).mouseout(funct"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/js/jquery1.9.js",
    "chars": 92630,
    "preview": "/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license\n//@ sourceMappingURL=jquery.min.map\n*/(f"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/js/js.js",
    "chars": 7273,
    "preview": "$(function(){\n        //1.楼梯什么时候显示,800px scroll--->scrollTop\n        $(window).on('scroll',function(){\n            var $"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/scss/SHOUhou.css",
    "chars": 5874,
    "preview": "* {\n  margin: 0;\n  padding: 0;\n  list-style: none; }\n\nhtml {\n  width: 990px; }\n\n.oBox {\n  width: 990px; }\n  .oBox .shuoH"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/scss/header.css",
    "chars": 41048,
    "preview": "* {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  text-decoration: none; }\n\na {\n  text-decoration: none; }\n\n#max {\n  "
  },
  {
    "path": "gmall-item-web/src/main/resources/static/scss/main.css",
    "chars": 4394,
    "preview": "* {\n  margin: 0;\n  padding: 0;\n  text-decoration: none; }\n\nul li {\n  list-style: none; }\n\n.header {\n  z-index: 10; }\n\n.h"
  },
  {
    "path": "gmall-item-web/src/main/resources/static/scss/shop.css",
    "chars": 32032,
    "preview": "* {\n  margin: 0;\n  padding: 0;\n  list-style: none;\n  text-decoration: none; }\n\na {\n  text-decoration: none;\n  color: #66"
  },
  {
    "path": "gmall-item-web/src/main/resources/templates/demo.html",
    "chars": 661,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\" xmlns:th=\"http://www.thymeleaf.org\">\n<head>\n    <meta charset=\"UTF-8\">\n    <title>Title<"
  },
  {
    "path": "gmall-item-web/src/main/resources/templates/item.html",
    "chars": 51185,
    "preview": "<!DOCTYPE html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:th=\"http://www.thymeleaf.org\">\n\n<head>\n    <meta charse"
  },
  {
    "path": "gmall-item-web/src/test/java/com/lee/gmall/item/GmallItemWebApplicationTests.java",
    "chars": 350,
    "preview": "package com.lee.gmall.item;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.tes"
  },
  {
    "path": "gmall-list-service/pom.xml",
    "chars": 1988,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-list-service/src/main/java/com/lee/gmall/list/GmallListServiceApplication.java",
    "chars": 343,
    "preview": "package com.lee.gmall.list;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconf"
  },
  {
    "path": "gmall-list-service/src/main/java/com/lee/gmall/list/service/impl/SearchServiceImpl.java",
    "chars": 3714,
    "preview": "package com.lee.gmall.list.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.alibaba.dubbo"
  },
  {
    "path": "gmall-list-service/src/main/resources/application.properties",
    "chars": 605,
    "preview": "server.port=8093\n\n#jdbc\nspring.datasource.username=root\nspring.datasource.password=password\nspring.datasource.url=jdbc:m"
  },
  {
    "path": "gmall-list-service/src/test/java/com/lee/gmall/list/GmallListServiceApplicationTests.java",
    "chars": 1875,
    "preview": "package com.lee.gmall.list;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bean.SkuInfo;\nim"
  },
  {
    "path": "gmall-list-web/pom.xml",
    "chars": 1386,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-list-web/src/main/java/com/lee/gmall/list/GmallListWebApplication.java",
    "chars": 335,
    "preview": "package com.lee.gmall.list;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoconf"
  },
  {
    "path": "gmall-list-web/src/main/java/com/lee/gmall/list/controller/ListController.java",
    "chars": 4140,
    "preview": "package com.lee.gmall.list.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bean."
  },
  {
    "path": "gmall-list-web/src/main/resources/application.properties",
    "chars": 441,
    "preview": "server.port=8083\n\n#zookeeper\nspring.dubbo.registry.address=192.168.159.129:2181\nspring.dubbo.registry.protocol=zookeeper"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/css/GL.css",
    "chars": 638680,
    "preview": "@charset \"UTF-8\";\n* {\n  margin: 0;\n  padding: 0; }\n\nli,\nul {\n  list-style: none; }\n\nbody,\nhtml {\n  background: #F6F6F6;\n"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/img/saved_resource",
    "chars": 12151,
    "preview": "/* toolbar-1.0.0 common.css Date:2017-08-24 19:35:01 */\n@charset \"UTF-8\";.jdm-tbar-panel-header .close-panel,.jdm-tbar-p"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/img/saved_resource(1)",
    "chars": 171323,
    "preview": "/* jdf- jquery-1.6.4.js Date:2014-03-20 17:05:52 */\n!function(a,b){function k(a,c,d){if(d===b&&1===a.nodeType){var e=\"da"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/img/wl.js.下载",
    "chars": 31057,
    "preview": "/*Thu Nov 23 2017 09:43:28*/function setCookieMills(a,b,c){var d=new Date;d.setTime(d.getTime()+c);var e=window.document"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/catalogLoader.js",
    "chars": 1826,
    "preview": "$(function(){\n    $.getJSON(\"/index/json/catalog.json\",function (data) {\n        var ctgall=data;\n        $(\".header_mai"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/header.js",
    "chars": 3903,
    "preview": "$(\".header_banner1\").hover(function() {\n\t$(\".header_banner1_div\").stop(true).animate({\n\t\twidth:\"990px\"\n\t},500)\n}, functi"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/index.js",
    "chars": 2161,
    "preview": "\n\t\tvar swiper = new Swiper(\".banner\", {\n\t\t\tloop: true,\n\t\t\tautoplay: 1000,\n\t\t\tnextButton: \".swiper-button-next\",\n\t\t\tprevB"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/left,top.js",
    "chars": 3585,
    "preview": "$(window).scroll(function(event) {\n  var hi= $(document).scrollTop();\n   if(hi>825){\n     $(\".top_find\").stop().animate("
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/secend.js",
    "chars": 4030,
    "preview": "$(window).scroll(function(event) {\n  var hi = $(document).scrollTop();\n  console.log(hi)\n})\nvar myswiper = new Swiper(\"."
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/text.js",
    "chars": 687,
    "preview": "\n$(\".aibaobao_pt .pt_loge\").hover(function(){\n    $(this).children(\".jiant\").show()\n},function(){\n$(this).children(\".jia"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/js/zz.js",
    "chars": 6538,
    "preview": "//左右箭头显示、隐藏\n  //电脑数码\n  $(\".section_dnsm_gun\").hover(function() {\n    $(this).children().children('.section_dnsm_you').st"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/index/json/catalog.json",
    "chars": 140625,
    "preview": "{\n  \"11\": [\n    {\n      \"catalog1Id\": \"11\",\n      \"catalog3List\": [\n        {\n          \"catalog2Id\": \"61\",\n          \"i"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/css/index.css",
    "chars": 58883,
    "preview": "* {\n  margin: 0;\n  padding: 0; }\n\nli,\nul {\n  list-style: none; }\n\na {\n  color: #000; }\n\nbody,\nhtml {\n  background: #fff;"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/demo(1).css",
    "chars": 5746,
    "preview": "*{margin: 0;padding: 0;list-style: none;}\n/*\nKISSY CSS Reset\n理念:1. reset 的目的不是清除浏览器的默认样式,这仅是部分工作。清除和重置是紧密不可分的。\n2. reset "
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/demo_fontclass.html",
    "chars": 23457,
    "preview": "\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\"/>\n    <title>IconFont</title>\n    <link rel=\"stylesheet\" href=\""
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/demo_symbol(1).html",
    "chars": 32856,
    "preview": "\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\"/>\n    <title>IconFont</title>\n    <link rel=\"stylesheet\" href=\""
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/demo_unicode.html",
    "chars": 23534,
    "preview": "\n<!DOCTYPE html>\n<html>\n<head>\n    <meta charset=\"utf-8\"/>\n    <title>IconFont</title>\n    <link rel=\"stylesheet\" href=\""
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/iconfont.css",
    "chars": 5034,
    "preview": "\n@font-face {font-family: \"iconfont\";\n  src: url('iconfont.eot?t=1495179656039'); /* IE9*/\n  src: url('iconfont.eot?t=14"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/font/iconfont.js",
    "chars": 161047,
    "preview": "(function(window){var svgSprite=\"<svg>\"+\"\"+'<symbol id=\"icon-tianmaopaidui\" viewBox=\"0 0 1024 1024\">'+\"\"+'<path d=\"M861."
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/11dfaa4931a34735aed3e1129fb2f960.gif.baiduyun.downloading.cfg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/3c377af0aac147d081d7e155c442ba5e.gif.baiduyun.downloading.cfg",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/5716981.html",
    "chars": 160056,
    "preview": "<!-- shouji -->\n<!DOCTYPE HTML>\n<html lang=\"zh-CN\">\n<head>\n    <meta http-equiv=\"Content-Type\" content=\"text/html; chars"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/saved_resource",
    "chars": 12151,
    "preview": "/* toolbar-1.0.0 common.css Date:2017-08-24 19:35:01 */\n@charset \"UTF-8\";.jdm-tbar-panel-header .close-panel,.jdm-tbar-p"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/saved_resource(1)",
    "chars": 171323,
    "preview": "/* jdf- jquery-1.6.4.js Date:2014-03-20 17:05:52 */\n!function(a,b){function k(a,c,d){if(d===b&&1===a.nodeType){var e=\"da"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/img/wl.js.下载",
    "chars": 31057,
    "preview": "/*Thu Nov 23 2017 09:43:28*/function setCookieMills(a,b,c){var d=new Date;d.setTime(d.getTime()+c);var e=window.document"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/js/index.js",
    "chars": 1995,
    "preview": "\n//我的京东下拉\n$(\".header_wdjd\").hover(function() {\n    $(this).children(\".header_wdjd_txt\").stop(true).show(100)\n    $(this)"
  },
  {
    "path": "gmall-list-web/src/main/resources/static/list/js/jquery-1.12.4.js",
    "chars": 293430,
    "preview": "/*!\n * jQuery JavaScript Library v1.12.4\n * http://jquery.com/\n *\n * Includes Sizzle.js\n * http://sizzlejs.com/\n *\n * Co"
  },
  {
    "path": "gmall-list-web/src/main/resources/templates/index.html",
    "chars": 23769,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n  <meta charset=\"UTF-8\">\n  <meta name=\"viewport\" content=\"width=device-width, i"
  },
  {
    "path": "gmall-list-web/src/main/resources/templates/list.html",
    "chars": 20355,
    "preview": "<!doctype html>\n<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:th=\"http://www.thymeleaf.org\">\n<head>\n    <meta charset"
  },
  {
    "path": "gmall-list-web/src/test/java/com/lee/gmall/list/GmallListWebApplicationTests.java",
    "chars": 350,
    "preview": "package com.lee.gmall.list;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.tes"
  },
  {
    "path": "gmall-manage-service/pom.xml",
    "chars": 1402,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/GmallManageServiceApplication.java",
    "chars": 538,
    "preview": "package com.lee.gmall.manage;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoco"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseAttrInfoMapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseAttrInfo;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseAttrValueMapper.java",
    "chars": 375,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseAttrInfo;\nimport com.lee.gmall.bean.BaseAttrValue;\ni"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog1Mapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseCatalog1;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog2Mapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseCatalog2;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseCatalog3Mapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseCatalog3;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/BaseSaleAttrMapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.BaseSaleAttr;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuAttrValueMapper.java",
    "chars": 188,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SkuAttrValue;\nimport tk.mybatis.mapper.common.Mapper;\n\np"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuImageMapper.java",
    "chars": 176,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SkuImage;\nimport tk.mybatis.mapper.common.Mapper;\n\npubli"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuInfoMapper.java",
    "chars": 173,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SkuInfo;\nimport tk.mybatis.mapper.common.Mapper;\n\npublic"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SkuSaleAttrValueMapper.java",
    "chars": 200,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SkuSaleAttrValue;\nimport tk.mybatis.mapper.common.Mapper"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuImageMapper.java",
    "chars": 176,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SpuImage;\nimport tk.mybatis.mapper.common.Mapper;\n\npubli"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuInfoMapper.java",
    "chars": 174,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SpuInfo;\nimport tk.mybatis.mapper.common.Mapper;\n\npublic"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuSaleAttrMapper.java",
    "chars": 185,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SpuSaleAttr;\nimport tk.mybatis.mapper.common.Mapper;\n\npu"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/mapper/SpuSaleAttrValueMapper.java",
    "chars": 528,
    "preview": "package com.lee.gmall.manage.mapper;\n\nimport com.lee.gmall.bean.SkuInfo;\nimport com.lee.gmall.bean.SpuSaleAttr;\nimport c"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/AttrServiceImpl.java",
    "chars": 2747,
    "preview": "package com.lee.gmall.manage.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Service;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/CatalogServieImpl.java",
    "chars": 1535,
    "preview": "package com.lee.gmall.manage.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Service;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/SkuServiceImpl.java",
    "chars": 5356,
    "preview": "package com.lee.gmall.manage.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Service;\nimport com.alibaba.fastj"
  },
  {
    "path": "gmall-manage-service/src/main/java/com/lee/gmall/manage/service/impl/SpuServiceImpl.java",
    "chars": 4270,
    "preview": "package com.lee.gmall.manage.service.impl;\n\nimport com.alibaba.dubbo.config.annotation.Service;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-service/src/main/resources/application.properties",
    "chars": 649,
    "preview": "server.port=8071\n\n#jdbc\nspring.datasource.username=root\nspring.datasource.password=password\nspring.datasource.url=jdbc:m"
  },
  {
    "path": "gmall-manage-service/src/main/resources/mapper/BaseAttrValueMapper.xml",
    "chars": 849,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
  },
  {
    "path": "gmall-manage-service/src/main/resources/mapper/SpuSaleAttrValueMapper.xml",
    "chars": 2374,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
  },
  {
    "path": "gmall-manage-service/src/test/java/com/lee/gmall/manage/GmallManageServiceApplicationTests.java",
    "chars": 358,
    "preview": "package com.lee.gmall.manage;\n\nimport org.junit.Test;\nimport org.junit.runner.RunWith;\nimport org.springframework.boot.t"
  },
  {
    "path": "gmall-manage-web/pom.xml",
    "chars": 1581,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/GmallManageWebApplication.java",
    "chars": 947,
    "preview": "package com.lee.gmall.manage;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.autoco"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/AttrController.java",
    "chars": 1610,
    "preview": "package com.lee.gmall.manage.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/CatalogController.java",
    "chars": 1284,
    "preview": "package com.lee.gmall.manage.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/IndexController.java",
    "chars": 504,
    "preview": "package com.lee.gmall.manage.controller;\n\nimport org.springframework.stereotype.Controller;\nimport org.springframework.w"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/SkuController.java",
    "chars": 941,
    "preview": "package com.lee.gmall.manage.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/controller/SpuController.java",
    "chars": 2411,
    "preview": "package com.lee.gmall.manage.controller;\n\nimport com.alibaba.dubbo.config.annotation.Reference;\nimport com.lee.gmall.bea"
  },
  {
    "path": "gmall-manage-web/src/main/java/com/lee/gmall/manage/util/MyUploadUtil.java",
    "chars": 1679,
    "preview": "package com.lee.gmall.manage.util;\n\nimport org.csource.common.MyException;\nimport org.csource.fastdfs.ClientGlobal;\nimpo"
  },
  {
    "path": "gmall-manage-web/src/main/resources/application.properties",
    "chars": 442,
    "preview": "server.port=8081\n\n#zookeeper\nspring.dubbo.registry.address=192.168.159.129:2181\nspring.dubbo.registry.protocol=zookeeper"
  },
  {
    "path": "gmall-manage-web/src/main/resources/static/esayui/datagrid-detailview.js",
    "chars": 17484,
    "preview": "$.extend($.fn.datagrid.defaults, {\n\tautoUpdateDetail: true  // Define if update the row detail content when update a row"
  },
  {
    "path": "gmall-manage-web/src/main/resources/static/esayui/easyloader.js",
    "chars": 7213,
    "preview": "/**\n * EasyUI for jQuery 1.7.0\n * \n * Copyright (c) 2009-2018 www.jeasyui.com. All rights reserved.\n *\n * Licensed under"
  }
]

// ... and 616 more files (download for full content)

About this extraction

This page contains the full source code of the superlee1010/gmall GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 816 files (5.1 MB), approximately 1.4M tokens, and a symbol index with 1551 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!