docs(README.md):项目文档修改

This commit is contained in:
郝先瑞 2021-06-23 01:49:19 +08:00
parent 46dd161c7f
commit 7d8d3b98bb

232
README.md
View File

@ -1,68 +1,41 @@
![](https://img.shields.io/badge/youlai--mall-v1.0.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)
![](https://img.shields.io/badge/SpringBoot-2.5.0-brightgreen.svg)
![](https://img.shields.io/badge/SpringCloud-2020-green.svg)
![](https://img.shields.io/badge/vue--element--admin-v4.4.0-orange)
## 项目信息
## 项目介绍
#### 项目介绍
`youlai-mall` 是基于Spring Boot 2.5.0、Spring Cloud 2020 &
Alibaba 2021、Vue、Element-UI、uni-app快速构建的一套**全栈**开源商城项目包括微服务应用、管理平台、微信小程序及APP应用
[youlai-mall](https://gitee.com/youlaitech/youlai-mall) 是基于Spring Boot 2.5.0、Spring Cloud 2020 & Alibaba 2021、vue、element-ui、uni-app快速构建的一套全栈开源商城项目。
## 项目特色
项目采用微服务、前后端分离开发模式;汇集全栈主流的技术栈; 涉及 [后端微服务](https://gitee.com/youlaitech/youlai-mall) 、 [前端管理](https://gitee.com/youlaitech/youlai-mall-admin) 、 [微信小程序](https://gitee.com/youlaitech/youlai-mall-weapp) 和 [APP应用](https://gitee.com/youlaitech/youlai-mall-weapp) 等多端的开发。
- 项目使用都是最新主流的**开源**框架,无过度自定义封装的逻辑,易理解上手和方便扩展
#### 技术栈
- 基于Spring Boot 2.5.0、Spring Cloud 2020 & Alibaba 2021一站式微服务解决方案快速开发分布式服务
- **后端技术栈**
- 实现Spring Cloud OAuth2、Spring Cloud Gateway、JWT分布式统一认证鉴权和`RBAC` 权限系统设计
Spring Boot、Spring Cloud、Spring Cloud Alibaba、Spring Security OAuth2、JWT、Mybatis-Plus、Seata、Sentinel、ELK、Redis
- 使用vue-element-admin的后台前端解决方案基于Vue和Element-UI快速搭建**前后端分离**的商城管理平台
- **前端技术栈**
- 通过`uni-app`使用Vue开发实现跨所有前端的应用包含微信小程序、APP应用
vue、element-ui、uni-app、vue-element-admin
- 使用Docker快速构建项目环境和一键打包部署微服务项目
#### 项目地址
## 项目愿景
| 项目名称 | 码云 |
| ---------- | ------------------------------------------------------------ |
| 微服务后台 | [youlai-mall](https://gitee.com/youlaitech/youlai-mall) |
| 管理前端 | [youlai-mall-admin](https://gitee.com/youlaitech/youlai-mall-admin) |
| 微信小程序 | [youlai-mall-weapp](https://gitee.com/youlaitech/youlai-mall-weapp) |
| APP应用 | [youlai-mall-app](https://gitee.com/youlaitech/youlai-mall-app) |
项目从`0`到`1`的构建过程已无保留的在项目文章中说明,真正的开源不图利益。
#### 项目特色
项目慢慢成型的路上离不开支持还有默默点star的那些小伙伴在这里抱拳谢过各位道友了。
- 项目使用的都是当前主流的技术栈,无过度自定义封装,易学习理解和方便二次扩展
- 基于Spring Boot 2.5.0、Spring Cloud 2020 & Alibaba 2021一站式微服务解决方案实现快速开发
- 完整的Spring Security OAuth2 认证中心统一认证授权,网关统一鉴权逻辑
- 特有一套微服务+前后端分离的RBAC权限设计实现Spring Cloud Gateway网关下的RESTful接口细粒度的统一鉴权和vue页面按钮级别权限控制
- 基于vue-element-admin的后台前端解决方案实现动态路由
- 移动端采用uni-app、实现跨多端移动应用开发包括微信小程序、Android和IOS等
- Docker快速构建项目环境和一键打包部署微服务项目
## 项目地址
### 1. 体验
**商城管理平台访问地址:** [http://www.youlai.tech](http://47.117.115.107/)
【有来小店】微信小程序体验码,扫描后申请体验看到直接通过
交流群二维码过期,加我微信我直接拉你进群
![](https://gitee.com/haoxr/image/raw/master/default/%E5%9B%A2%E9%98%9FLOGO_%E5%89%AF%E6%9C%AC.png)
### 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)
APP应用 | [youlai-mall-app](https://github.com/hxrui/youlai-mall-app)| [youlai-mall-app](https://gitee.com/youlaitech/youlai-mall-app)
## 项目预览
### 1. 商城管理平台
#### 1.1 系统管理
![](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)
#### 1.2 商品管理
![](https://gitee.com/haoxr/image/raw/master/default/%E5%95%86%E5%9F%8E%E7%AE%A1%E7%90%86.jpg)
### 2. 微信小程序
![](https://gitee.com/haoxr/image/raw/master/default/DGAf84rIWwNFqJE.jpg)
## 项目结构
#### 项目结构
``` lua
youlai-mall
@ -70,71 +43,49 @@ youlai-mall
├── nacos -- Nacos配置文件
├── sql -- mysql数据库脚本
├── mall-oms
├── oms-api -- 订单中心对外Feign接口
├── oms-api -- 订单中心Feign接口客户端
├── oms-boot -- 订单中心
├── mall-pms
├── pms-api -- 商品中心对外Feign接口
├── pms-api -- 商品中心Feign接口客户端
├── pms-boot -- 商品中心
├── mall-sms
├── sms-api -- 营销中心对外Feign接口
├── sms-api -- 营销中心Feign接口客户端
├── sms-boot -- 营销中心
├── mall-ums
├── ums-api -- 会员中心对外Feign接口
├── ums-api -- 会员中心Feign接口客户端
├── ums-boot -- 会员中心
├── middleware -- 中间件Nacos、Sentinel
├── youlai-admin
├── admin-api -- 系统管理对外Feign接口
├── admin-boot -- 系统管理
├── youlai-auth -- 认证中心【Oauth2认证服务器】
├── admin-api -- 系统管理服务Feign接口客户端
├── admin-boot -- 系统管理服务
├── youlai-auth -- 认证中心【OAuth2认证服务器】
├── youlai-common -- 公共模块
└── youlai-gateway -- Gateway网关【Oauth2资源服务器】
└── youlai-gateway -- Gateway网关【OAuth2资源服务器】
```
## 核心技术栈
| 后端技术 | 版本号
| -------------------- | -------------------- |
| SpringBoot|2.5.0
| Spring Cloud|2020.0.3
| Spring Cloud Alibaba| 2021.1
| Nacos| 2.0.1
| Seata| 1.4.1
|Sentinel | 1.8.1
| MyBatis-Plus|3.4.3
| Lombok |1.18.18
| Hutool |5.5.8
| Knife4j | 2.0.8
| MinIO | 7.1.0
#### 项目架构流程图
| 后台前端 | 版本号 | 微信小程序 | 版本号| APP | 版本号
|---- | ---- | ---- | ---- |---- | ----
| element-ui | 2.13.2 | uni-app | 2.8.11| vant | 2.5.4
![](https://gitee.com/haoxr/image/raw/master/youlai-architecture.jpg)
## 项目预览
#### 系统管理
| ![image-20210621004954228](https://gitee.com/haoxr/image/raw/master/image-20210621004954228.png) | ![image-20210621005011310](https://gitee.com/haoxr/image/raw/master/image-20210621005011310.png) |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![image-20210621005037964](C:\Users\haoxr\AppData\Roaming\Typora\typora-user-images\image-20210621005037964.png) | ![image-20210621005123432](https://gitee.com/haoxr/image/raw/master/image-20210621005123432.png) |
#### 微信小程序
| ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005253.jpg) | ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005338.jpg) | ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005331.jpg) |
| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005349.jpg) | ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005356.jpg) | ![](https://gitee.com/haoxr/image/raw/master/%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20210621005344.jpg) |
## 项目启动
### 1. 后台微服务启动
#### 云环境项目启动
项目依赖环境MySQL8、Redis、MinIO、Nacos默认均使用`有来技术`云环境,项目启动极其方便,步骤如下:
1. **启动`Nacos`服务**
IDEA下方工具栏点击Terminal终端命令行执行`cd middleware/nacos/bin`命令切换到Nacos的启动脚本文件夹下然后执行`startup -m
standalone`命令启动Nacos服务
2. **启动平台基础服务**
分别启动`youlai-gateway`、`youlai-auth`、 `youlai-admin`模块,
启动类分别对应的是GatewayApplication、AuthApplication以及`youlai-admin`的子模块`admin-boot`的AdminApplication类至此完成整个项目的启动
3. 至此后台服务启动完毕如需商城服务启动对应模块的子模块biz的启动类即可。
**注** 云环境是无条件的提供给大家,但千万不要改动云环境的数据和配置,因为改动会导致整个项目无法运行,考虑下开发人员和其他小伙伴,手下留情。
#### 本地环境项目启动
云环境不能改动数据和配置,如需修改,建议本地环境搭建启动,步骤如下:
#### 后台微服务启动
1. **安装环境**
@ -142,26 +93,35 @@ youlai-mall
2. **创建数据库**
- 新建平台数据库,执行项目`document/sql`下的SQL脚本完成数据库创建基础sql脚本为`youlai.sql`,商城脚本为`mall-*`,商城数据库按需创建
- 新建平台数据库,执行项目`document/sql`下的SQL脚本完成数据库创建基础sql脚本为`youlai.sql`,商城业务的脚本为`mall-*`,商城数据库按需创建
- 创建`Nacos`数据库,执行脚本`middleware/nacos/conf/nacos-mysql.sql`完成`Nacos`数据库的初始化
3. **Nacos配置**
3. **Nacos配置和启动(非常重要)**
- 修改`Nacos`数据源,进入配置`middleware/nacos/conf/application.properties`将数据源修改为自己的环境连接
- 导入`Nacos`配置,在启动`Nacos`服务进入控制台导入`document/nacos/DEFAULT_GROUP.zip`配置然后分别进入各个微服务配置修改Redis、MySQL连接
- 启动`Nacos`, IDEA下方工具栏点击Terminal终端命令行执行`cd middleware/nacos/bin`命令切换到`Nacos`的启动脚本文件夹下,然后执行`startup -m standalone`命令启动`Nacos`服务;
4. 至此环境配置准备完毕,接下来按照云环境`启动平台基础服务`步骤启动服务即可。
- 启动`Nacos`成功之后,访问`Nacos`控制台,在浏览器输入 http://localhost:8848/nacos ,输入用户名/密码:nacos/nacos进入管理页面
### 2. 后台前端启动
![](https://gitee.com/haoxr/image/raw/master/20210623012937.png)
- 导入`Nacos`配置,在启动`Nacos`服务进入控制台导入`document/nacos/DEFAULT_GROUP.zip`配置然后分别进入各个项目配置文件中修改MySQL、Redis连接信息即可。
![image-20210623013306256](https://gitee.com/haoxr/image/raw/master/image-20210623013306256.png)
4. `Nacos`启动完成和MySQL、Redis连接信息修改完成后分别启动`youlai-gateway`、`youlai-auth`、 `youlai-admin`模块,
启动类分别对应的是GatewayApplication、AuthApplication以及`youlai-admin`的子模块`admin-boot`的AdminApplication类至此完成整个项目基础服务的启动
#### 管理前端启动
1. 本机安装Node环境
2. npm install
3. npm run dev
4. 访问 http://localhost:9527
### 3. 微信小程序启动
#### 微信小程序启动
1. 下载`HBuilder X`和`微信开发者工具`
2. 微信公众平台申请小程序获得小程序的AppID
@ -170,56 +130,34 @@ youlai-mall
5. Nacos控制台修改`youlai-auth`配置中的微信小程序AppID和AppSecret为自己申请的小程序
6. `Hbuilder X`工具栏点击 `运行`->`运行到小程序模拟器`->`微信开发者工具`
## 项目文档
> 后台微服务
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)
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)
9. [Spring Cloud实战 | 最九篇Spring Security OAuth2认证服务器统一认证自定义异常处理](https://www.cnblogs.com/haoxianrui/p/14028366.html)
10. [Spring Cloud& Alibaba 实战 | 第十篇 Spring Cloud + Nacos整合Seata 1.4.1最新版本实现微服务架构中的分布式事务,进阶之路必须要迈过的槛](https://www.cnblogs.com/haoxianrui/p/14280184.html)
11. [Spring Cloud & Alibaba 实战 | 第十一篇 Spring Cloud Gateway网关实现对RESTful接口权限和按钮权限细粒度控制
](https://www.cnblogs.com/haoxianrui/p/14396990.html)
12. [Spring Cloud & Alibaba 实战 | 第十二篇: Sentinel+Nacos实现流控、熔断降级赋能拥有降级功能的Feign新技能熔断做到熔断降级双剑合璧](https://www.cnblogs.com/haoxianrui/p/14720405.html)
> 后台管理前端
## 接口测试
1. [vue-element-admin实战 | 第一篇: 移除mock接入微服务接口搭建SpringCloud+Vue前后端分离管理平台](https://www.cnblogs.com/haoxianrui/p/13624548.html)
2. [vue-element-admin实战 | 第二篇: 最小改动接入后台实现根据权限动态加载菜单](https://www.cnblogs.com/haoxianrui/p/13676619.html)
#### Spring Security OAuth2认证授权接口
> 微信小程序
- **Postman**
1. [vue+uni-app商城实战 | 第一篇从0到1快速开发一个商城微信小程序无缝接入Spring Cloud OAuth2认证授权登录](https://www.cnblogs.com/haoxianrui/p/13882310.html)
1. 请求参数类型为Query Param或者form-data出现很多错误的情况是将参数是JSON格式放在请求Body中
2. Spring Security OAuth2新版本不再支持将客户端信息client_id和client_secret放在请求路径的这种方式否者会出现401的错误已验证
3. OAuth2客户端信息在Authorization标签选择Basic Auth然后填写client_id和client_secret
> 应用部署
| Query Params参数 | Authorization |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![](https://gitee.com/haoxr/image/raw/master/image-20210621075338100.png) | ![image-20210621075517108](https://gitee.com/haoxr/image/raw/master/image-20210621075517108.png) |
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)
4. [Docker实战 | 第四篇Docker安装Nginx实现基于vue-element-admin框架构建的项目线上部署](https://www.cnblogs.com/haoxianrui/p/14091762.html)
5. [Docker实战 | 第五篇Docker启用TLS加密解决暴露2375端口引发的安全漏洞被黑掉三台云主机的教训总结](https://www.cnblogs.com/haoxianrui/p/14095306.html)
- **Knife4j接口文档推荐**
> 分布式
1. [分布式实战 | 第一篇 SpringBoot整合ELK实现分布式登录日志收集和统计](https://www.cnblogs.com/haoxianrui/p/14596252.html)
## 接口文档
本地启动网关`youlai-gateway`和相应的服务,访问 [http://localhost:9999/doc.html](http://localhost:9999/doc.html)
![](https://gitee.com/haoxr/image/raw/master/default/20210225201144.png)
1. 接口文档地址,启动网关访问 http://localhost:9999/doc.html (默认)
2. 请求接口之前先执行对应模块下的第一个接口Authorize完成认证通过后再打开其他接口请求头会**自动**填充token
3. client/123456 是**有来项目**预留用于测试的客户端信息因为Knife4j完成自动填充不能包装返回值和大多数实际项目需包装返回值添加状态码不符
| 认证授权 | 认证成功自动填充Header |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| ![image-20210622000304570](https://gitee.com/haoxr/image/raw/master/image-20210622000304570.png) | ![image-20210622000046029](https://gitee.com/haoxr/image/raw/master/image-20210622000046029.png) |
## 其他说明
- 如果github拉取失败请移步至码云[https://gitee.com/haoxr](https://gitee.com/haoxr),代码是同步的
- 项目在搭建的过程中如您遇到任何问题,可加我微信(haoxianrui)或者微信群也可在github提issue
- 演示环境禁止修改、删除重要数据,请本地部署后操作
如果需要项目文档、进入项目交流群、微信小程序体验或者项目搭建有什么问题可加我微信haoxianrui备注一下“有来”二字即可放心没有公众号。
最后希望大家一起参与有来开源项目的开发~