README.md 10.5 KB
Newer Older
H
hxrui 已提交
1 2 3
![](https://img.shields.io/badge/youlai--mall-1.0-blue)
[![](https://img.shields.io/github/stars/hxrui/youlai-mall.svg?style=social&label=Stars)](https://github.com/hxrui/youlai-mall/stargazers)
[![](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://github.com/hxrui/youlai-mall/blob/master/LICENSE)
4
![](https://img.shields.io/badge/SpringBoot-2.4.2-brightgreen.svg)
H
hxrui 已提交
5 6
![](https://img.shields.io/badge/SpringCloud-2020-green.svg)
![](https://img.shields.io/badge/vue--element--admin-v4.4.0-orange)
H
haoxianrui@ 已提交
7

H
haoxr 已提交
8
## 项目介绍
H
hxrui 已提交
9

H
haoxr 已提交
10 11 12 13
`youlai-mall` 是基于Spring Boot 2.4、Spring Cloud 2020 & Alibaba、Vue、element-ui、uni-app快速构建的一套**全栈**开源商城平台,包括微服务应用、管理平台、微信小程序及APP应用

## 项目特色

14
- 项目使用都是最新主流的**开源**框架,无过度自定义封装的逻辑,易理解上手和方便扩展
H
hxrui 已提交
15 16 17 18 19

- 基于Spring Boot 2.4、Spring Cloud 2020 & Alibaba 一站式微服务解决方案快速开发分布式服务

- 实现Spring Cloud OAuth2、Spring Cloud Gateway、JWT分布式统一认证鉴权和`RBAC` 权限系统设计

H
haoxr 已提交
20
- 使用vue-element-admin的后台前端解决方案,基于Vue和element-ui快速搭建**前后端分离**的商城管理平台
H
hxrui 已提交
21 22 23 24 25

- 通过`uni-app`使用Vue开发实现跨所有前端的应用,包含微信小程序、APP应用

- 使用Docker快速构建项目环境和一键打包部署微服务项目

H
haoxr 已提交
26
## 项目愿景
H
hxrui 已提交
27

H
haoxr 已提交
28
项目从`0``1`的构建过程完整无保留的通过博客文章进行说明,且开源不图任何利益。
H
hxrui 已提交
29

H
haoxr 已提交
30
项目慢慢成型的路上离不开支持还有默默点star的那些小伙伴,谢谢!
H
hxrui 已提交
31

H
haoxr 已提交
32
## 项目地址
H
hxrui 已提交
33 34 35 36

### 1. 体验 
**商城管理平台访问地址:** [http://www.youlai.store](https://www.youlai.store/)
 
37
【有来小店】微信小程序体验码,扫描后申请体验即可
H
hxrui 已提交
38

39
![](https://gitee.com/haoxr/image/raw/master/default/%E4%B8%89%E7%A0%81%E5%90%88%E4%B8%80.jpg)
H
hxrui 已提交
40 41 42 43 44 45 46

### 2. 源码
 项目名称 | Github | 码云
 ---|---|---
 微服务后台 |[youlai-mall](https://github.com/hxrui/youlai-mall) |[youlai-mall](https://gitee.com/youlaitech/youlai-mall) 
 管理前端 |  [youlai-mall-admin](https://github.com/hxrui/youlai-mall-admin)| [youlai-mall-admin](https://gitee.com/youlaitech/youlai-mall-admin)
 微信小程序 | [youlai-mall-weapp](https://github.com/hxrui/youlai-mall-weapp)| [youlai-mall-weapp](https://gitee.com/youlaitech/youlai-mall-weapp) 
H
haoxr 已提交
47
 APP应用 | [youlai-mall-app](https://github.com/hxrui/youlai-mall-app)| [youlai-mall-app](https://gitee.com/youlaitech/youlai-mall-app)
H
haoxianrui@ 已提交
48

H
haoxr 已提交
49
## 项目预览
H
haoxr 已提交
50

H
hxrui 已提交
51 52
### 1. 商城管理平台

H
haoxr 已提交
53
#### 1.1 系统管理
54
![](https://gitee.com/haoxr/image/raw/master/default/%E7%B3%BB%E7%BB%9F%E7%AE%A1%E7%90%86-%E5%8E%8B%E7%BC%A9.jpg)
H
haoxr 已提交
55
#### 1.2 商品管理
56
![](https://gitee.com/haoxr/image/raw/master/default/%E5%95%86%E5%9F%8E%E7%AE%A1%E7%90%86.jpg)
H
hxrui 已提交
57

58
### 2. 微信小程序
H
hxrui 已提交
59

60
![](https://gitee.com/haoxr/image/raw/master/default/DGAf84rIWwNFqJE.jpg)
H
haoxr 已提交
61

H
haoxr 已提交
62
## 项目结构
H
haoxianrui@ 已提交
63 64 65

``` lua
youlai-mall
H
haoxr 已提交
66
├── document
H
haoxr 已提交
67 68
    ├── nacos -- Nacos配置文件
    ├── sql   -- mysql数据库脚本
H
haoxr 已提交
69
├── mall-oms
H
haoxr 已提交
70 71
    ├── oms-api -- 订单微服务的远程调用客户端
    ├── oms-biz -- 订单微服务
H
haoxr 已提交
72
├── mall-pms
H
haoxr 已提交
73 74
    ├── pms-api -- 商品微服务的远程调用客户端
    ├── pms-biz -- 商品微服务
H
haoxr 已提交
75
    ├── pms-search -- 商品搜索微服务
H
haoxr 已提交
76
├── mall-sms
H
haoxr 已提交
77 78
    ├── sms-api -- 营销微服务的远程调用客户端
    ├── sms-biz -- 营销微服务
H
haoxr 已提交
79
├── mall-ums
H
haoxr 已提交
80 81
    ├── ums-api -- 会员微服务的远程调用客户端
    ├── ums-biz -- 会员微服务
H
haoxr 已提交
82
├── youlai-admin 
H
haoxr 已提交
83 84 85
    ├── admin-api -- 系统管理微服务的远程调用客户端
    ├── admin-biz -- 系统管理微服务
├── youlai-auth     -- 认证中心【Oauth2认证服务器】
H
haoxr 已提交
86
├── youlai-common   -- 公共模块
H
haoxr 已提交
87 88
└── youlai-gateway  -- Gateway网关【Oauth2资源服务器】
└── youlai-registry -- Nacos应用
H
haoxianrui@ 已提交
89 90
```

H
haoxr 已提交
91
## 核心技术栈
H
haoxr 已提交
92 93
| 后端技术 |  版本号                     
| -------------------- |  -------------------- |                             
94
| SpringBoot|2.4.2                    
95 96
| Spring Cloud|2020.0.1
| Spring Cloud Alibaba|  2.2.5.RELEASE
H
haoxr 已提交
97
| MyBatis-Plus|3.4.0
98 99 100 101
| Lombok |1.18.18
| Hutool |5.5.8
| Knife4j | 2.0.5
| MinIO | 7.1.0
H
haoxr 已提交
102 103 104 105 106 107 108

| 后台前端 |  版本号 | 微信小程序 |  版本号| APP |  版本号
|---- |  ---- | ---- | ----  |---- | ----
| element-ui | 2.13.2 | uni-app | 2.8.11| vant | 2.5.4

## 项目启动

109
### 1. 后台微服务启动 
H
haoxr 已提交
110

111
####  云环境项目启动
112

113
项目依赖环境(MySQL8、Redis、MinIO、Nacos)默认均使用`有来技术`云环境,项目启动极其方便,步骤如下:
114 115

1. **启动`Nacos`服务**
116 117 118

    IDEA下方工具栏点击Terminal终端命令行,执行`cd youlai-registry/nacos/bin`命令切换到Nacos的启动脚本文件夹下,然后执行`startup -m standalone`命令启动Nacos服务;

119
2. **启动平台基础服务**
120 121

    分别启动`youlai-gateway`、`youlai-auth`、 `youlai-admin`模块,
122
    启动类分别对应的是GatewayApplication、AuthApplication以及`youlai-admin`的子模块`admin-biz`的AdminApplication类,至此完成整个项目的启动;
123

124 125
3. 至此后台服务启动完毕,如需商城服务,启动对应模块的子模块biz的启动类即可。

126
**注**: 云环境是无条件的提供给大家,但千万不要改动云环境的数据和配置,因为改动会导致整个项目无法运行,考虑下开发人员和其他小伙伴,手下留情。
127 128


129
####  本地环境项目启动
130

131
云环境不能改动数据和配置,如需修改,建议本地环境搭建启动,步骤如下:
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147

1. **安装环境**

    安装`MySQL8`、`Redis`、`MinIO`,其中`MinIO`按需安装
    
2. **创建数据库**
    
    - 新建平台数据库,执行项目`document/sql`下的SQL脚本完成数据库创建,基础sql脚本为`youlai.sql`,商城脚本为`mall-*`,商城数据库按需创建
   
    - 创建`Nacos`数据库,执行脚本`youlai-registry/nacos/conf/nacos-mysql.sql`完成`Nacos`数据库的初始化
    
3. **Nacos配置**
    
    - 修改`Nacos`数据源,进入配置`youlai-registry/nacos/conf/application.properties`将数据源修改为自己的环境连接
    
    - 导入`Nacos`配置,在启动`Nacos`服务进入控制台导入`document/nacos/DEFAULT_GROUP.zip`配置,然后分别进入各个微服务配置修改Redis、MySQL、MinIO以及微服务的注册IP
148
   
H
haoxr 已提交
149
4. 至此环境配置准备完毕,接下来按照云环境`启动平台基础服务`步骤启动服务即可。
150

151
### 2. 后台前端启动 
H
haoxianrui@ 已提交
152

153
1. 本机安装Python和Node环境
H
haoxr 已提交
154 155
2. npm install
3. npm run dev
156
4. 访问 http://localhost:9527
H
haoxianrui@ 已提交
157

158
### 3. 微信小程序启动
H
haoxr 已提交
159

160 161 162 163 164
1. 下载`HBuilder X``微信开发者工具`
2. 微信公众平台申请小程序,获得小程序的AppID
3. `微信开发者工具`微信扫码登录,开启服务端口,点击工具栏`设置`->`安全设置`->`安全`->`服务端口`选择打开
4. `Hbuilder X`替换项目AppID成自己的,点击`manifest.json`文件->微信小程序配置
5. `Hbuilder X`工具栏点击 `运行`->`运行到小程序模拟器`->`微信开发者工具`
H
haoxr 已提交
165

H
haoxianrui@ 已提交
166 167
## 项目文档

168
> 后台微服务
H
haoxr 已提交
169

H
haoxr 已提交
170 171 172 173 174 175
1. [Spring Cloud实战 | 第一篇:Windows搭建Nacos服务 ](https://www.cnblogs.com/haoxianrui/p/13581881.html)
2. [Spring Cloud实战 | 第二篇:Spring Cloud整合Nacos实现注册中心](https://www.cnblogs.com/haoxianrui/p/13584204.html)
3. [Spring Cloud实战 | 第三篇:Spring Cloud整合Nacos实现配置中心](https://www.cnblogs.com/haoxianrui/p/13585125.html)
4. [Spring Cloud实战 | 第四篇:Spring Cloud整合Gateway实现API网关](https://www.cnblogs.com/haoxianrui/p/13608650.html)
5. [Spring Cloud实战 | 第五篇:Spring Cloud整合OpenFeign实现微服务之间的调用](https://www.cnblogs.com/haoxianrui/p/13615592.html)
6. [Spring Cloud实战 | 第六篇:Spring Cloud Gateway+Spring Security OAuth2+JWT实现微服务统一认证授权](https://www.cnblogs.com/haoxianrui/p/13719356.html)
H
haoxr 已提交
176 177
7. [Spring Cloud实战 | 最七篇:Spring Cloud Gateway+Spring Security OAuth2集成统一认证授权平台下实现注销使JWT失效方案](https://www.cnblogs.com/haoxianrui/p/13740264.html)
8. [Spring Cloud实战 | 最八篇:Spring Cloud +Spring Security OAuth2+ Vue前后端分离模式下无感知刷新实现JWT续期](https://www.cnblogs.com/haoxianrui/p/14022632.html)
178
9. [Spring Cloud实战 | 最九篇:Spring Security OAuth2认证服务器统一认证自定义异常处理](https://www.cnblogs.com/haoxianrui/p/14028366.html)
H
haoxr 已提交
179
10. [Spring Cloud实战 | 第十篇 :Spring Cloud + Nacos整合Seata 1.4.1最新版本实现微服务架构中的分布式事务,进阶之路必须要迈过的槛](https://www.cnblogs.com/haoxianrui/p/14280184.html)
H
haoxr 已提交
180 181
11. [Spring Cloud实战 | 第十一篇 :Spring Cloud Gateway网关实现对RESTful接口权限和按钮权限细粒度控制
    ](https://www.cnblogs.com/haoxianrui/p/14396990.html)
H
haoxr 已提交
182

183
> 后台管理前端
H
haoxr 已提交
184

185
1. [vue-element-admin实战 | 第一篇: 移除mock接入微服务接口,搭建SpringCloud+Vue前后端分离管理平台](https://www.cnblogs.com/haoxianrui/p/13624548.html)
H
haoxr 已提交
186
2. [vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单](https://www.cnblogs.com/haoxianrui/p/13676619.html)
H
haoxianrui@ 已提交
187

H
haoxr 已提交
188 189
> 微信小程序

190
1. [vue+uni-app商城实战 | 第一篇:从0到1快速开发一个商城微信小程序,无缝接入Spring Cloud OAuth2认证授权登录](https://www.cnblogs.com/haoxianrui/p/13882310.html)
H
haoxr 已提交
191

192
> 应用部署
H
haoxr 已提交
193 194 195 196

1. [Docker实战 | 第一篇:Linux 安装 Docker](https://www.cnblogs.com/haoxianrui/p/14067423.html)
2. [Docker实战 | 第二篇:Docker部署nacos-server:1.4.0](https://www.cnblogs.com/haoxianrui/p/14059009.html)
3. [Docker实战 | 第三篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试](https://www.cnblogs.com/haoxianrui/p/14088400.html)
197
4. [Docker实战 | 第四篇:Docker安装Nginx,实现基于vue-element-admin框架构建的项目线上部署](https://www.cnblogs.com/haoxianrui/p/14091762.html) 
H
haoxr 已提交
198 199
5. [Docker实战 | 第五篇:Docker启用TLS加密解决暴露2375端口引发的安全漏洞,被黑掉三台云主机的教训总结](https://www.cnblogs.com/haoxianrui/p/14095306.html)

200
## 其他说明
H
haoxianrui@ 已提交
201

202
- 如果github拉取失败请移步至码云[https://gitee.com/haoxr](https://gitee.com/haoxr),代码是同步的
H
haoxr 已提交
203

H
haoxr 已提交
204
- 项目在搭建的过程中如您遇到任何问题,可加我微信(haoxianrui)或者微信群,也可在github提issue
H
haoxr 已提交
205

206 207
- 演示环境禁止修改、删除重要数据,请本地部署后测试