目录
- 秒杀按钮
-
-
- 代码实现:
-
- vue的JS实现:
-
- 秒杀请求
-
- 需求:
- 代码
-
- 前端
- 后端
-
- Seckill-api
-
- domain
- Seckill-server
-
- WebConfig
- 1、秒杀请求判断
-
- controller
- 2、重复下单判断
-
- Mapper
- Service 接口
- Impl 实现类
- controller
- 3、库存判断
- 4、秒杀涉及到的操作
-
- _01、减库存
- _02、创建订单对象并保存
- _03、用户下单次数数据存储
- 出现的问题:
- 订单编号生成使用雪花算法的代码
秒杀按钮
需求:点击抢购的按钮,在未规定的时间段内不可点击
代码实现:
vue的JS实现:
在vue的js中 , prop 是父组件用来传递数据的一个自定义属性
秒杀请求
需求:
点击立即秒杀后,从前端发送请求到后端接受的一系列判断
代码
前端
携带数据发送到后端
后端
Seckill-api
domain
添加两个实体类,秒杀订单信息类和订单详情信息类
Seckill-server
WebConfig
把自定义参数解析器的配置类拷贝一份到秒杀服务里面。
1、秒杀请求判断
controller
开始对秒杀的操作进行一系列的判断:是否登录、数据库是否有该商品id、后端再次判断秒杀时间是否已经开始
2、重复下单判断
判断用户是否重复下单,如果重复下单,提醒不要重复下单
Mapper
先写个Mapper,写数据库查询是否重复下单的语句
Service 接口
Impl 实现类
controller
3、库存判断
判断是否有库存,如果没有提醒库存不足
4、秒杀涉及到的操作
_01、减库存
重新建一个秒杀用的service业务层来做秒杀的业务逻辑判断,秒杀的数据会放在t_order_info 订单信息表里面
创建一个service接口,专门用来处理秒杀订单信息的业务逻辑
SeckillOrderInfoServiceImpl
在实现里面,因为减库存是减 t_seckill-goods 表的数据,所以得把减库存的实际业务逻辑写在ISeckillGoodService接口那边
ISeckillGoodService接口,写减库存的实际业务逻辑方法的接口