实例介绍
【实例截图】
【核心代码】
.
├── mall4j
│ ├── CHANGELOG.md
│ ├── LICENSE
│ ├── README.md
│ ├── db
│ │ ├── Dockerfile
│ │ └── yami_shop.sql
│ ├── doc
│ │ ├── README.md
│ │ ├── 接口设计
│ │ │ ├── 1. 购物车的设计.md
│ │ │ ├── 2. 订单设计-确认订单.md
│ │ │ ├── 3. 订单设计-提交订单.md
│ │ │ ├── 4. 订单设计-支付.md
│ │ │ └── 必读.md
│ │ ├── 生产环境
│ │ │ ├── docker
│ │ │ │ ├── Docker Compose 安装与卸载.md
│ │ │ │ ├── centos jdk安装.md
│ │ │ │ ├── docker centos 安装.md
│ │ │ │ ├── docker 容器的基本操作.md
│ │ │ │ ├── docker 镜像的基本操作.md
│ │ │ │ ├── 使用docker部署商城.md
│ │ │ │ └── 通过yum安装maven.md
│ │ │ ├── nginx安装与跨域配置.md
│ │ │ ├── 安装mysql.md
│ │ │ ├── 安装redis.md
│ │ │ └── 教你如何部署.md
│ │ ├── 常见问题.md
│ │ ├── 商城表设计
│ │ │ ├── img
│ │ │ │ ├── %E9%80%80%E6%AC%BE%E6%96%87%E6%A1%A3%5C1566788134396.png
│ │ │ │ ├── 01.png
│ │ │ │ ├── 02.png
│ │ │ │ ├── 05.png
│ │ │ │ ├── 1008612.png
│ │ │ │ ├── 1566788134396.png
│ │ │ │ ├── 24.png
│ │ │ │ ├── sku.png
│ │ │ │ ├── tk01.png
│ │ │ │ ├── tk03.png
│ │ │ │ ├── 后台-商品分组.png
│ │ │ │ ├── 后台-添加优惠券活动.png
│ │ │ │ ├── 留言.png
│ │ │ │ ├── 小程序-首页-领券中心.png
│ │ │ │ ├── 小程序-用户中心-优惠券.png
│ │ │ │ ├── 小程序-分组商品.png
│ │ │ │ ├── 小程序-收货地址.png
│ │ │ │ ├── 小程序-优惠券使用.png
│ │ │ │ ├── 小程序-用户优惠券列表.png
│ │ │ │ ├── 小程序-用户优惠券列表2.png
│ │ │ │ ├── 购买页.png
│ │ │ │ ├── 减免类型.png
│ │ │ │ ├── 发布商品.png
│ │ │ │ ├── 规格属性.png
│ │ │ │ ├── 规格选择.png
│ │ │ │ ├── 满减优惠项.png
│ │ │ │ ├── 订单表设计.png
│ │ │ │ ├── 领取后生效.png
│ │ │ │ ├── 满减优惠项1.png
│ │ │ │ ├── 后台分组位置.png
│ │ │ │ ├── 后台新增地址.png
│ │ │ │ ├── 后台新增标签.png
│ │ │ │ ├── 后台满减瞒折.png
│ │ │ │ ├── 固定时间生效.png
│ │ │ │ ├── 满减满折商品.png
│ │ │ │ ├── 规格关联关系.png
│ │ │ │ ├── 规格可以输入.png
│ │ │ │ ├── 订单管理界面.png
│ │ │ │ ├── 订单详情页面.png
│ │ │ │ ├── 运费模板城市.png
│ │ │ │ ├── 我的购物车列表.png
│ │ │ │ ├── 购物车关系设计.png
│ │ │ │ ├── 运费模板运费项.png
│ │ │ │ ├── 配送与运费模板.png
│ │ │ │ ├── 购物车关系设计1.png
│ │ │ │ ├── 后台商城地址管理.png
│ │ │ │ ├── 后台指定包邮条件.png
│ │ │ │ ├── 后台运费模板新增.png
│ │ │ │ ├── 小程序加入购物车.png
│ │ │ │ ├── 后台指定区域包邮项.png
│ │ │ │ ├── 满减满折数据库关系.png
│ │ │ │ ├── 运费模板数据库关系.png
│ │ │ │ ├── 地区信息数据库设计1.png
│ │ │ │ ├── 优惠券数据关系设计2.png
│ │ │ │ ├── 分组管理数据库设计2.png
│ │ │ │ ├── 后天满减瞒着活动规则.png
│ │ │ │ ├── 运费模板指定包邮城市.png
│ │ │ │ └── 后台新增商品运费模板展示.png
│ │ │ ├── 商品分组.md
│ │ │ └── 商品表设计.md
│ │ ├── 认证与授权
│ │ │ ├── 从授权开始看源码.md
│ │ │ └── 自己写个授权的方法-开源版.md
│ │ └── 基本框架设计
│ │ ├── Swagger文档.md
│ │ ├── undertow容器.md
│ │ ├── 对xss攻击的防御.md
│ │ ├── 分布式锁.md
│ │ ├── 权限管理.md
│ │ ├── 统一验证.md
│ │ ├── 文件上传下载.md
│ │ ├── 统一异常处理.md
│ │ ├── 通用分页表格.md
│ │ ├── 项目目录结构.md
│ │ ├── 统一的系统日志.md
│ │ └── 一对多、多对多分页.md
│ ├── docker-compose.yml
│ ├── mall4m
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── app.js
│ │ ├── app.json
│ │ ├── app.wxss
│ │ ├── components
│ │ │ ├── coupon
│ │ │ │ ├── coupon.js
│ │ │ │ ├── coupon.json
│ │ │ │ ├── coupon.wxml
│ │ │ │ └── coupon.wxss
│ │ │ └── production
│ │ │ ├── production.js
│ │ │ ├── production.json
│ │ │ ├── production.wxml
│ │ │ └── production.wxss
│ │ ├── images
│ │ │ ├── icon
│ │ │ │ ├── addr.png
│ │ │ │ ├── bg1.png
│ │ │ │ ├── car-new.png
│ │ │ │ ├── car.png
│ │ │ │ ├── clear-his.png
│ │ │ │ ├── coupon-ot.png
│ │ │ │ ├── coupon-used.png
│ │ │ │ ├── delive-dot.png
│ │ │ │ ├── delivery-car.png
│ │ │ │ ├── dot.png
│ │ │ │ ├── empty-cash.png
│ │ │ │ ├── everydaySale.png
│ │ │ │ ├── getCoupon.png
│ │ │ │ ├── horn.png
│ │ │ │ ├── menu-01.png
│ │ │ │ ├── menu-02.png
│ │ │ │ ├── menu-03.png
│ │ │ │ ├── menu-04.png
│ │ │ │ ├── more.png
│ │ │ │ ├── myAddr.png
│ │ │ │ ├── myCoupon.png
│ │ │ │ ├── newProd.png
│ │ │ │ ├── neweveryday.png
│ │ │ │ ├── newprods.png
│ │ │ │ ├── plus-sign.png
│ │ │ │ ├── prod-col-red.png
│ │ │ │ ├── prod-col.png
│ │ │ │ ├── promotion.png
│ │ │ │ ├── revise.png
│ │ │ │ ├── search-01.png
│ │ │ │ ├── search-col.png
│ │ │ │ ├── search-col2.png
│ │ │ │ ├── search.png
│ │ │ │ ├── star-empty.png
│ │ │ │ ├── star-red.png
│ │ │ │ ├── timePrice.png
│ │ │ │ ├── toComment.png
│ │ │ │ ├── toDelivery.png
│ │ │ │ ├── toPay.png
│ │ │ │ ├── toTake.png
│ │ │ │ ├── tuiguang01.png
│ │ │ │ ├── tuiguang02.png
│ │ │ │ └── tuiguang03.png
│ │ │ └── tabbar
│ │ │ ├── basket-sel.png
│ │ │ ├── basket.png
│ │ │ ├── category-sel.png
│ │ │ ├── category.png
│ │ │ ├── homepage-sel.png
│ │ │ ├── homepage.png
│ │ │ ├── user-sel.png
│ │ │ └── user.png
│ │ ├── pages
│ │ │ ├── basket
│ │ │ │ ├── basket.js
│ │ │ │ ├── basket.json
│ │ │ │ ├── basket.wxml
│ │ │ │ └── basket.wxss
│ │ │ ├── binding-phone
│ │ │ │ ├── binding-phone.js
│ │ │ │ ├── binding-phone.json
│ │ │ │ ├── binding-phone.wxml
│ │ │ │ └── binding-phone.wxss
│ │ │ ├── category
│ │ │ │ ├── category.js
│ │ │ │ ├── category.json
│ │ │ │ ├── category.wxml
│ │ │ │ └── category.wxss
│ │ │ ├── delivery-address
│ │ │ │ ├── delivery-address.js
│ │ │ │ ├── delivery-address.json
│ │ │ │ ├── delivery-address.wxml
│ │ │ │ └── delivery-address.wxss
│ │ │ ├── editAddress
│ │ │ │ ├── editAddress.js
│ │ │ │ ├── editAddress.json
│ │ │ │ ├── editAddress.wxml
│ │ │ │ └── editAddress.wxss
│ │ │ ├── express-delivery
│ │ │ │ ├── express-delivery.js
│ │ │ │ ├── express-delivery.json
│ │ │ │ ├── express-delivery.wxml
│ │ │ │ └── express-delivery.wxss
│ │ │ ├── index
│ │ │ │ ├── index.js
│ │ │ │ ├── index.json
│ │ │ │ ├── index.wxml
│ │ │ │ └── index.wxss
│ │ │ ├── login
│ │ │ │ ├── login.js
│ │ │ │ ├── login.json
│ │ │ │ ├── login.wxml
│ │ │ │ └── login.wxss
│ │ │ ├── logs
│ │ │ │ ├── logs.js
│ │ │ │ ├── logs.json
│ │ │ │ ├── logs.wxml
│ │ │ │ └── logs.wxss
│ │ │ ├── news-detail
│ │ │ │ ├── news-detail.js
│ │ │ │ ├── news-detail.json
│ │ │ │ ├── news-detail.wxml
│ │ │ │ └── news-detail.wxss
│ │ │ ├── order-detail
│ │ │ │ ├── order-detail.js
│ │ │ │ ├── order-detail.json
│ │ │ │ ├── order-detail.wxml
│ │ │ │ └── order-detail.wxss
│ │ │ ├── orderList
│ │ │ │ ├── orderList.js
│ │ │ │ ├── orderList.json
│ │ │ │ ├── orderList.wxml
│ │ │ │ └── orderList.wxss
│ │ │ ├── pay-result
│ │ │ │ ├── pay-result.js
│ │ │ │ ├── pay-result.json
│ │ │ │ ├── pay-result.wxml
│ │ │ │ └── pay-result.wxss
│ │ │ ├── prod
│ │ │ │ ├── prod.js
│ │ │ │ ├── prod.json
│ │ │ │ ├── prod.wxml
│ │ │ │ └── prod.wxss
│ │ │ ├── prod-classify
│ │ │ │ ├── prod-classify.js
│ │ │ │ ├── prod-classify.json
│ │ │ │ ├── prod-classify.wxml
│ │ │ │ └── prod-classify.wxss
│ │ │ ├── recent-news
│ │ │ │ ├── recent-news.js
│ │ │ │ ├── recent-news.json
│ │ │ │ ├── recent-news.wxml
│ │ │ │ └── recent-news.wxss
│ │ │ ├── search-page
│ │ │ │ ├── search-page.js
│ │ │ │ ├── search-page.json
│ │ │ │ ├── search-page.wxml
│ │ │ │ └── search-page.wxss
│ │ │ ├── search-prod-show
│ │ │ │ ├── search-prod-show.js
│ │ │ │ ├── search-prod-show.json
│ │ │ │ ├── search-prod-show.wxml
│ │ │ │ └── search-prod-show.wxss
│ │ │ ├── submit-order
│ │ │ │ ├── submit-order.js
│ │ │ │ ├── submit-order.json
│ │ │ │ ├── submit-order.wxml
│ │ │ │ └── submit-order.wxss
│ │ │ └── user
│ │ │ ├── user.js
│ │ │ ├── user.json
│ │ │ ├── user.wxml
│ │ │ └── user.wxss
│ │ ├── project.config.json
│ │ ├── screenshot
│ │ │ ├── index.jpg
│ │ │ ├── my.jpg
│ │ │ ├── prodInfo.jpg
│ │ │ ├── shopCart.jpg
│ │ │ └── sku.jpg
│ │ ├── sitemap.json
│ │ ├── utils
│ │ │ ├── big.min.js
│ │ │ ├── config.js
│ │ │ ├── http.js
│ │ │ └── util.js
│ │ ├── vant
│ │ │ ├── common
│ │ │ │ ├── color.d.ts
│ │ │ │ ├── color.js
│ │ │ │ ├── component.d.ts
│ │ │ │ ├── component.js
│ │ │ │ ├── index.wxss
│ │ │ │ ├── style
│ │ │ │ │ ├── clearfix.wxss
│ │ │ │ │ ├── ellipsis.wxss
│ │ │ │ │ ├── hairline.wxss
│ │ │ │ │ ├── mixins
│ │ │ │ │ │ ├── clearfix.wxss
│ │ │ │ │ │ ├── ellipsis.wxss
│ │ │ │ │ │ └── hairline.wxss
│ │ │ │ │ └── var.wxss
│ │ │ │ ├── utils.d.ts
│ │ │ │ └── utils.js
│ │ │ ├── icon
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ ├── index.json
│ │ │ │ ├── index.wxml
│ │ │ │ └── index.wxss
│ │ │ ├── info
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ ├── index.json
│ │ │ │ ├── index.wxml
│ │ │ │ └── index.wxss
│ │ │ ├── mixins
│ │ │ │ ├── basic.d.ts
│ │ │ │ ├── basic.js
│ │ │ │ ├── button.d.ts
│ │ │ │ ├── button.js
│ │ │ │ ├── link.d.ts
│ │ │ │ ├── link.js
│ │ │ │ ├── observer
│ │ │ │ │ ├── behavior.d.ts
│ │ │ │ │ ├── behavior.js
│ │ │ │ │ ├── index.d.ts
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── props.d.ts
│ │ │ │ │ └── props.js
│ │ │ │ ├── open-type.d.ts
│ │ │ │ ├── open-type.js
│ │ │ │ ├── safe-area.d.ts
│ │ │ │ ├── safe-area.js
│ │ │ │ ├── touch.d.ts
│ │ │ │ ├── touch.js
│ │ │ │ ├── transition.d.ts
│ │ │ │ └── transition.js
│ │ │ ├── rate
│ │ │ │ ├── index.d.ts
│ │ │ │ ├── index.js
│ │ │ │ ├── index.json
│ │ │ │ ├── index.wxml
│ │ │ │ └── index.wxss
│ │ │ └── wxs
│ │ │ ├── array.wxs
│ │ │ ├── bem.wxs
│ │ │ ├── memoize.wxs
│ │ │ ├── object.wxs
│ │ │ └── utils.wxs
│ │ └── wxs
│ │ └── number.wxs
│ ├── mall4uni
│ │ ├── App.vue
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── app.css
│ │ ├── components
│ │ │ ├── coupon
│ │ │ │ ├── coupon.css
│ │ │ │ └── coupon.vue
│ │ │ └── production
│ │ │ ├── production.css
│ │ │ └── production.vue
│ │ ├── main.js
│ │ ├── manifest.json
│ │ ├── package-lock.json
│ │ ├── package.json
│ │ ├── pages
│ │ │ ├── accountLogin
│ │ │ │ ├── accountLogin.css
│ │ │ │ └── accountLogin.vue
│ │ │ ├── basket
│ │ │ │ ├── basket.css
│ │ │ │ └── basket.vue
│ │ │ ├── binding-phone
│ │ │ │ ├── binding-phone.css
│ │ │ │ └── binding-phone.vue
│ │ │ ├── category
│ │ │ │ ├── category.css
│ │ │ │ └── category.vue
│ │ │ ├── delivery-address
│ │ │ │ ├── delivery-address.css
│ │ │ │ └── delivery-address.vue
│ │ │ ├── editAddress
│ │ │ │ ├── editAddress.css
│ │ │ │ └── editAddress.vue
│ │ │ ├── express-delivery
│ │ │ │ ├── express-delivery.css
│ │ │ │ └── express-delivery.vue
│ │ │ ├── index
│ │ │ │ ├── index.css
│ │ │ │ └── index.vue
│ │ │ ├── login
│ │ │ │ ├── login.css
│ │ │ │ └── login.vue
│ │ │ ├── logs
│ │ │ │ ├── logs.css
│ │ │ │ └── logs.vue
│ │ │ ├── news-detail
│ │ │ │ ├── news-detail.css
│ │ │ │ └── news-detail.vue
│ │ │ ├── order-detail
│ │ │ │ ├── order-detail.css
│ │ │ │ └── order-detail.vue
│ │ │ ├── orderList
│ │ │ │ ├── orderList.css
│ │ │ │ └── orderList.vue
│ │ │ ├── pay-result
│ │ │ │ ├── pay-result.css
│ │ │ │ └── pay-result.vue
│ │ │ ├── prod
│ │ │ │ ├── prod.css
│ │ │ │ └── prod.vue
│ │ │ ├── prod-classify
│ │ │ │ ├── prod-classify.css
│ │ │ │ └── prod-classify.vue
│ │ │ ├── recent-news
│ │ │ │ ├── recent-news.css
│ │ │ │ └── recent-news.vue
│ │ │ ├── register
│ │ │ │ ├── register.css
│ │ │ │ └── register.vue
│ │ │ ├── search-page
│ │ │ │ ├── search-page.css
│ │ │ │ └── search-page.vue
│ │ │ ├── search-prod-show
│ │ │ │ ├── search-prod-show.css
│ │ │ │ └── search-prod-show.vue
│ │ │ ├── submit-order
│ │ │ │ ├── submit-order.css
│ │ │ │ └── submit-order.vue
│ │ │ └── user
│ │ │ ├── user.css
│ │ │ └── user.vue
│ │ ├── pages.json
│ │ ├── project.config.json
│ │ ├── sitemap.json
│ │ ├── static
│ │ │ ├── images
│ │ │ │ ├── icon
│ │ │ │ │ ├── addr.png
│ │ │ │ │ ├── bg1.png
│ │ │ │ │ ├── car-new.png
│ │ │ │ │ ├── car.png
│ │ │ │ │ ├── clear-his.png
│ │ │ │ │ ├── coupon-ot.png
│ │ │ │ │ ├── coupon-used.png
│ │ │ │ │ ├── delive-dot.png
│ │ │ │ │ ├── delivery-car.png
│ │ │ │ │ ├── dot.png
│ │ │ │ │ ├── empty-cash.png
│ │ │ │ │ ├── everydaySale.png
│ │ │ │ │ ├── getCoupon.png
│ │ │ │ │ ├── head04.png
│ │ │ │ │ ├── horn.png
│ │ │ │ │ ├── menu-01.png
│ │ │ │ │ ├── menu-02.png
│ │ │ │ │ ├── menu-03.png
│ │ │ │ │ ├── menu-04.png
│ │ │ │ │ ├── more.png
│ │ │ │ │ ├── myAddr.png
│ │ │ │ │ ├── myCoupon.png
│ │ │ │ │ ├── newProd.png
│ │ │ │ │ ├── neweveryday.png
│ │ │ │ │ ├── newprods.png
│ │ │ │ │ ├── plus-sign.png
│ │ │ │ │ ├── prod-col-red.png
│ │ │ │ │ ├── prod-col.png
│ │ │ │ │ ├── promotion.png
│ │ │ │ │ ├── revise.png
│ │ │ │ │ ├── search-01.png
│ │ │ │ │ ├── search-col.png
│ │ │ │ │ ├── search-col2.png
│ │ │ │ │ ├── search.png
│ │ │ │ │ ├── star-empty.png
│ │ │ │ │ ├── star-red.png
│ │ │ │ │ ├── timePrice.png
│ │ │ │ │ ├── toComment.png
│ │ │ │ │ ├── toDelivery.png
│ │ │ │ │ ├── toPay.png
│ │ │ │ │ ├── toTake.png
│ │ │ │ │ ├── tuiguang01.png
│ │ │ │ │ ├── tuiguang02.png
│ │ │ │ │ └── tuiguang03.png
│ │ │ │ └── tabbar
│ │ │ │ ├── basket-sel.png
│ │ │ │ ├── basket.png
│ │ │ │ ├── category-sel.png
│ │ │ │ ├── category.png
│ │ │ │ ├── homepage-sel.png
│ │ │ │ ├── homepage.png
│ │ │ │ ├── user-sel.png
│ │ │ │ └── user.png
│ │ │ ├── logo.png
│ │ │ └── screenshot
│ │ │ ├── index.jpg
│ │ │ ├── my.jpg
│ │ │ ├── prodInfo.jpg
│ │ │ ├── shopCart.jpg
│ │ │ └── sku.jpg
│ │ ├── utils
│ │ │ ├── big.min.js
│ │ │ ├── config.js
│ │ │ ├── constant.js
│ │ │ ├── http.js
│ │ │ └── util.js
│ │ └── wxs
│ │ └── number.wxs
│ ├── mall4v
│ │ ├── CHANGELOG.md
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── build
│ │ │ ├── build.js
│ │ │ ├── check-versions.js
│ │ │ ├── utils.js
│ │ │ ├── vue-loader.conf.js
│ │ │ ├── webpack.base.conf.js
│ │ │ ├── webpack.dev.conf.js
│ │ │ ├── webpack.prod.conf.js
│ │ │ └── webpack.test.conf.js
│ │ ├── config
│ │ │ ├── dev.env.js
│ │ │ ├── index.js
│ │ │ ├── prod.env.js
│ │ │ └── test.env.js
│ │ ├── gulpfile.js
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── src
│ │ │ ├── App.vue
│ │ │ ├── assets
│ │ │ │ ├── img
│ │ │ │ │ ├── address.png
│ │ │ │ │ ├── avatar.png
│ │ │ │ │ ├── base_z36574a.png
│ │ │ │ │ ├── bg_mobile_head_default2968da.png
│ │ │ │ │ ├── buyer.png
│ │ │ │ │ ├── car.png
│ │ │ │ │ ├── index_z354723.png
│ │ │ │ │ ├── invoice.png
│ │ │ │ │ ├── line.png
│ │ │ │ │ ├── login-bg.png
│ │ │ │ │ ├── login-logo.png
│ │ │ │ │ ├── message.png
│ │ │ │ │ ├── message.svg
│ │ │ │ │ ├── remarks.png
│ │ │ │ │ ├── revise.png
│ │ │ │ │ ├── time.png
│ │ │ │ │ └── yami.png
│ │ │ │ └── scss
│ │ │ │ ├── _base.scss
│ │ │ │ ├── _normalize.scss
│ │ │ │ ├── _variables.scss
│ │ │ │ └── index.scss
│ │ │ ├── components
│ │ │ │ ├── file-upload
│ │ │ │ │ └── index.vue
│ │ │ │ ├── icon-svg
│ │ │ │ │ └── index.vue
│ │ │ │ ├── mul-pic-upload
│ │ │ │ │ └── index.vue
│ │ │ │ ├── pic-upload
│ │ │ │ │ └── index.vue
│ │ │ │ ├── prod-select
│ │ │ │ │ └── index.vue
│ │ │ │ ├── prods-select
│ │ │ │ │ └── index.vue
│ │ │ │ └── tiny-mce
│ │ │ │ └── index.vue
│ │ │ ├── crud
│ │ │ │ ├── admin
│ │ │ │ │ ├── form.js
│ │ │ │ │ ├── indexImg.js
│ │ │ │ │ └── message.js
│ │ │ │ ├── prod
│ │ │ │ │ ├── prodComm.js
│ │ │ │ │ ├── prodList.js
│ │ │ │ │ ├── prodTag.js
│ │ │ │ │ └── spec.js
│ │ │ │ ├── shop
│ │ │ │ │ ├── hotSearch.js
│ │ │ │ │ ├── notice.js
│ │ │ │ │ ├── pickAddr.js
│ │ │ │ │ └── transport.js
│ │ │ │ ├── sys
│ │ │ │ │ ├── area.js
│ │ │ │ │ ├── config.js
│ │ │ │ │ ├── log.js
│ │ │ │ │ ├── role.js
│ │ │ │ │ └── user.js
│ │ │ │ └── user
│ │ │ │ ├── addr.js
│ │ │ │ └── user.js
│ │ │ ├── element-ui
│ │ │ │ └── index.js
│ │ │ ├── element-ui-theme
│ │ │ │ ├── fonts
│ │ │ │ │ ├── element-icons.ttf
│ │ │ │ │ └── element-icons.woff
│ │ │ │ └── style.css
│ │ │ ├── icons
│ │ │ │ ├── iconfont.js
│ │ │ │ ├── index.js
│ │ │ │ └── svg
│ │ │ │ ├── icon-admin.svg
│ │ │ │ ├── icon-bianji.svg
│ │ │ │ ├── icon-config.svg
│ │ │ │ ├── icon-dangdifill.svg
│ │ │ │ ├── icon-daohang.svg
│ │ │ │ ├── icon-duanxin.svg
│ │ │ │ ├── icon-editor.svg
│ │ │ │ ├── icon-form.svg
│ │ │ │ ├── icon-geren.svg
│ │ │ │ ├── icon-jiesuo.svg
│ │ │ │ ├── icon-job.svg
│ │ │ │ ├── icon-log.svg
│ │ │ │ ├── icon-menu.svg
│ │ │ │ ├── icon-mudedi.svg
│ │ │ │ ├── icon-order.svg
│ │ │ │ ├── icon-oss.svg
│ │ │ │ ├── icon-pinglun.svg
│ │ │ │ ├── icon-prod.svg
│ │ │ │ ├── icon-role.svg
│ │ │ │ ├── icon-shanchu.svg
│ │ │ │ ├── icon-shezhi.svg
│ │ │ │ ├── icon-shoucang.svg
│ │ │ │ ├── icon-shoucangfill.svg
│ │ │ │ ├── icon-shouye.svg
│ │ │ │ ├── icon-sousuo.svg
│ │ │ │ ├── icon-sql.svg
│ │ │ │ ├── icon-store.svg
│ │ │ │ ├── icon-suoding.svg
│ │ │ │ ├── icon-system.svg
│ │ │ │ ├── icon-tixing.svg
│ │ │ │ ├── icon-tubiao.svg
│ │ │ │ ├── icon-vip.svg
│ │ │ │ ├── icon-xiangqu.svg
│ │ │ │ ├── icon-xiangqufill.svg
│ │ │ │ ├── icon-zhedie.svg
│ │ │ │ └── icon-zonghe.svg
│ │ │ ├── main.js
│ │ │ ├── router
│ │ │ │ ├── import-development.js
│ │ │ │ ├── import-production.js
│ │ │ │ └── index.js
│ │ │ ├── store
│ │ │ │ ├── index.js
│ │ │ │ └── modules
│ │ │ │ ├── common.js
│ │ │ │ ├── prod.js
│ │ │ │ └── user.js
│ │ │ ├── utils
│ │ │ │ ├── httpRequest.js
│ │ │ │ ├── index.js
│ │ │ │ └── validate.js
│ │ │ └── views
│ │ │ ├── common
│ │ │ │ ├── 404.vue
│ │ │ │ ├── home.vue
│ │ │ │ └── login.vue
│ │ │ ├── main-content.vue
│ │ │ ├── main-navbar-update-password.vue
│ │ │ ├── main-navbar.vue
│ │ │ ├── main-sidebar-sub-menu.vue
│ │ │ ├── main-sidebar.vue
│ │ │ ├── main.vue
│ │ │ └── modules
│ │ │ ├── admin
│ │ │ │ ├── indexImg-add-or-update.vue
│ │ │ │ ├── indexImg.vue
│ │ │ │ ├── message-add-or-update.vue
│ │ │ │ └── message.vue
│ │ │ ├── order
│ │ │ │ ├── consignment-info.vue
│ │ │ │ ├── order-add-or-update.vue
│ │ │ │ ├── order-addr.vue
│ │ │ │ ├── order-devy.vue
│ │ │ │ ├── order.vue
│ │ │ │ └── orderInfo.vue
│ │ │ ├── prod
│ │ │ │ ├── category-add-or-update.vue
│ │ │ │ ├── category.vue
│ │ │ │ ├── prod-transport.vue
│ │ │ │ ├── prodComm-add-or-update.vue
│ │ │ │ ├── prodComm.vue
│ │ │ │ ├── prodInfo.vue
│ │ │ │ ├── prodList.vue
│ │ │ │ ├── prodTag-add-or-update.vue
│ │ │ │ ├── prodTag.vue
│ │ │ │ ├── sku-table.vue
│ │ │ │ ├── sku-tag.vue
│ │ │ │ ├── spec-add-or-update.vue
│ │ │ │ └── spec.vue
│ │ │ ├── shop
│ │ │ │ ├── hotSearch-add-or-update.vue
│ │ │ │ ├── hotSearch.vue
│ │ │ │ ├── notice-add-or-update.vue
│ │ │ │ ├── notice.vue
│ │ │ │ ├── pickAddr-add-or-update.vue
│ │ │ │ ├── pickAddr.vue
│ │ │ │ ├── transcity-add-or-update.vue
│ │ │ │ ├── transport-add-or-update.vue
│ │ │ │ └── transport.vue
│ │ │ ├── sys
│ │ │ │ ├── area-add-or-update.vue
│ │ │ │ ├── area.vue
│ │ │ │ ├── config-add-or-update.vue
│ │ │ │ ├── config.vue
│ │ │ │ ├── log.vue
│ │ │ │ ├── menu-add-or-update.vue
│ │ │ │ ├── menu.vue
│ │ │ │ ├── role-add-or-update.vue
│ │ │ │ ├── role.vue
│ │ │ │ ├── schedule-add-or-update.vue
│ │ │ │ ├── schedule-log.vue
│ │ │ │ ├── schedule.vue
│ │ │ │ ├── user-add-or-update.vue
│ │ │ │ └── user.vue
│ │ │ └── user
│ │ │ ├── addr-add-or-update.vue
│ │ │ ├── addr.vue
│ │ │ ├── user-add-or-update.vue
│ │ │ └── user.vue
│ │ ├── static
│ │ │ ├── config
│ │ │ │ ├── index-prod.js
│ │ │ │ ├── index-qa.js
│ │ │ │ ├── index-uat.js
│ │ │ │ ├── index.js
│ │ │ │ └── init.js
│ │ │ └── plugins
│ │ │ ├── echarts-4.2.1
│ │ │ │ └── echarts.common.min.js
│ │ │ └── tinymce.4.9.4
│ │ │ ├── plugins
│ │ │ │ ├── advlist
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── anchor
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── autolink
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── autoresize
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── autosave
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── bbcode
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── charmap
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── code
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── codesample
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── prism.css
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── colorpicker
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── contextmenu
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── directionality
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── emoticons
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── smiley-cool.gif
│ │ │ │ │ │ ├── smiley-cry.gif
│ │ │ │ │ │ ├── smiley-embarassed.gif
│ │ │ │ │ │ ├── smiley-foot-in-mouth.gif
│ │ │ │ │ │ ├── smiley-frown.gif
│ │ │ │ │ │ ├── smiley-innocent.gif
│ │ │ │ │ │ ├── smiley-kiss.gif
│ │ │ │ │ │ ├── smiley-laughing.gif
│ │ │ │ │ │ ├── smiley-money-mouth.gif
│ │ │ │ │ │ ├── smiley-sealed.gif
│ │ │ │ │ │ ├── smiley-smile.gif
│ │ │ │ │ │ ├── smiley-surprised.gif
│ │ │ │ │ │ ├── smiley-tongue-out.gif
│ │ │ │ │ │ ├── smiley-undecided.gif
│ │ │ │ │ │ ├── smiley-wink.gif
│ │ │ │ │ │ └── smiley-yell.gif
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── fullpage
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── fullscreen
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── help
│ │ │ │ │ ├── img
│ │ │ │ │ │ └── logo.png
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── hr
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── image
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── imagetools
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── importcss
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── insertdatetime
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── legacyoutput
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── link
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── lists
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── media
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── nonbreaking
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── noneditable
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── pagebreak
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── paste
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── preview
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── print
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── save
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── searchreplace
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── spellchecker
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── tabfocus
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── table
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── template
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── textcolor
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── textpattern
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── toc
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── visualblocks
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── visualblocks.css
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ ├── visualchars
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── plugin.js
│ │ │ │ │ └── plugin.min.js
│ │ │ │ └── wordcount
│ │ │ │ ├── index.js
│ │ │ │ ├── plugin.js
│ │ │ │ └── plugin.min.js
│ │ │ ├── skins
│ │ │ │ └── lightgray
│ │ │ │ ├── content.inline.min.css
│ │ │ │ ├── content.min.css
│ │ │ │ ├── content.mobile.min.css
│ │ │ │ ├── fonts
│ │ │ │ │ ├── tinymce-mobile.woff
│ │ │ │ │ ├── tinymce-small.eot
│ │ │ │ │ ├── tinymce-small.svg
│ │ │ │ │ ├── tinymce-small.ttf
│ │ │ │ │ ├── tinymce-small.woff
│ │ │ │ │ ├── tinymce.eot
│ │ │ │ │ ├── tinymce.svg
│ │ │ │ │ ├── tinymce.ttf
│ │ │ │ │ └── tinymce.woff
│ │ │ │ ├── img
│ │ │ │ │ ├── anchor.gif
│ │ │ │ │ ├── loader.gif
│ │ │ │ │ ├── object.gif
│ │ │ │ │ └── trans.gif
│ │ │ │ ├── skin.min.css
│ │ │ │ └── skin.mobile.min.css
│ │ │ ├── themes
│ │ │ │ ├── inlite
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── theme.js
│ │ │ │ │ └── theme.min.js
│ │ │ │ ├── mobile
│ │ │ │ │ ├── index.js
│ │ │ │ │ ├── theme.js
│ │ │ │ │ └── theme.min.js
│ │ │ │ └── modern
│ │ │ │ ├── index.js
│ │ │ │ ├── theme.js
│ │ │ │ └── theme.min.js
│ │ │ ├── tinymce.min.js
│ │ │ └── zh_CN.js
│ │ └── test
│ │ ├── e2e
│ │ │ ├── custom-assertions
│ │ │ │ └── elementCount.js
│ │ │ ├── nightwatch.conf.js
│ │ │ ├── runner.js
│ │ │ └── specs
│ │ │ └── test.js
│ │ └── unit
│ │ ├── jest.conf.js
│ │ ├── setup.js
│ │ └── specs
│ │ └── HelloWorld.spec.js
│ ├── pom.xml
│ ├── screenshot
│ │ ├── login.png
│ │ ├── miniInfo.png
│ │ ├── miniQrcode.jpg
│ │ ├── order.png
│ │ ├── prodList.png
│ │ ├── qqGroup.png
│ │ ├── sku.png
│ │ ├── transport.png
│ │ └── uniappInfo.png
│ ├── yami-shop-admin
│ │ ├── Dockerfile
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── admin
│ │ │ ├── WebApplication.java
│ │ │ ├── config
│ │ │ │ ├── AdminBeanConfig.java
│ │ │ │ ├── AdminConfig.java
│ │ │ │ └── SwaggerConfiguration.java
│ │ │ ├── controller
│ │ │ │ ├── AreaController.java
│ │ │ │ ├── AttributeController.java
│ │ │ │ ├── BrandController.java
│ │ │ │ ├── CategoryController.java
│ │ │ │ ├── DeliveryController.java
│ │ │ │ ├── FileController.java
│ │ │ │ ├── HotSearchController.java
│ │ │ │ ├── IndexImgController.java
│ │ │ │ ├── MessageController.java
│ │ │ │ ├── NoticeController.java
│ │ │ │ ├── OrderController.java
│ │ │ │ ├── PickAddrController.java
│ │ │ │ ├── ProdCommController.java
│ │ │ │ ├── ProdTagController.java
│ │ │ │ ├── ProdTagReferenceController.java
│ │ │ │ ├── ProductController.java
│ │ │ │ ├── ShopDetailController.java
│ │ │ │ ├── SpecController.java
│ │ │ │ ├── TransportController.java
│ │ │ │ ├── UserAddrController.java
│ │ │ │ └── UserController.java
│ │ │ ├── security
│ │ │ │ ├── AdminAuthenticationToken.java
│ │ │ │ ├── AdminTokenEnhancer.java
│ │ │ │ ├── LoginAuthenticationFilter.java
│ │ │ │ ├── ResourceServerConfiguration.java
│ │ │ │ └── YamiSysUserDetailsServiceImpl.java
│ │ │ └── task
│ │ │ ├── OrderTask.java
│ │ │ └── TestTask.java
│ │ └── resources
│ │ ├── admin.properties
│ │ ├── application-dev.yml
│ │ ├── application-docker.yml
│ │ ├── application-prod.yml
│ │ ├── application.yml
│ │ ├── banner.txt
│ │ ├── log4j2_dev.xml
│ │ ├── log4j2_prod.xml
│ │ ├── redisson-docker.yml
│ │ └── redisson.yml
│ ├── yami-shop-api
│ │ ├── Dockerfile
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── api
│ │ │ ├── ApiApplication.java
│ │ │ ├── config
│ │ │ │ ├── ApiBeanConfig.java
│ │ │ │ ├── ApiConfig.java
│ │ │ │ └── SwaggerConfiguration.java
│ │ │ ├── controller
│ │ │ │ ├── AddrController.java
│ │ │ │ ├── AreaController.java
│ │ │ │ ├── CategoryController.java
│ │ │ │ ├── DeliveryController.java
│ │ │ │ ├── IndexImgController.java
│ │ │ │ ├── MyOrderController.java
│ │ │ │ ├── NoticeController.java
│ │ │ │ ├── OrderController.java
│ │ │ │ ├── PayController.java
│ │ │ │ ├── PayNoticeController.java
│ │ │ │ ├── ProdCommController.java
│ │ │ │ ├── ProdController.java
│ │ │ │ ├── ProdTagController.java
│ │ │ │ ├── SearchController.java
│ │ │ │ ├── ShopCartController.java
│ │ │ │ ├── SkuController.java
│ │ │ │ ├── SmsController.java
│ │ │ │ ├── UserCollectionController.java
│ │ │ │ ├── UserController.java
│ │ │ │ └── UserRegisterController.java
│ │ │ ├── listener
│ │ │ │ ├── ConfirmOrderListener.java
│ │ │ │ ├── ShopCartListener.java
│ │ │ │ └── SubmitOrderListener.java
│ │ │ └── security
│ │ │ ├── ApiTokenEnhancer.java
│ │ │ ├── AuthenticationToken.java
│ │ │ ├── LoginAuthenticationFilter.java
│ │ │ ├── MiniAppAuthenticationToken.java
│ │ │ ├── ResourceServerConfiguration.java
│ │ │ ├── WebAuthenticationToken.java
│ │ │ ├── WebLoginAuthenticationFilter.java
│ │ │ ├── YamiAuthenticationProcessingFilter.java
│ │ │ └── YamiUserServiceImpl.java
│ │ └── resources
│ │ ├── api.properties
│ │ ├── application-dev.yml
│ │ ├── application-docker.yml
│ │ ├── application-prod.yml
│ │ ├── application.yml
│ │ ├── banner.txt
│ │ ├── log4j2_dev.xml
│ │ ├── log4j2_prod.xml
│ │ ├── redisson-docker.yml
│ │ └── redisson.yml
│ ├── yami-shop-bean
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── com
│ │ └── yami
│ │ └── shop
│ │ └── bean
│ │ ├── SmsInfoContext.java
│ │ ├── app
│ │ │ ├── dto
│ │ │ │ ├── BasketItemDto.java
│ │ │ │ ├── CategoryDto.java
│ │ │ │ ├── ChooseDiscountItemDto.java
│ │ │ │ ├── CouponOrderDto.java
│ │ │ │ ├── DeliveryDto.java
│ │ │ │ ├── DeliveryInfoDto.java
│ │ │ │ ├── DiscountDto.java
│ │ │ │ ├── IndexImgDto.java
│ │ │ │ ├── MyOrderDto.java
│ │ │ │ ├── MyOrderItemDto.java
│ │ │ │ ├── NoticeDto.java
│ │ │ │ ├── OrderCountData.java
│ │ │ │ ├── OrderItemDto.java
│ │ │ │ ├── OrderNumbersDto.java
│ │ │ │ ├── OrderShopDto.java
│ │ │ │ ├── ProdCommDataDto.java
│ │ │ │ ├── ProdCommDto.java
│ │ │ │ ├── ProdTagDto.java
│ │ │ │ ├── ProductDto.java
│ │ │ │ ├── ProductItemDto.java
│ │ │ │ ├── ShopCartAmountDto.java
│ │ │ │ ├── ShopCartDto.java
│ │ │ │ ├── ShopCartExpiryItemDto.java
│ │ │ │ ├── ShopCartItemDiscountDto.java
│ │ │ │ ├── ShopCartItemDto.java
│ │ │ │ ├── ShopCartOrderDto.java
│ │ │ │ ├── ShopCartOrderMergerDto.java
│ │ │ │ ├── SkuDto.java
│ │ │ │ ├── TagProductDto.java
│ │ │ │ ├── UserAddrDto.java
│ │ │ │ ├── UserCollectionDto.java
│ │ │ │ └── UserDto.java
│ │ │ └── param
│ │ │ ├── AddrParam.java
│ │ │ ├── ChangeShopCartParam.java
│ │ │ ├── LoginParam.java
│ │ │ ├── OrderItemParam.java
│ │ │ ├── OrderParam.java
│ │ │ ├── OrderRefundExpressParam.java
│ │ │ ├── OrderRefundParam.java
│ │ │ ├── OrderShopParam.java
│ │ │ ├── PayParam.java
│ │ │ ├── ProdCommParam.java
│ │ │ ├── SendSmsParam.java
│ │ │ ├── ShopCartParam.java
│ │ │ ├── ShopCartParams.java
│ │ │ ├── SubmitOrderParam.java
│ │ │ └── UserInfoParam.java
│ │ ├── bo
│ │ │ └── SmsInfoBo.java
│ │ ├── distribution
│ │ │ └── UserShoppingDataDto.java
│ │ ├── dto
│ │ │ ├── HotSearchDto.java
│ │ │ ├── ProductDto.java
│ │ │ ├── SearchProdDto.java
│ │ │ └── TinymceEditorDto.java
│ │ ├── enums
│ │ │ ├── MessageStatus.java
│ │ │ ├── OrderEntry.java
│ │ │ ├── OrderStatus.java
│ │ │ ├── PayType.java
│ │ │ ├── ProdPropRule.java
│ │ │ ├── SmsType.java
│ │ │ └── TransportChargeType.java
│ │ ├── event
│ │ │ ├── CancelOrderEvent.java
│ │ │ ├── ConfirmOrderEvent.java
│ │ │ ├── PaySuccessOrderEvent.java
│ │ │ ├── ReceiptOrderEvent.java
│ │ │ ├── ShopCartEvent.java
│ │ │ └── SubmitOrderEvent.java
│ │ ├── model
│ │ │ ├── Area.java
│ │ │ ├── AttachFile.java
│ │ │ ├── Basket.java
│ │ │ ├── Brand.java
│ │ │ ├── Category.java
│ │ │ ├── CategoryBrand.java
│ │ │ ├── CategoryProp.java
│ │ │ ├── Delivery.java
│ │ │ ├── HotSearch.java
│ │ │ ├── IndexImg.java
│ │ │ ├── LoginHist.java
│ │ │ ├── Message.java
│ │ │ ├── Notice.java
│ │ │ ├── Order.java
│ │ │ ├── OrderItem.java
│ │ │ ├── OrderRefund.java
│ │ │ ├── OrderSettlement.java
│ │ │ ├── PickAddr.java
│ │ │ ├── ProdComm.java
│ │ │ ├── ProdImg.java
│ │ │ ├── ProdProp.java
│ │ │ ├── ProdPropValue.java
│ │ │ ├── ProdTag.java
│ │ │ ├── ProdTagReference.java
│ │ │ ├── Product.java
│ │ │ ├── ShopDetail.java
│ │ │ ├── Sku.java
│ │ │ ├── SmsLog.java
│ │ │ ├── Transcity.java
│ │ │ ├── TranscityFree.java
│ │ │ ├── Transfee.java
│ │ │ ├── TransfeeFree.java
│ │ │ ├── Transport.java
│ │ │ ├── User.java
│ │ │ ├── UserAddr.java
│ │ │ ├── UserAddrOrder.java
│ │ │ └── UserCollection.java
│ │ ├── order
│ │ │ ├── ConfirmOrderOrder.java
│ │ │ ├── ShopCartEventOrder.java
│ │ │ └── SubmitOrderOrder.java
│ │ ├── param
│ │ │ ├── DeliveryOrderParam.java
│ │ │ ├── OrderParam.java
│ │ │ ├── ProductParam.java
│ │ │ ├── ShopDetailParam.java
│ │ │ └── UserRegisterParam.java
│ │ ├── pay
│ │ │ └── PayInfoDto.java
│ │ └── vo
│ │ ├── SysUserVO.java
│ │ └── UserVO.java
│ ├── yami-shop-common
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── common
│ │ │ ├── annotation
│ │ │ │ ├── RedisLock.java
│ │ │ │ └── SysLog.java
│ │ │ ├── aspect
│ │ │ │ └── RedisLockAspect.java
│ │ │ ├── bean
│ │ │ │ ├── ALiDaYu.java
│ │ │ │ └── Qiniu.java
│ │ │ ├── config
│ │ │ │ ├── DefaultExceptionHandlerConfig.java
│ │ │ │ ├── FileUploadConfig.java
│ │ │ │ ├── MybatisPlusConfig.java
│ │ │ │ ├── OrikaConfig.java
│ │ │ │ ├── RedisCacheConfig.java
│ │ │ │ ├── ShopBasicConfig.java
│ │ │ │ └── ShopBeanConfig.java
│ │ │ ├── enums
│ │ │ │ ├── QiniuZone.java
│ │ │ │ └── YamiHttpStatus.java
│ │ │ ├── exception
│ │ │ │ └── YamiShopBindException.java
│ │ │ ├── filter
│ │ │ │ ├── FilterConfig.java
│ │ │ │ └── XssFilter.java
│ │ │ ├── response
│ │ │ │ ├── ResponseCode.java
│ │ │ │ ├── ServerResponse.java
│ │ │ │ └── ServerResponseEntity.java
│ │ │ ├── serializer
│ │ │ │ ├── FSTSerializer.java
│ │ │ │ ├── json
│ │ │ │ │ ├── EmojiJsonSerializer.java
│ │ │ │ │ └── ImgJsonSerializer.java
│ │ │ │ ├── redis
│ │ │ │ │ └── FstRedisSerializer.java
│ │ │ │ ├── redisson
│ │ │ │ │ └── FstCodec.java
│ │ │ │ └── springfox
│ │ │ │ ├── SpringFoxJsonSerializerConfig.java
│ │ │ │ └── SpringfoxJsonSerializer.java
│ │ │ ├── util
│ │ │ │ ├── Arith.java
│ │ │ │ ├── CacheManagerUtil.java
│ │ │ │ ├── HttpContextUtils.java
│ │ │ │ ├── IPHelper.java
│ │ │ │ ├── IdUtil.java
│ │ │ │ ├── Json.java
│ │ │ │ ├── PageAdapter.java
│ │ │ │ ├── PageParam.java
│ │ │ │ ├── RedisUtil.java
│ │ │ │ ├── SimpleCaptcha.java
│ │ │ │ ├── SpelUtil.java
│ │ │ │ └── SpringContextUtils.java
│ │ │ └── xss
│ │ │ ├── XssUtil.java
│ │ │ └── XssWrapper.java
│ │ └── resources
│ │ └── shop.properties
│ ├── yami-shop-mp
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── mp
│ │ │ ├── builder
│ │ │ │ ├── AbstractBuilder.java
│ │ │ │ ├── ImageBuilder.java
│ │ │ │ └── TextBuilder.java
│ │ │ ├── component
│ │ │ │ ├── WxMaInRedisConfig.java
│ │ │ │ ├── WxMaServiceClusterImpl.java
│ │ │ │ ├── WxMpInRedisConfigStorage.java
│ │ │ │ └── WxMpServiceClusterImpl.java
│ │ │ ├── config
│ │ │ │ ├── WxMaConfiguration.java
│ │ │ │ ├── WxMpConfiguration.java
│ │ │ │ ├── WxPayConfiguration.java
│ │ │ │ └── bean
│ │ │ │ ├── WxMiniApp.java
│ │ │ │ ├── WxMp.java
│ │ │ │ └── WxPay.java
│ │ │ ├── controller
│ │ │ │ └── api
│ │ │ │ └── WxPortalController.java
│ │ │ └── handler
│ │ │ ├── AbstractHandler.java
│ │ │ └── MenuHandler.java
│ │ └── resources
│ │ ├── ma.properties
│ │ ├── mp.properties
│ │ ├── pay.properties
│ │ └── xxx.p12
│ ├── yami-shop-quartz
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── quartz
│ │ │ ├── config
│ │ │ │ ├── QuartzCustomizerConfig.java
│ │ │ │ ├── QuartzJob.java
│ │ │ │ └── ScheduleManager.java
│ │ │ ├── controller
│ │ │ │ ├── ScheduleJobController.java
│ │ │ │ └── ScheduleJobLogController.java
│ │ │ ├── dao
│ │ │ │ ├── ScheduleJobLogMapper.java
│ │ │ │ └── ScheduleJobMapper.java
│ │ │ ├── enums
│ │ │ │ └── ScheduleStatus.java
│ │ │ ├── event
│ │ │ │ └── ScheduleJobEvent.java
│ │ │ ├── listener
│ │ │ │ └── SysJobListener.java
│ │ │ ├── model
│ │ │ │ ├── ScheduleJob.java
│ │ │ │ └── ScheduleJobLog.java
│ │ │ ├── service
│ │ │ │ ├── ScheduleJobLogService.java
│ │ │ │ ├── ScheduleJobService.java
│ │ │ │ └── impl
│ │ │ │ ├── ScheduleJobLogServiceImpl.java
│ │ │ │ └── ScheduleJobServiceImpl.java
│ │ │ └── util
│ │ │ └── SpringBeanTaskUtil.java
│ │ └── resources
│ │ ├── application-quartz.yml
│ │ └── mapper
│ │ ├── ScheduleJobLogMapper.xml
│ │ └── ScheduleJobMapper.xml
│ ├── yami-shop-security
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ └── security
│ │ │ ├── config
│ │ │ │ ├── AuthorizationServerConfig.java
│ │ │ │ ├── TokenConfig.java
│ │ │ │ └── WebSecurityConfig.java
│ │ │ ├── constants
│ │ │ │ └── SecurityConstants.java
│ │ │ ├── controller
│ │ │ │ └── SysLoginController.java
│ │ │ ├── dao
│ │ │ │ └── AppConnectMapper.java
│ │ │ ├── enums
│ │ │ │ └── App.java
│ │ │ ├── exception
│ │ │ │ ├── BadCredentialsException.java
│ │ │ │ ├── BadCredentialsExceptionBase.java
│ │ │ │ ├── BaseYamiAuth2Exception.java
│ │ │ │ ├── ImageCodeNotMatchException.java
│ │ │ │ ├── ImageCodeNotMatchExceptionBase.java
│ │ │ │ ├── UnauthorizedException.java
│ │ │ │ ├── UnauthorizedExceptionBase.java
│ │ │ │ ├── UnknownGrantTypeException.java
│ │ │ │ ├── UnknownGrantTypeExceptionBase.java
│ │ │ │ ├── UsernameNotFoundException.java
│ │ │ │ ├── UsernameNotFoundExceptionBase.java
│ │ │ │ ├── WxErrorException.java
│ │ │ │ ├── WxErrorExceptionBase.java
│ │ │ │ └── YamiAuth2Exception.java
│ │ │ ├── handler
│ │ │ │ ├── LoginAuthFailedHandler.java
│ │ │ │ └── LoginAuthSuccessHandler.java
│ │ │ ├── model
│ │ │ │ └── AppConnect.java
│ │ │ ├── permission
│ │ │ │ └── PermissionService.java
│ │ │ ├── provider
│ │ │ │ ├── AbstractUserDetailsAuthenticationProvider.java
│ │ │ │ ├── AuthenticationTokenParser.java
│ │ │ │ └── MpAuthenticationProvider.java
│ │ │ ├── service
│ │ │ │ ├── AppConnectService.java
│ │ │ │ ├── YamiClientDetailsService.java
│ │ │ │ ├── YamiSysUser.java
│ │ │ │ ├── YamiUser.java
│ │ │ │ ├── YamiUserDetailsService.java
│ │ │ │ └── impl
│ │ │ │ └── AppConnectServiceImpl.java
│ │ │ ├── token
│ │ │ │ ├── MpAuthenticationToken.java
│ │ │ │ └── MyAuthenticationToken.java
│ │ │ └── util
│ │ │ ├── SecurityUtils.java
│ │ │ └── YamiTokenServices.java
│ │ └── resources
│ │ └── mapper
│ │ └── AppConnectMapper.xml
│ ├── yami-shop-service
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── yami
│ │ │ └── shop
│ │ │ ├── dao
│ │ │ │ ├── AreaMapper.java
│ │ │ │ ├── AttachFileMapper.java
│ │ │ │ ├── BasketMapper.java
│ │ │ │ ├── BrandMapper.java
│ │ │ │ ├── CategoryBrandMapper.java
│ │ │ │ ├── CategoryMapper.java
│ │ │ │ ├── CategoryPropMapper.java
│ │ │ │ ├── DeliveryMapper.java
│ │ │ │ ├── HotSearchMapper.java
│ │ │ │ ├── IndexImgMapper.java
│ │ │ │ ├── LoginHistMapper.java
│ │ │ │ ├── MessageMapper.java
│ │ │ │ ├── NoticeMapper.java
│ │ │ │ ├── OrderItemMapper.java
│ │ │ │ ├── OrderMapper.java
│ │ │ │ ├── OrderRefundMapper.java
│ │ │ │ ├── OrderSettlementMapper.java
│ │ │ │ ├── PickAddrMapper.java
│ │ │ │ ├── ProdCommMapper.java
│ │ │ │ ├── ProdImgMapper.java
│ │ │ │ ├── ProdPropMapper.java
│ │ │ │ ├── ProdPropValueMapper.java
│ │ │ │ ├── ProdTagMapper.java
│ │ │ │ ├── ProdTagReferenceMapper.java
│ │ │ │ ├── ProductMapper.java
│ │ │ │ ├── ShopDetailMapper.java
│ │ │ │ ├── SkuMapper.java
│ │ │ │ ├── SmsLogMapper.java
│ │ │ │ ├── TranscityFreeMapper.java
│ │ │ │ ├── TranscityMapper.java
│ │ │ │ ├── TransfeeFreeMapper.java
│ │ │ │ ├── TransfeeMapper.java
│ │ │ │ ├── TransportMapper.java
│ │ │ │ ├── UserAddrMapper.java
│ │ │ │ ├── UserAddrOrderMapper.java
│ │ │ │ ├── UserCollectionMapper.java
│ │ │ │ └── UserMapper.java
│ │ │ └── service
│ │ │ ├── AreaService.java
│ │ │ ├── AttachFileService.java
│ │ │ ├── BasketService.java
│ │ │ ├── BrandService.java
│ │ │ ├── CategoryBrandService.java
│ │ │ ├── CategoryPropService.java
│ │ │ ├── CategoryService.java
│ │ │ ├── DeliveryService.java
│ │ │ ├── HotSearchService.java
│ │ │ ├── IndexImgService.java
│ │ │ ├── MessageService.java
│ │ │ ├── MyOrderService.java
│ │ │ ├── NoticeService.java
│ │ │ ├── OrderItemService.java
│ │ │ ├── OrderService.java
│ │ │ ├── OrderSettlementService.java
│ │ │ ├── PayService.java
│ │ │ ├── PickAddrService.java
│ │ │ ├── ProdCommService.java
│ │ │ ├── ProdPropService.java
│ │ │ ├── ProdPropValueService.java
│ │ │ ├── ProdTagReferenceService.java
│ │ │ ├── ProdTagService.java
│ │ │ ├── ProductService.java
│ │ │ ├── ShopDetailService.java
│ │ │ ├── SkuService.java
│ │ │ ├── SmsLogService.java
│ │ │ ├── TranscityFreeService.java
│ │ │ ├── TranscityService.java
│ │ │ ├── TransfeeFreeService.java
│ │ │ ├── TransfeeService.java
│ │ │ ├── TransportManagerService.java
│ │ │ ├── TransportService.java
│ │ │ ├── UserAddrOrderService.java
│ │ │ ├── UserAddrService.java
│ │ │ ├── UserCollectionService.java
│ │ │ ├── UserService.java
│ │ │ └── impl
│ │ │ ├── AreaServiceImpl.java
│ │ │ ├── AttachFileServiceImpl.java
│ │ │ ├── BasketServiceImpl.java
│ │ │ ├── BrandServiceImpl.java
│ │ │ ├── CategoryBrandServiceImpl.java
│ │ │ ├── CategoryPropServiceImpl.java
│ │ │ ├── CategoryServiceImpl.java
│ │ │ ├── DeliveryServiceImpl.java
│ │ │ ├── HotSearchServiceImpl.java
│ │ │ ├── IndexImgServiceImpl.java
│ │ │ ├── MessageServiceImpl.java
│ │ │ ├── MyOrderServiceImpl.java
│ │ │ ├── NoticeServiceImpl.java
│ │ │ ├── OrderItemServiceImpl.java
│ │ │ ├── OrderServiceImpl.java
│ │ │ ├── OrderSettlementServiceImpl.java
│ │ │ ├── PayServiceImpl.java
│ │ │ ├── PickAddrServiceImpl.java
│ │ │ ├── ProdCommServiceImpl.java
│ │ │ ├── ProdPropServiceImpl.java
│ │ │ ├── ProdPropValueServiceImpl.java
│ │ │ ├── ProdTagReferenceServiceImpl.java
│ │ │ ├── ProdTagServiceImpl.java
│ │ │ ├── ProductServiceImpl.java
│ │ │ ├── ShopDetailServiceImpl.java
│ │ │ ├── SkuServiceImpl.java
│ │ │ ├── SmsLogServiceImpl.java
│ │ │ ├── TranscityFreeServiceImpl.java
│ │ │ ├── TranscityServiceImpl.java
│ │ │ ├── TransfeeFreeServiceImpl.java
│ │ │ ├── TransfeeServiceImpl.java
│ │ │ ├── TransportManagerServiceImpl.java
│ │ │ ├── TransportServiceImpl.java
│ │ │ ├── UserAddrOrderServiceImpl.java
│ │ │ ├── UserAddrServiceImpl.java
│ │ │ ├── UserCollectionServiceImpl.java
│ │ │ └── UserServiceImpl.java
│ │ └── resources
│ │ └── mapper
│ │ ├── AreaMapper.xml
│ │ ├── AttachFileMapper.xml
│ │ ├── BasketMapper.xml
│ │ ├── BrandMapper.xml
│ │ ├── CategoryBrandMapper.xml
│ │ ├── CategoryMapper.xml
│ │ ├── CategoryPropMapper.xml
│ │ ├── DeliveryMapper.xml
│ │ ├── HotSearchMapper.xml
│ │ ├── IndexImgMapper.xml
│ │ ├── LoginHistMapper.xml
│ │ ├── MessageMapper.xml
│ │ ├── NoticeMapper.xml
│ │ ├── OrderItemMapper.xml
│ │ ├── OrderMapper.xml
│ │ ├── OrderSettlementMapper.xml
│ │ ├── PickAddrMapper.xml
│ │ ├── ProdCommMapper.xml
│ │ ├── ProdImgMapper.xml
│ │ ├── ProdPropMapper.xml
│ │ ├── ProdPropValueMapper.xml
│ │ ├── ProdTagMapper.xml
│ │ ├── ProdTagReferenceMapper.xml
│ │ ├── ProductMapper.xml
│ │ ├── ShopDetailMapper.xml
│ │ ├── SkuMapper.xml
│ │ ├── SmsLogMapper.xml
│ │ ├── TranscityFreeMapper.xml
│ │ ├── TranscityMapper.xml
│ │ ├── TransfeeFreeMapper.xml
│ │ ├── TransfeeMapper.xml
│ │ ├── TransportMapper.xml
│ │ ├── UserAddrMapper.xml
│ │ ├── UserAddrOrderMapper.xml
│ │ ├── UserCollectionMapper.xml
│ │ └── UserMapper.xml
│ └── yami-shop-sys
│ ├── pom.xml
│ └── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── yami
│ │ └── shop
│ │ └── sys
│ │ ├── aspect
│ │ │ └── SysLogAspect.java
│ │ ├── constant
│ │ │ ├── Constant.java
│ │ │ └── MenuType.java
│ │ ├── controller
│ │ │ ├── SysConfigController.java
│ │ │ ├── SysLogController.java
│ │ │ ├── SysMenuController.java
│ │ │ ├── SysRoleController.java
│ │ │ └── SysUserController.java
│ │ ├── dao
│ │ │ ├── SysConfigMapper.java
│ │ │ ├── SysLogMapper.java
│ │ │ ├── SysMenuMapper.java
│ │ │ ├── SysRoleMapper.java
│ │ │ ├── SysRoleMenuMapper.java
│ │ │ ├── SysUserMapper.java
│ │ │ └── SysUserRoleMapper.java
│ │ ├── dto
│ │ │ └── UpdatePasswordDto.java
│ │ ├── model
│ │ │ ├── SysConfig.java
│ │ │ ├── SysLog.java
│ │ │ ├── SysMenu.java
│ │ │ ├── SysRole.java
│ │ │ ├── SysRoleMenu.java
│ │ │ ├── SysUser.java
│ │ │ └── SysUserRole.java
│ │ └── service
│ │ ├── SysConfigService.java
│ │ ├── SysLogService.java
│ │ ├── SysMenuService.java
│ │ ├── SysRoleService.java
│ │ ├── SysUserService.java
│ │ └── impl
│ │ ├── SysConfigServiceImpl.java
│ │ ├── SysLogServiceImpl.java
│ │ ├── SysMenuServiceImpl.java
│ │ ├── SysRoleServiceImpl.java
│ │ └── SysUserServiceImpl.java
│ └── resources
│ └── mapper
│ ├── SysConfigMapper.xml
│ ├── SysLogMapper.xml
│ ├── SysMenuMapper.xml
│ ├── SysRoleMapper.xml
│ ├── SysRoleMenuMapper.xml
│ ├── SysUserMapper.xml
│ └── SysUserRoleMapper.xml
└── 好例子网_gz-yami-mall4j-master (1).zip
353 directories, 1331 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论