Skip to content

Commit 6e7880f

Browse files
authored
Update README.md
1 parent 3808594 commit 6e7880f

File tree

1 file changed

+2
-125
lines changed

1 file changed

+2
-125
lines changed

README.md

Lines changed: 2 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,6 @@
11
## 基于SpringBoot的微信点餐系统
2-
>这里只是对项目做一个整体的介绍,项目中设计的知识细节及难点以博客的形式整理在Wiki里。[Wiki](https://github.com/sqmax/springboot-project/wiki)
32

4-
### 目录
5-
* [项目介绍](#项目介绍)
6-
* [项目设计](#项目设计)
7-
* [角色划分](#角色划分)
8-
* [功能模块划分](#功能模块划分)
9-
* [部署架构](#部署架构)
10-
* [数据库设计](#数据库设计)
11-
* [项目使用的技术栈](#项目使用的技术栈)
12-
* [开发环境及工具](#开发环境及工具)
13-
* [项目演示](#项目演示)
14-
* [卖家端(PC端)](#卖家端(PC端))
15-
* [买家端(手机微信端)](#买家端(手机微信端))
16-
* [买家端和卖家端的通信](#买家端和卖家端的通信)
17-
18-
------------
3+
### 项目整体介绍。[http://www.sqmax.top/springboot-project/](http://www.sqmax.top/springboot-project/)
4+
### 项目中设计的知识细节及难点以博客的形式整理在Wiki里。[Wiki](https://github.com/sqmax/springboot-project/wiki)
195

20-
## 项目介绍
21-
* 前端是由Vue.js构建的WebApp,后端由Spring Boot打造,后端的前台页面使用Bootstap+Freemarker+JQuery构建,后端和前端通过RESTful风格的接口相连。
22-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/34.PNG)
23-
* 数据库方面使用Spring Boot+JPA,兼顾Spring Boot+Mybatis;缓存方面使用Spring Boot+Redis;基于Redis,应对分布式Session和分布式锁;消息推送方面,使用WebSocket。
24-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/21.PNG)
25-
* 这是一个基于微信的点餐系统,所以还涉及许多微信相关的特性,如微信扫码登陆,微信模板消息推送和微信支付和退款。
266

27-
## 项目设计
28-
29-
### 角色划分
30-
* 卖家(手机端):由微信公众号提供的一个服务。
31-
* 卖家(PC端):一个简单的商家管理系统
32-
33-
### 功能模块划分
34-
* 功能分析
35-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/35.PNG)
36-
* 关系图
37-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/36.PNG)
38-
39-
### 部署架构
40-
* 买家端在手机端,卖家端在PC端,两端都会发出数据请求,请求首先到达nginx服务器,如果请求的是后端接口,nginx服务器会进行一个转发,转发到后面的Tomcat服务器,即我们的Java项目所在,如果这个接口作了缓存,那么就会访问redis服务器,如果没有缓存,就会访问我们的MySQL数据库。值得注意的是我们的应用是支持分布式部署的,也就是说图上的Tomcat表示的是多台服务器,多个应用。
41-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/37.PNG)
42-
### 数据库设计
43-
* 共5个表,表之间的关系如下,其中商品表存放的就是商品的名称,价格库存,图片链接等信息;类目表含有类目id,类目名字等信息,一个类目下有多种商品,类目表和商品表之间是一对多的关系;订单详情表含有购买的商品名称,数量,所属订单的订单号等信息;订单主表包含包含该订单的订单号,买家的信息,订单的支付状态等信息,订单主表和订单详情表之间是一对多的关系;最后是卖家信息表,存放的卖家的账号和密码等信息,作为卖家后台管理的权限认证。
44-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/38.PNG)
45-
46-
47-
## 项目使用的主要技术栈
48-
* SpringBoot的相关特性
49-
* SpringBoot+JPA
50-
* SpringBoot+Redis
51-
* SpringBoot+WebSocket
52-
53-
* 微信相关特征
54-
* 微信支付、退款
55-
* 微信授权登陆
56-
* 微信模板消息推送
57-
* 使用微信相关的开源SDK
58-
* 分布式Session和分布式锁
59-
* 对于用户的登录信息,使用Redis对Session进行集中管理
60-
* 针对一个抢红包的案例,利用Redis分布式Session来应对高并发请求
61-
62-
63-
## 开发环境及工具
64-
* IDEA
65-
* Maven
66-
* Git
67-
* MySQL
68-
* Nginx
69-
* Redis
70-
* Centos虚拟机部署买家端的前端代码
71-
* Postman模拟微信订单创建订单
72-
* Fiddler对手机请求抓包
73-
* Natapp内网穿透
74-
* Apache ab模拟高并发请求
75-
76-
## 项目演示
77-
### 卖家端(PC端)
78-
浏览器输入授权路径,进入微信扫码登陆系统页面
79-
80-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/24.PNG)
81-
82-
登陆后,从左侧导航栏可以看到有四项【订单】,【商品】,【类目】,【登出】,右侧是卖家管理系统的首页,也即【订单】界面。
83-
84-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/25.PNG)
85-
86-
对每项订单有【取消】和查看订单【详情】操作。
87-
88-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/28.PNG)
89-
90-
我们可以选择完结订单或取消该订单。
91-
92-
【商品】和【商品类目】下均有两项操作:【列表】【新增】。
93-
下面以【商品】栏为例演示。
94-
点击商品->列表可以查看商品的详情,可以看到对每件商品又有【修改】和【上架】/【下架】操作 。
95-
96-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/26.PNG)
97-
98-
点击商品->新增来新增商品
99-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/23.PNG)
100-
101-
### 买家端(手机微信端)
102-
买家端是基于微信公众号的点餐app。
103-
104-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/28.jpg)
105-
106-
选购好商品后就可以去结算。
107-
108-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/30.jpg)
109-
110-
结算完成,可以看到一条微信支付凭证消息。
111-
112-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/31.jpg)
113-
114-
可以选择查看账单。
115-
116-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/32.jpg)
117-
118-
### 买家端和卖家端的通信
119-
因为我是借用的微信公众账号,买家端和卖家端不能连调,我这里用Postman这个工具,发送一条post请求,来模拟微信下单。这时卖家端首页,即【订单】页面就会弹出一个窗口,并播放音乐。
120-
121-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/27.PNG)
122-
123-
点击关闭按钮,在订单页面找到找到新下的订单,点击【详情】来到订单详情界面,点击【完结订单】按钮。
124-
125-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/33.PNG)
126-
127-
这时微信那边就会收到如下的模板消息。
128-
129-
![](https://github.com/sqmax/springboot-project/blob/blog/pic/29.jpg)

0 commit comments

Comments
 (0)