【学习笔记】seckill-秒杀项目--(5)实现商品列表页、详情页

一、创建表单

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, '2020-11-01 08:00:00', '2020-11-01 09:00:00'),
									(2, 2, '929.00', 10, '2020-11-01 08:00:00', '2020-11-01 09:00:00');

3、逆向工程生成pojo

运行代码生成器
代码生成器
输入要转化的表名:
输入表名

对应的pojo、controller、service、mapper转化完成,并将生成的代码复制到主工程下。
转化完成

二、实现商品列表页

1、准备VO对象

因为商品的信息可能存在于两个表或者多个表中,比如秒杀商品的库存信息和秒杀商品的详细信息在两个表中。vo对象就是可以把商品信息全部一次性展示出来的对象。
GoodsVo

2、后端服务实现

  • 商品页面跳转实现
    商品页面跳转
  • 获取商品列表–接口方法
    获取商品列表
  • 获取商品列表–具体实现
    获取商品列表数据库
  • 数据库Mapper接口
    mapper
  • mapper.xml配置sql
    mapper.xml

3、测试

秒杀商品列表页面

三、实现商品详情页

1、后端服务实现

  • 商品页面详情跳转
    商品详情页面跳转

  • 获取商品详情信息–接口方法
    获取商品详情信息

  • 获取商品详情信息–具体实现
    在这里插入图片描述

  • 数据库Mapper接口
    Mapper

  • Mapper.xml 配置 sql语句
    Mapper.xml

2、测试

商品详情页

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值