秒杀业务分析
需求分析
所谓“秒杀”,就是网络卖家发布一些超低价格的商品,所有买家在同一时间网上抢购的一种销售方式。通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动。由于商品价格低廉,往往一上架就被抢购一空,有时只用一秒钟。
秒杀商品通常有两种限制:库存限制、时间限制。
需求:
(1)秒杀频道首页列出秒杀商品 (4)点击立即抢购实现秒杀下单,下单时扣减库存。当库存为0或不在活动期范围内时无法秒杀。 (5)秒杀下单成功,直接跳转到支付页面(微信扫码),支付成功,跳转到成功页,填写收货地址、电话、收件人等信息,完成订单。 (6)当用户秒杀下单5分钟内未支付,取消预订单,调用微信支付的关闭订单接口,恢复库存。
表结构说明
秒杀商品信息表
CREATE TABLE `tb_seckill_goods` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `goods_id` bigint(20) DEFAULT NULL COMMENT 'spu ID', `item_id` bigint(20) DEFAULT NULL COMMENT 'sku ID', `title` varchar(100) DEFAULT NULL COMMENT '标题', `small_pic` varchar(150) DEFAULT NULL COMMENT '商品图片', `price` decimal(10,2) DEFAULT NULL COMMENT '原价格', `cost_price` decimal(10,2) DEFAULT NULL COMMENT '秒杀价格', `seller_id` varchar(100) DEFAULT NULL COMMENT '商家ID', `create_time` datetime DEFAULT NULL COMMENT '添加日期', `check_time` datetime DEFAULT NULL COMMENT '审核日期', `status` char(1) DEFAULT NULL COMMENT '审核状态,0未审核,1审核通过,2审核不通过', `start_time` datetime DEFAULT NULL COMMENT '开始时间', `end_time` datetime DEFAULT NULL COMMENT '结束时间', `num` int(11) DEFAULT NULL COMMENT '秒杀商品数', `stock_count` int(11) DEFAULT NULL COMMENT '剩余库存数', `introduction` varchar(2000) DEFAULT NULL COMMENT '描述', PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
秒杀订单表
CREATE TABLE `tb_seckill_order` ( `id` bigint(20) NOT NULL COMMENT '主键', `seckill_id` bigint(20) DEFAULT NULL COMMENT '秒杀商品ID', `money` decimal(10,2) DEFAULT NULL COMMENT '支付金额', `user_id` varchar(50) DEFAULT NULL COMMENT '用户', `seller_id` varchar(50) DEFAULT NULL COMMENT '商家', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `pay_time` datetime DEFAULT NULL COMMENT '支付时间', `status` char(1) DEFAULT NULL COMMENT '状态,0未支付,1已支付', `receiver_address` varchar(200) DEFAULT NULL COMMENT '收货人地址', `receiver_mobile` varchar(20) DEFAULT NULL COMMENT '收货人电话', `receiver` varchar(20) DEFAULT NULL COMMENT '收货人', `transaction_id` varchar(30) DEFAULT NULL COMMENT '交易流水', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;