第五章 秒杀模块开发
5.1 秒杀模型管理——活动模型创建
1. 安装joda-time依赖
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.1</version>
</dependency>
可以创建DateTime类
2. 创建PromoModel秒杀模型
public class PromoModel {
private Integer id;
//秒杀活动状态:1表示还未开始,2表示正在进行,3表示已结束
private Integer status;
//秒杀活动名称
private String promoName;
//秒杀活动的开始时间
private DateTime startDate;
//秒杀活动的结束时间
private DateTime endDate;
//秒杀活动的适用商品
private Integer itemId;
//秒杀活动的商品价格
private BigDecimal promoItemPrice;
3. 数据库创建promo表
名 | 类型 | 说明 |
---|---|---|
id | int | 秒杀活动id |
promo_name | varchar | 秒杀活动名称 |
start_date | datetime | 秒杀活动开始时间 |
end_date | datetime | 秒杀活动结束时间 |
item_id | int | 秒杀活动适用商品 |
promo_item_price | double | 秒杀活动商品价格 |
注意:数据库datetime默认值要设置为’0000-00-00 00:00:00’格式
4. mybatis-generator工具生成PromoDO类和PromoDOMapper
运行 mvn mybatis-generator:generate
<table tableName="promo" domainObjectName="PromoDO" enableCountByExample="false"
enableUpdateByExample="false" enableDeleteByExample="false"
enableSelectByExample="false" selectByExampleQueryId="false"></table>
5.2 秒杀模型管理——活动模型与商品模型结合
1. Service层创建PromoSerice接口与实现类
秒杀活动service层主要的操作是:
- 根据itemId来获取即将进行的或正在进行的秒杀活动信息(返回PromoDO的dataObject)
- 将PromoDO转化为PromoModel
- 根据status来判断当前时间是否即将开始或正在进行秒杀活动
- 返回promoModel对象
PromoService接口
//根据itemId获取即将进行的或者正在进行的秒杀活动
PromoModel getPromoByItemId(Integer itemId);
PromoService实现类
@Service
public class PromoServiceImpl implements PromoService {