springboot支付项目之项目设计

从本篇起,我们将开始学习spring boot 微信支付项目。

本节我们来讲解项目设计。主要从以下几个方面来讲解:

1:角色划分;

2:功能模块划分;

3:部署架构;

4:数据库设计;

角色划分:

买家端和卖家端

买家是在手机端操作的,买家端是在PC端管理商品的

功能模块划分如下:

买家浏览商品列表、下单、查询、取消订单等操作

卖家可以商品类目管理、商品管理、订单管理等操作。

具体如下图:

买家和卖家关系:

买家:创建/查询订单、查询商品

卖家:查询/接单、管理商品

卖家与买家之间通过消息进行连接

具体如下图:

再来看看项目部署:

买家通过手机端访问nginx上面页面,请求tomcat数据,然后从redis缓存或者mysql数据库中查询数据;

卖家通过PC端浏览器操作。

具体如下图:

数据库设计:

主要从:表之间关系、创建表sql脚本及注意事项三个方面来讲。

说明:我们主要讲解spring boot及支付相关的。其他业务都忽略,精简之后就剩下下面五张表,比较简单的。表与表之间的关系如下图:

商品表字段:

名称、价格、库存、描述、图片、类目编号等。

sql脚本:

类目表脚本:

订单表sql脚本:

商品详情

具体五张表sql脚本:

-- 类目

create table `product_category` (

`category_id` int not null auto_increment,

`category_name` varchar(64) not null comment '类目名字',

`category_type` int 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`)

);

-- 商品

create table `product_info` (

`product_id` varchar(32) not null,

`product_name` varchar(64) not null comment '商品名称',

`product_price` decimal(8,2) not null comment '单价',

`product_stock` int not null comment '库存',

`product_description` varchar(64) comment '描述',

`product_icon` varchar(512) comment '小图',

`product_status` tinyint(3) DEFAULT '0' COMMENT '商品状态,0正常1下架',

`category_type` int 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`)

);

-- 订单

create table `order_master` (

`order_id` varchar(32) not null,

`buyer_name` varchar(32) not null comment '买家名字',

`buyer_phone` varchar(32) not null comment '买家电话',

`buyer_address` varchar(128) not null comment '买家地址',

`buyer_openid` varchar(64) 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`)

);

-- 订单商品

create table `order_detail` (

`detail_id` varchar(32) not null,

`order_id` varchar(32) not null,

`product_id` varchar(32) not null,

`product_name` varchar(64) not null comment '商品名称',

`product_price` decimal(8,2) not null comment '当前价格,单位分',

`product_quantity` int not null comment '数量',

`product_icon` varchar(512) 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`)

);

-- 卖家(登录后台使用, 卖家登录之后可能直接采用微信扫码登录,不使用账号密码)

create table `seller_info` (

`seller_id` varchar(32) not null,

`username` varchar(32) not null,

`password` varchar(32) not null,

`openid` varchar(64) not null comment '微信openid',

`create_time` timestamp not null default current_timestamp comment '创建时间',

`update_time` timestamp not null default current_timestamp on update current_timestamp comment '修改时间',

primary key (`seller_id`)

) comment '卖家信息表';

下一节我们开始买家端开发

打开APP阅读更多精彩内容