从今天起,开始使用 SpringBoot 开发一个微信点餐系统,一方面是学习 SpringBoot 知识,另一方面是将目前流行的技术进行结合。
主要内容请查看慕课网 Spring Boot 微信点餐系统
现在开始吧!
1、新建 数据库 sell
2、然后新建数据表,如下
我们可以直接执行下面的 sql 语句
博主这里使用的是 IntelliJ IDEA,之前的一篇文章 Spring Boot入门(1)-第一个Spring Boot应用 介绍过,这里就不写如何创建 SpringBoot 项目了。
注意,我们这里同样是使用 Maven 管理依赖。
创建好项目后,在 pom.xml 添加几个常用的依赖。
然后修改 src/main/resource/application.properties ,将该文件改为 yml 后缀,即 application.yml
并添加如下代码
参数
返回
参数
返回
参数
返回
参数
返回
参数
返回
参数
返回
目前先介绍到这里,下一篇介绍 product_category 表的 Dao 和Service 层,以及几个注解的使用
主要内容请查看慕课网 Spring Boot 微信点餐系统
现在开始吧!
一、新建数据库
1、新建 数据库 sell
2、然后新建数据表,如下
我们可以直接执行下面的 sql 语句
- SET NAMES utf8;
- SET FOREIGN_KEY_CHECKS = 0;
- -- ----------------------------
- -- Table structure for `order_detail`
- -- ----------------------------
- DROP TABLE IF EXISTS `order_detail`;
- CREATE TABLE `order_detail` (
- `detail_id` varchar(32) COLLATE utf8mb4_bin NOT NULL,
- `order_id` varchar(32) COLLATE utf8mb4_bin NOT NULL,
- `product_id` varchar(32) COLLATE utf8mb4_bin NOT NULL,
- `product_name` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '商品名称',
- `product_price` decimal(8,2) NOT NULL COMMENT '当前价格,单位分',
- `product_quantity` int(11) NOT NULL COMMENT '数量',
- `product_icon` varchar(512) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '小图',
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`detail_id`),
- KEY `idx_order_id` (`order_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
- -- ----------------------------
- -- Table structure for `order_master`
- -- ----------------------------
- DROP TABLE IF EXISTS `order_master`;
- CREATE TABLE `order_master` (
- `order_id` varchar(32) COLLATE utf8mb4_bin NOT NULL,
- `buyer_name` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '买家名字',
- `buyer_phone` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '买家电话',
- `buyer_address` varchar(128) COLLATE utf8mb4_bin NOT NULL COMMENT '买家地址',
- `buyer_openid` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '买家微信openid',
- `order_amount` decimal(8,2) NOT NULL COMMENT '订单总金额',
- `order_status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '订单状态, 默认为新下单',
- `pay_status` tinyint(3) NOT NULL DEFAULT '0' COMMENT '支付状态, 默认未支付',
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`order_id`),
- KEY `idx_buyer_openid` (`buyer_openid`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
- -- ----------------------------
- -- Table structure for `product_category`
- -- ----------------------------
- DROP TABLE IF EXISTS `product_category`;
- CREATE TABLE `product_category` (
- `category_id` int(11) NOT NULL AUTO_INCREMENT,
- `category_name` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '类目名字',
- `category_type` int(11) NOT NULL COMMENT '类目编号',
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`category_id`),
- UNIQUE KEY `unique_category_type` (`category_type`) USING BTREE
- ) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
- -- ----------------------------
- -- Table structure for `product_info`
- -- ----------------------------
- DROP TABLE IF EXISTS `product_info`;
- CREATE TABLE `product_info` (
- `product_id` varchar(32) COLLATE utf8mb4_bin NOT NULL,
- `product_name` varchar(64) COLLATE utf8mb4_bin NOT NULL COMMENT '商品名称',
- `product_price` decimal(8,2) NOT NULL COMMENT '单价',
- `product_stock` int(11) NOT NULL COMMENT '库存',
- `product_description` varchar(64) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '描述',
- `product_icon` varchar(512) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '小图',
- `product_status` tinyint(3) DEFAULT '0' COMMENT '商品状态,0正常1下架',
- `category_type` int(11) NOT NULL COMMENT '类目编号',
- `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
- `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
- PRIMARY KEY (`product_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
- SET FOREIGN_KEY_CHECKS = 1;
二、新建 SpringBoot 项目
博主这里使用的是 IntelliJ IDEA,之前的一篇文章 Spring Boot入门(1)-第一个Spring Boot应用 介绍过,这里就不写如何创建 SpringBoot 项目了。
注意,我们这里同样是使用 Maven 管理依赖。
创建好项目后,在 pom.xml 添加几个常用的依赖。
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- </dependency>
然后修改 src/main/resource/application.properties ,将该文件改为 yml 后缀,即 application.yml
并添加如下代码
- spring:
- datasource:
- driver-class-name: com.mysql.jdbc.Driver
- username: root
- password: 123456
- url: jdbc:mysql://localhost:3306/sell?characterEncodeing=utf-8&useSSL=false
- jpa:
- show-sql: true
三、API
商品列表
GET /sell/buyer/product/list
参数
无
返回
{
"code": 0,
"msg": "成功",
"data": [
{
"name": "热榜",
"type": 1,
"foods": [
{
"id": "123456",
"name": "皮蛋粥",
"price": 1.2,
"description": "好吃的皮蛋粥",
"icon": "http://xxx.com",
}
]
},
{
"name": "好吃的",
"type": 2,
"foods": [
{
"id": "123457",
"name": "慕斯蛋糕",
"price": 10.9,
"description": "美味爽口",
"icon": "http://xxx.com",
}
]
}
]
}
创建订单
POST /sell/buyer/order/create
参数
name: "张三"
phone: "18868822111"
address: "慕课网总部"
openid: "ew3euwhd7sjw9diwkq" //用户的微信openid
items: [{
productId: "1423113435324",
productQuantity: 2 //购买数量
}]
返回
{
"code": 0,
"msg": "成功",
"data": {
"orderId": "147283992738221"
}
}
订单列表
GET /sell/buyer/order/list
参数
openid: 18eu2jwk2kse3r42e2e
page: 0 //从第0页开始
size: 10
返回
{
"code": 0,
"msg": "成功",
"data": [
{
"orderId": "161873371171128075",
"buyerName": "张三",
"buyerPhone": "18868877111",
"buyerAddress": "慕课网总部",
"buyerOpenid": "18eu2jwk2kse3r42e2e",
"orderAmount": 0,
"orderStatus": 0,
"payStatus": 0,
"createTime": 1490171219,
"updateTime": 1490171219,
"orderDetailList": null
},
{
"orderId": "161873371171128076",
"buyerName": "张三",
"buyerPhone": "18868877111",
"buyerAddress": "慕课网总部",
"buyerOpenid": "18eu2jwk2kse3r42e2e",
"orderAmount": 0,
"orderStatus": 0,
"payStatus": 0,
"createTime": 1490171219,
"updateTime": 1490171219,
"orderDetailList": null
}]
}
查询订单详情
GET /sell/buyer/order/detail
参数
openid: 18eu2jwk2kse3r42e2e
orderId: 161899085773669363
返回
{
"code": 0,
"msg": "成功",
"data": {
"orderId": "161899085773669363",
"buyerName": "李四",
"buyerPhone": "18868877111",
"buyerAddress": "慕课网总部",
"buyerOpenid": "18eu2jwk2kse3r42e2e",
"orderAmount": 18,
"orderStatus": 0,
"payStatus": 0,
"createTime": 1490177352,
"updateTime": 1490177352,
"orderDetailList": [
{
"detailId": "161899085974995851",
"orderId": "161899085773669363",
"productId": "157875196362360019",
"productName": "招牌奶茶",
"productPrice": 9,
"productQuantity": 2,
"productIcon": "http://xxx.com",
"productImage": "http://xxx.com"
}
]
}
}
取消订单
POST /sell/buyer/order/cancel
参数
openid: 18eu2jwk2kse3r42e2e
orderId: 161899085773669363
返回
{
"code": 0,
"msg": "成功",
"data": null
}
获取openid
重定向到 /sell/wechat/authorize
参数
returnUrl: http://xxx.com/abc //【必填】
返回
http://xxx.com/abc?openid=oZxSYw5ldcxv6H0EU67GgSXOUrVg
目前先介绍到这里,下一篇介绍 product_category 表的 Dao 和Service 层,以及几个注解的使用
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏