1.数据库设计
商品表
订单表(只包含用户id,商品id,订单详细表id)
订单详细表
秒杀商品表(活动太多,商品表将很难维护,单独秒杀商品表)
2.前端实现
2.1页面设计
商品列表页
商品详情页
订单详情页
2.2 前端搭建
1.编写Dao 层
goodsDao:实现在数据库中商品列表查询,商品的查询,商品库存减少函数
OrderDao:实现秒杀订单的查询,秒杀订单的插入
2.编写Service层
GoodService:实现获取商品的列表信息,商品详细信息
OrderService:实现秒杀订单的查询,秒杀订单的创建
MiaoshaService:事务操作,库存减少,下订单,写入秒杀订单
3.编写Controller 层
实现不同业务逻辑对应下的商品列表,详情获取,商品秒杀
2.3 业务逻辑
商品列表页:首先获得用户信息,如果用户信息为空代表尚未登陆。点击具体商品,传入商品ID,进入商品详情页
商品详情页时候:获取商品信息和秒杀商品信息(秒杀开始时间,结束时间,秒杀价格)并且添加秒杀的状态【尚未开始,秒杀中,秒杀结束】到该页面,隐藏域中添加商品Id(如可秒杀开始,通过商品ID传入服务端进行秒杀)
注意:秒杀未开始或则结束无法进行秒杀按钮操作
同时,秒杀未开始,应该显示还剩下多少秒,由客户端实现功能,避免造成服务器端压力,可能会出现客户端和服务端时间不一致情况。【通过脚本编写回调函数实现秒数减少和显示,动态的进行秒杀状态的切换 故无论是否秒杀处于何种状态,都应该获取秒杀剩余时间(不应该仅仅是秒杀未开始时候才去获取),所以用隐藏域保存】
秒杀过程:判断用户是否登录,判断商品库存量是否够,判断用户是否以及下过单,满足条件后事务方式新建秒杀订单【秒杀订单详情(包含用户信息,被秒杀商品信息,订单状态(是否支付等),创建时间)和秒杀订单(用户id,商品id,秒杀订单详情id)】,不满足条件返回错误页面,显示错误codeMsg 信息。
订单详情页实现:创建订单后应该跳转订单详情页,获取商品信息,订单状态等信息。
如果未支付,可以进行点击支付。