youlai-mall/README.md

214 lines
9.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<p align="center">
<img src="https://img.shields.io/badge/SpringBoot-2.7.5-brightgreen.svg"/>
<img src="https://img.shields.io/badge/SpringCloud & Alibaba -2021-green.svg"/>
<a src="https://github.com/hxrui" target="_blank">
<img src="https://img.shields.io/github/stars/youlaitech/youlai-mall.svg?style=social&label=Stars"/>
</a>
<a href="https://gitee.com/youlaitech/youlai-mall" target="_blank">
<img src="https://gitee.com/youlaitech/youlai-mall/badge/star.svg"/>
</a>
<br/>
<img src="https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg"/>
<a href="https://gitee.com/youlaiorg" target="_blank">
<img src="https://img.shields.io/badge/Author-有来开源组织-orange.svg"/>
</a>
</p>
<p align="center">
<a target="_blank" href="https://www.youlai.tech">官方文档</a> |
<a target="_blank" href="https://www.cnblogs.com/haoxianrui/"> 团队博客</a>
</p>
<p align="center">
<a target="_blank" href="https://admin.youlai.tech">管理系统在线预览</a> | <a target="_blank" href="http://app.youlai.tech">移动/H5在线预览</a>
</p>
<p align="center">
<a target="_blank" href='https://github.com/hxrui'>Github</a> | <a target="_blank" href='https://gitee.com/haoxr'>Gitee</a> | <a target="_blank" href='https://gitcode.net/youlai'>GitCode</a>
</p>
## 🈶 项目介绍
### 🗁 项目简介
[youlai-mall](https://gitee.com/haoxr) 是基于Spring Boot 2.7、Spring Cloud 2021 & Alibaba
2021、Vue3、Element-Plus、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)
等多端的开发。
### 🗁 项目特点
- 项目使用皆是当前主流前后端技术栈(持续更新...),无过度自定义封装,易理解学习和二次扩展;
- 极速启动在IDEA和Java环境OK的情况下`1分钟之内`可正常启动微服务,可以快速拥有微服务环境和上手微服务;
- SpringBoot 2.7、SpringCloud 2021 & Alibaba 2021 一站式微服务开箱即用的解决方案;
- Spring Security OAuth2 、 Spring Cloud Gateway 、 JWT 统一认证鉴权和常用 OAuth2 授权模式扩展;
- 移动端采用终极跨平台解决方案 uni-app 一套代码编译iOS、Android、H5和小程序等多个平台
- Jenkins、K8s、Docker实现微服务持续集成与交付(CI/CD)。
### 🗁 项目预览
| 「App」Spring Security OAuth2 手机短信验证码模式 | 「小程序」Spring Security OAuth2 微信授权模式 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| <img src="https://www.youlai.tech/files/blog/smsauth.gif" width="100%" height="400px"/> | <img src="https://www.youlai.tech/files/blog/wechatauth.gif" width="100%" height="400px"/> |
| **「管理前端」Spring Security OAuth2 密码模式** | **「管理前端」Spring Security OAuth2 验证码模式** |
| <img src="https://www.youlai.tech/files/blog/passwordauth.gif" width="100%" height="400px"/> | <img src="https://www.youlai.tech/files/blog/captchaauth.gif" width="100%" height="400px"/> |
## 🏠️ 源码地址
| |Gitee| Github|
| ---- | ----| ---- |
| 微服务后端 | [youlai-mall](https://gitee.com/youlaiorg/youlai-mall)| [youlai-mall](https://github.com/youlaitech/youlai-mall) |
| 管理前端| [mall-admin](https://gitee.com/youlaiorg/mall-admin) | [mall-admin](https://github.com/youlaitech/mall-admin) |
| 移动端 | [mall-app](https://gitee.com/youlaiorg/mall-app)| [mall-app](https://github.com/youlaitech/mall-app) |
## 📇 项目目录
``` lua
youlai-mall
├── docs
├── nacos -- Nacos配置
├── sql -- SQL脚本
├── laboratory -- 实验室
├── mall-oms -- 订单服务
├── mall-pms -- 商品服务
├── mall-sms -- 营销服务
├── mall-ums -- 会员服务
├── middleware -- 中间件(nacos/seata)
├── youlai-auth -- OAuth2认证授权中心
├── youlai-common -- 公共依赖
├── youlai-gateway -- 网关
├── youlai-system -- 系统服务
└── end
```
## 🚤 项目启动
> `极速启动` 是方便快速启动查看效果的启动方式其中的数据库和Redis等中间件使用的是有来提供的云环境切勿修改数据有时间条件建议`本地启动`。
### 1⃣ 极速启动
1. **启动Nacos**
- IDEA 打开命令行终端 Terminal输入 `cd middleware/nacos/bin` 切换到 Nacos 的 bin 目录,执行 `startup -m standalone` 启动 Nacos 服务。
2. **服务启动**
- `youlai-gateway` 模块的启动类 GatewayApplication 启动网关;
- `youlai-auth` 模块的启动类 AuthApplication 启动认证中心;
- `youlai-system``system-boot` 模块的启动类 AdminApplication 启动系统服务;
- 至此完成基础服务的启动,商城服务按需启动,启动方式和 `youlai-system` 一致;
- 访问接口文档地址测试: [http://localhost:9999/doc.html](http://localhost:9999/doc.html)
### 2⃣ 本地启动
1. **中间件安装**
> 为了避免数据和线上环境冲突MySQL 和 Redis 必装,其他不安装可默认使用有来线上环境(🔴必装 ⚪可选)
- 🔴 MySQL &nbsp;&nbsp;[Linux部署](https://www.youlai.tech/pages/vjoqc/)
- 🔴 Redis &nbsp;&nbsp;[Linux部署](https://www.youlai.tech/pages/k2a20/)
- ⚪ RabbitMQ &nbsp;&nbsp;[Linux部署](https://www.youlai.tech/pages/8znee/)
- ⚪ Seata &nbsp;&nbsp;[本地启动](https://www.youlai.tech/pages/0bzvi/) &nbsp; |
&nbsp;[Linux部署](https://www.youlai.tech/pages/4vjq5/)
- ⚪ Sentinel &nbsp;&nbsp;[本地启动]() &nbsp; | &nbsp;[Linux部署]()
- ⚪ Canal &nbsp;&nbsp;[本地启动]() &nbsp; | &nbsp;[Linux部署]()
2. **数据库创建和数据初始化**
- **系统数据库**
进入 `docs/sql` 目录 根据 MySQL 版本选择对应的脚本;
先执行 `database.sql` 完成数据库的创建;
再执行 `youlai.sql` 、`oauth2.sql`、`mall_*.sql` 完成数据表的创建和数据初始化。
- **Nacos 数据库**
创建名为 `nacos` 的数据库,执行 `middleware/nacos/conf/nacos-mysql.sql` 脚本完成 Nacos 数据库初始化。
3. **Nacos 配置持久化至 MySQL**
进入项目的 `middleware/nacos/conf/application.properties` 文件修改 Nacos 配置的数据连接,需要修改配置如下:
```properties
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://localhost:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=123456
```
4. **导入Nacos配置**
IDEA 打开命令行终端 Terminal输入 `cd middleware/nacos/bin` 切换到 Nacos 的 bin 目录,执行 `startup -m standalone` 启动 Nacos 服务。
打开浏览器,地址栏输入 Nacos 控制台的地址 [ http://localhost:8848/nacos]( http://localhost:8848/nacos)
输入用户名/密码nacos/nacos
进入控制台,点击左侧菜单 `配置管理``配置列表` 进入列表页面,点击 `导入配置` 选择项目中的 `docs/nacos/nacos_config.zip` 文件。
5. **修改Nacos配置**
在 Nacos 控制台配置列表选择共享配置 `youlai-common.yaml` 进行编辑,修改 MySQL、Redis、RabbitMQ等中间件信息为您自己本地环境默认「有来」线上环境。
6. **修改Nacos配置中心地址**
批量替换应用的 bootstrap-dev.yml 文件的配置中心地址 `http://c.youlai.tech:8848``http://localhost:8848` ,默认「有来」线上的配置中心地址。
7. **服务启动**
- 进入 `youlai-gateway` 模块的启动类 GatewayApplication 启动网关;
- 进入 `youlai-auth` 模块的启动类 AuthApplication 启动认证授权中心;
- 进入 `youlai-system``system-boot` 模块的启动类 AdminApplication 启动系统服务;
- 至此完成基础服务的启动,商城服务按需启动,启动方式和 `youlai-system` 一致;
- 访问接口文档地址测试: [http://localhost:9999/doc.html](http://localhost:9999/doc.html)
## ✅ Git规范
> IDEA 安装 Git Commit Template 插件
- feat 增加新功能
- fix 修复BUG
- docs 文档/注释
- style 代码风格改变但不影响运行结果(代码格式化、空格和空行调整等)
- refactor 代码重构
- test 测试
- chore 依赖更新或配置修改
- ci 持续集成
## 💹 趋势统计
<p align="center">
<a target="_blank" href='https://starchart.cc/hxrui/youlai-mall'><img src="https://starchart.cc/hxrui/youlai-mall.svg"></a>
</p>
## 🧑‍💻 贡献者
有来项目的存在离不开你们一直以来的贡献,真心感谢! 贴出人主页希望对你们有些许帮助,同样也希望更多的学习爱好者加入到开源学习平台。
<a href="https://github.com/youlaitech/youlai-mall/graphs/contributors"><img src="https://opencollective.com/youlai-mall/contributors.svg?width=890" /></a>
## 💬 联系信息
> 添加开发者微信,备注「有来」进群,严禁一切利益性行为
| 开发 | 开发 | DevOps |
| :-------: | :------------------: | :---------------------: |
| ![](https://www.youlai.tech/files/blog/rui.jpg) | ![](https://www.youlai.tech/files/blog/chuan.jpg) | ![](https://gitee.com/haoxr/image/raw/master/default/jialin.jpg) |
欢迎技术爱好者加入我们,参与开发和交流学习,申请入口: https://gitee.com/youlaiorg