一、项目介绍
mallplus项目是一套电商系统,包括前台商城系统及后台管理系统,小程序,h5,基于SpringBoot+MyBatis实现。
前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。
后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、代码生成设置等模块 分销商城,积分商城
二、案例展示
后台项目演示:http://www.yjlive.cn:8090/
移动端项目演示:http://www.yjlive.cn:8082/
pc项目演示:http://www.yjlive.cn:8088/
三、项目结构
mall
├── mallplus-mbg -- MyBatisGenerator生成的数据库操作代码
├── mallplus-admin -- 后台商城管理系统接口
├── mall-search -- 基于Elasticsearch的商品搜索系统
├── mallplus-portal -- 前台商城系统接口
└── mall-demo -- 框架搭建时的测试代码
├── 前端项目--`mallplus-admin-web
├── h5前端项目--`vue-js-master`
├── pc前端项目--`Mall-Vue-master`
├── 小前端项目--`wechatapp`
四、技术架构
cms_*:内容管理模块相关表
oms_*:订单管理模块相关表
pms_*:商品模块相关表
sms_*:营销模块相关表
ums_*:会员模块相关表
五.mall中使用的技术
mall采用现阶主流技术实现,涵盖了一般项目中几乎所有使用的技术。
技术 版本 说明
Spring Boot 2.1.3 容器+MVC框架
Spring Security 5.1.4 认证和授权框架
MyBatis-plus 3.4.6 ORM框架
MyBatisGenerator 1.3.3 数据层代码生成
PageHelper 5.1.8 MyBatis物理分页插件
Swagger-UI 2.7.0 文档生产工具
Elasticsearch 6.2.2 搜索引擎
RabbitMq 3.7.14 消息队列
Redis 3.2 分布式缓存
MongoDb 3.2 NoSql数据库
Docker 18.09.0 应用容器引擎
Druid 1.1.10 数据库连接池
OSS 2.5.0 对象存储
JWT 0.9.0 JWT登录支持
Lombok 1.18.6 简化对象封装工具
# mallcloud-platform
springcloud版本商城 https://gitee.com/catshen/zscat_sw
## 如果您觉得有帮助,请点右上角 "Star" 支持一下谢谢
[TOC]
## 1. 项目介绍
* 账号密码:admin/admin
* 应用监控账号密码:admin/admin
* 配置中心账号密码:nacos/nacos
* APM监控账号密码:admin/admin
* Grafana账号:mall/mall
* txlcn事务管理器密码:admin
* 任务管理账号密码:admin/123456
* **演示环境有全方位的监控示例:日志系统 + APM系统 + GPE系统**
* 前后端分离的企业级微服务架构
* 基于`Spring Boot 2.0.X`、`Spring Cloud Finchley`和`Spring Cloud Alibaba`
* 深度定制`Spring Security`真正实现了基于`RBAC`、`jwt`和`oauth2`的无状态统一权限认证的解决方案
* 提供应用管理,方便第三方系统接入
* 引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手容易
* 注重代码规范,严格控制包依赖,每个工程基本都是最小依赖
* 非常适合学习和企业中使用
> cloud框架和组件来源:https://gitee.com/owenwangwen/open-capacity-platform
https://gitee.com/zlt2000/microservices-platform
> 业务逻辑来源:https://github.com/shenzhuan/mallplus
## 2. 项目总体架构图
## 3. 功能介绍
* **统一认证功能**
* 支持oauth2的四种模式登录
* 支持用户名、密码加图形验证码登录
* 支持手机号加密码登录
* 支持openId登录
* 支持第三方系统单点登录
* **分布式系统基础支撑**
* 服务注册发现、路由与负载均衡
* 服务降级与熔断
* 服务限流(url/方法级别)
* 统一配置中心
* 统一日志中心
* 统一分布式缓存操作类、cacheManager配置扩展
* 分布式锁
* 分布式任务调度器
* 支持CI/CD持续集成(包括前端和后端)
* 分布式高性能Id生成器
* 分布式事务
* **系统监控功能**
* 服务调用链监控
* 应用拓扑图
* 慢服务检测
* 服务Metric监控
* 应用监控(应用健康、JVM、内存、线程)
* 错误日志查询
* 慢查询SQL监控
* 应用吞吐量监控(qps、rt)
* 服务降级、熔断监控
* 服务限流监控
* 分库分表、读写分离
* **业务基础功能支撑**
* 高性能方法级幂等性支持
* RBAC权限管理,实现细粒度控制(方法、url级别)
* 快速实现导入、导出功能
* 数据库访问层自动实现crud操作
* 代码生成器
* 基于Hutool的各种便利开发工具
* 网关聚合所有服务的Swagger接口文档
* 统一跨域处理
* 统一异常处理
## 4. 模块说明
```lua
mallcloud -- 父项目,公共依赖
│ ├─mall-business -- 业务模块一级工程
│ │ ├─user-center -- 用户中心[7000]
│ │ ├─file-center -- 文件中心[5000]
│ │ ├─member-center -- 会员中心[7001]
│ │ ├─goods-center -- 商品中心[7002]
│ │ ├─order-center -- 订单中心[7003]
│ │ ├─marking-center -- 营销中心[7004]
│ │─mall-commons -- 通用工具一级工程
│ │ ├─mall-auth-client-spring-boot-starter -- 封装spring security client端的通用操作逻辑
│ │ ├─mall-common-spring-boot-starter -- 封装通用操作逻辑
│ │ ├─mall-db-spring-boot-starter -- 封装数据库通用操作逻辑
│ │ ├─mall-log-spring-boot-starter -- 封装log通用操作逻辑
│ │ ├─mall-redis-spring-boot-starter -- 封装Redis通用操作逻辑
│ │ ├─mall-ribbon-spring-boot-starter -- 封装Ribbon和Feign的通用操作逻辑
│ │ ├─mall-sentinel-spring-boot-starter -- 封装Sentinel的通用操作逻辑
│ │ ├─mall-swagger2-spring-boot-starter -- 封装Swagger通用操作逻辑
│ ├─mall-config -- 配置中心
│ ├─mall-doc -- 项目文档
│ ├─mall-gateway -- api网关一级工程
│ │ ├─zuul-gateway -- netflix-zuul[8080]
│ ├─mall-job -- 分布式任务调度一级工程
│ │ ├─job-admin -- 任务管理器[8081]
│ │ ├─job-core -- 任务调度核心代码
│ │ ├─job-executor-samples -- 任务执行者executor样例[8082]
│ ├─mall-monitor -- 监控一级工程
│ │ ├─sc-admin -- 应用监控[6500]
│ │ ├─log-center -- 日志中心[6200]
│ ├─mall-uaa -- spring-security认证中心[8000]
│ ├─mall-register -- 注册中心Nacos[8848]
│ ├─mall-web -- 前端一级工程
│ │ ├─back-web -- 后台前端[8066]
│ ├─mall-transaction -- 事务一级工程
│ │ ├─txlcn-tm -- tx-lcn事务管理器[7970]
│ ├─mall-demo -- demo一级工程
│ │ ├─txlcn-demo -- txlcn的demo
│ │ ├─sharding-jdbc-demo -- sharding-jdbc的demo
```
前期准备
1. 在idea安装lombok插件
1. 在idea安装MybatisX Plugin插件(选装)
1. 准备好数据库5.7+或8.0.14+
1. 初始化数据库
1. 脚本路径:根目录 mallcloud.sql
1. 准备好Redis
1. 准备好注册中心Nacos
1. 启动命令地址:mall-register\nacos\bin
1. Linux/Unix/Mac
1. 启动命令(standalone代表着单机模式运行,非集群模式):
1. sh startup.sh -m standalone
1. Windows
1. 启动命令:
1. cmd startup.cmd
1. 或者双击startup.cmd运行文件
1. 修改mall-config/src/main/resources/application-dev.properties里面的配置参数
1. 数据库配置
1. redis配置
1. elasticsearch配置
1. 非必须,如果不启用日志功能可不管
1. sentinel配置
1. 非必须,主要是用于展示应用吞吐量
1. 修改每个工程的bootstrap.yml文件里的nacos地址参数,如nacos是在本机启动的话就改为以下地址
* mall:
* nacos:
* server-addr: 127.0.0.1:8848
1. 项目启动:
1. 启动认证中心mall-uaa
1. 启动用户中心mall-bussiness/user-center
1. 启动网关mall-gateway/zuul-gateway
1. * 下面是业务模块,不一定需要全部启动
1. 启动订单中心mall-bussiness/order-center
1. 启动会员中心mall-bussiness/member-center
1. 启动商品中心mall-bussiness/goods-center
1. 启动营销中心mall-bussiness/marking-center
1. 启动内容中心mall-bussiness/cms-center
1. 启动前端工程:解压跟目录的mallcloud-admin-vue.zip,为后台管理的vue前端,
1. 需要安装nodejs环境,然后进入此目录,npm install ,成功后执行 npm run dev
mallplus商户平台端小程序 + APP + 公众号 + H5 操作文档
mallplus多商户商城 操作文档
基于SpringBoot+MyBatis+VUE的开源多商户商城系统,可二次开发
mallplus多商户商城 二级分销操作文档