基于JAVA(Springboot)后台微信网上在线买菜小程序系统设计与实现
基于JAVA(Springboot)后台微信网上在线买菜小程序系统设计与实现一、系统概述
本系统是基于Java(Springboot)后台和微信小程序前端的在线买菜系统。系统主要功能包括用户注册登录、商品浏览购买、订单管理等。
二、系统架构
1. 后台服务
* 技术栈:Java(Springboot)
*依赖:MySQL数据库,Redis缓存* 功能:
+ 用户注册登录+ 商品管理(添加、修改、删除)
+ 订单管理(创建、支付、取消)
+ 支付接口(微信支付)
2. 前端小程序
* 技术栈:微信小程序(JavaScript,WXML,WXSS)
*依赖:微信小程序 SDK* 功能:
+ 用户注册登录+ 商品浏览购买+ 订单管理三、系统设计
3.1 后台服务设计3.1.1 用户模块* 用户表
+ id(主键)
+ username(用户名)
+ password(密码)
+ email(邮箱)
+ phone(电话)
* 登录接口
+ GET /login+ POST /login* 注册接口
+ POST /register3.1.2 商品模块* 商品表
+ id(主键)
+ name(名称)
+ price(价格)
+ description(描述)
+ image(图片)
* 商品列表接口
+ GET /goods* 商品详情接口
+ GET /goods/{id}
3.1.3 订单模块* 订单表
+ id(主键)
+ user_id(用户ID)
+ goods_id(商品ID)
+ status(状态)
+ create_time(创建时间)
* 订单列表接口
+ GET /orders* 订单详情接口
+ GET /orders/{id}
3.1.4 支付模块* 支付接口
+ POST /pay3.2 前端小程序设计3.2.1 用户模块* 登录页面
+ username(用户名)
+ password(密码)
+ loginButton(登录按钮)
* 注册页面
+ username(用户名)
+ password(密码)
+ email(邮箱)
+ phone(电话)
+ registerButton(注册按钮)
3.2.2 商品模块* 商品列表页面
+ goodsList(商品列表)
+ searchInput(搜索输入框)
+ searchButton(搜索按钮)
* 商品详情页面
+ goodsInfo(商品信息)
+ buyButton(购买按钮)
3.2.3 订单模块* 订单列表页面
+ orderList(订单列表)
+ cancelButton(取消按钮)
* **订单详情页面**
+ orderInfo(订单信息)
+ payButton(支付按钮)
**四、系统实现**
4.1 后台服务实现4.1.1 用户模块实现* **用户注册登录接口**
```java@RestController@RequestMapping("/api")
public class UserController {
@Autowired private UserService userService;
@PostMapping("/login")
public Result login(@RequestBody LoginRequest request) {
// ...
}
@PostMapping("/register")
public Result register(@RequestBody RegisterRequest request) {
// ...
}
}
```
4.1.2 商品模块实现* **商品列表接口**
```java@RestController@RequestMapping("/api")
public class GoodsController {
@Autowired private GoodsService goodsService;
@GetMapping("/goods")
public Result list() {
// ...
}
@GetMapping("/goods/{id}")
public Result detail(@PathVariable Long id) {
// ...
}
}
```
4.1.3 订单模块实现* **订单列表接口**
```java@RestController@RequestMapping("/api")
public class OrderController {
@Autowired private OrderService orderService;
@GetMapping("/orders")
public Result list() {
// ...
}
@GetMapping("/orders/{id}")
public Result detail(@PathVariable Long id) {
// ...
}
}
```
4.1.4 支付模块实现* **支付接口**
```java@RestController@RequestMapping("/api")
public class PayController {
@Autowired private PayService payService;
@PostMapping("/pay")
public Result pay(@RequestBody PayRequest request) {
// ...
}
}
```
4.2 前端小程序实现4.2.1 用户模块实现* **登录页面**
```javascriptPage({
data: {
username: '',
password: ''
},
login() {
wx.request({
url: ' method: 'POST',
data: {
username: this.data.username,
password: this.data.password },
success(res) {
// ...
}
});
}
});
```
4.2.2 商品模块实现* **商品列表页面**
```javascriptPage({
data: {
goodsList: []
},
search() {
wx.request({
url: ' method: 'GET',
success(res) {
this.setData({ goodsList: res.data });
}
});
}
});
```
4.2.3 订单模块实现* **订单列表页面**
```javascriptPage({
data: {
orderList: []
},
cancel() {
wx.request({
url: ' method: 'GET',
success(res) {
this.setData({ orderList: res.data });
}
});
}
});
```
**五、系统测试**
5.1 后台服务测试5.1.1 用户模块测试* **登录接口**
```bashcurl -X POST
-H 'Content-Type: application/json'
-d '{"username": "john", "password": "123456"}'
```
5.1.2 商品模块测试* **商品列表接口**
```bashcurl -X GET
-H 'Content-Type: application/json'
```
5.1.3 订单模块测试* **订单列表接口**
```bashcurl -X GET
-H 'Content-Type: application/json'
```
5.2 前端小程序测试5.2.1 用户模块测试* **登录页面**
```javascriptPage({
data: {
username: '',
password: ''
},
login() {
wx.request({
url: ' method: 'POST',
data: {
username: this.data.username,
password: this.data.password },
success(res) {
// ...
}
});
}
});
```
5.2.2 商品模块测试* **商品列表页面**
```javascriptPage({
data: {
goodsList: []
},
search() {
wx.request({
url: ' method: 'GET',
success(res) {
this.setData({ goodsList: res.data });
}
});
}
});
```
5.2.3 订单模块测试* **订单列表页面**
```javascriptPage({
data: {
orderList: []
},
cancel() {
wx.request({
url: ' method: 'GET',
success(res) {
this.setData({ orderList: res.data });
}
});
}
});
```
**六、系统部署**
6.1 后台服务部署6.1.1 部署环境准备* **环境准备**
```bashsudo apt-get update && sudo apt-get install -y git curl wget unzip```
6.1.2 部署代码* **克隆代码**
```bashgit clone **切换分支**
```bashgit checkout master```
6.1.3 部署依赖* **安装依赖**
```bashsudo apt-get install -y libssl-dev libcurl4-openssl-dev libmysqlclient-dev```
6.1.4 部署服务* **启动服务**
```bashsudo systemctl start project.service```
* **设置开机自启**
```bashsudo systemctl enable project.service```
6.2 前端小程序部署6.2.1 部署环境准备