一、创建表单
1、创建表
准备商品表、订单表、秒杀商品表、秒杀订单表。
(设计较为简单,重点在秒杀,不在设计表。)
商品表:
create table `t_goods`(`id` BIGINT(20) not null AUTO_INCREMENT COMMENT '商品id',`goods_name` VARCHAR(16) DEFAULT NULL COMMENT '商品名称',`goods_title` VARCHAR(64) DEFAULT NULL COMMENT '商品标题',`goods_img` VARCHAR(64) DEFAULT NULL COMMENT '商品图片',`goods_detail` LONGTEXT COMMENT '商品描述',`goods_price` DECIMAL(10, 2) DEFAULT '0.00' COMMENT '商品价格',`goods_stock` INT(11) DEFAULT '0' COMMENT '商品库存,-1表示没有限制',PRIMARY KEY(`id`))ENGINE = INNODB AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8mb4;
订单表:
CREATE TABLE `t_order` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '订单ID',`user_id` BIGINT(20) DEFAULT NULL COMMENT '用户ID',`goods_id` BIGINT(20) DEFAULT NULL COMMENT '商品ID',`delivery_addr_id` BIGINT(20) DEFAULT NULL COMMENT '收获地址ID',`goods_name` VARCHAR(16) DEFAULT NULL COMMENT '商品名字',`goods_count` INT(20) DEFAULT '0' COMMENT '商品数量',`goods_price` DECIMAL(10,2) DEFAULT '0.00' COMMENT '商品价格',`order_channel` TINYINT(4) DEFAULT '0' COMMENT '1 pc,2 android, 3 ios',`status` TINYINT(4) DEFAULT '0' COMMENT '订单状态,0新建未支付,1已支付,2已发货,3已收货,4已退货,5已完成',`create_date` datetime DEFAULT NULL COMMENT '订单创建时间',`pay_date` datetime DEFAULT NULL COMMENT '支付时间',PRIMARY KEY(`id`))ENGINE = INNODB AUTO_INCREMENT=12 DEFAULT CHARSET = utf8mb4;
秒杀商品表:
CREATE TABLE `t_seckill_goods`(`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '秒杀商品ID',`goods_id` BIGINT(20) NOT NULL COMMENT '商品ID',`seckill_price` DECIMAL(10,2) NOT NULL COMMENT '秒杀家',`stock_count` INT(10) NOT NULL COMMENT '库存数量',`start_date` datetime NOT NULL COMMENT '秒杀开始时间',`end_date` datetime NOT NULL COMMENT '秒杀结束时间',PRIMARY KEY(`id`))ENGINE = INNODB AUTO_INCREMENT=3 DEFAULT CHARSET = utf8mb4;
秒杀订单表:
CREATE TABLE `t_seckill_order` (`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '秒杀订单ID',`user_id` BIGINT(20) NOT NULL COMMENT '用户ID',`order_id` BIGINT(20) NOT NULL COMMENT '订单ID',`goods_id` BIGINT(20) NOT NULL COMMENT '商品ID',PRIMARY KEY(`id`))ENGINE = INNODB AUTO_INCREMENT=3 DEFAULT CHARSET = utf8mb4;
2、插入数据
插入数据,主要插入商品表和秒杀商品表就行,订单表是在购买时自动生成的。
/* 插入数据 */insert into `t_goods` values(1, 'IPHONE 12', 'IPHONE 12 64GB', '/img/iphone12.png', 'IPHONE 12 64GB','6299.00', 100),(2, 'IPHONE 12 PRO', 'IPHONE 12 PRO 128GB', '/img/iphone12pro.png', 'IPHONE 12 PRO 128GB','9299.00', 100);insert into `t_seckill_goods` values(1, 1, '629.00', 10, '-11-01 08:00:00', '-11-01 09:00:00'),(2, 2, '929.00', 10, '-11-01 08:00:00', '-11-01 09:00:00');
3、逆向工程生成pojo
运行代码生成器
输入要转化的表名:
对应的pojo、controller、service、mapper转化完成,并将生成的代码复制到主工程下。
二、实现商品列表页
1、准备VO对象
因为商品的信息可能存在于两个表或者多个表中,比如秒杀商品的库存信息和秒杀商品的详细信息在两个表中。vo对象就是可以把商品信息全部一次性展示出来的对象。
2、后端服务实现
商品页面跳转实现获取商品列表–接口方法
获取商品列表–具体实现
数据库Mapper接口
mapper.xml配置sql
3、测试
三、实现商品详情页
1、后端服务实现
商品页面详情跳转
获取商品详情信息–接口方法
获取商品详情信息–具体实现
数据库Mapper接口
Mapper.xml 配置 sql语句