PAGE 2
高并发秒杀系统设计
功能需求:设计一个秒杀系统
初始方案
商品表设计:热销商品提供给用户秒杀,有初始库存。
@Entitypublic class SecKillGoods implements Serializable{??? @Id??? private String id;??? /**???? * 剩余库存???? */??? private Integer remainNum;??? /**???? * 秒杀商品名称???? */??? private String goodsName;}
秒杀订单表设计:记录秒杀成功的订单情况
@Entitypublic class SecKillOrder implements Serializable {??? @Id??? @GenericGenerator(name = PKUUID, strategy = uuid2)??? @GeneratedValue(generator = PKUUID)??? @Column(length = 36)??? private String id;??? //用户名称??? private String consumer;??? //秒杀产品编号??? private String goodsId;??? //购买数量??? private Integer num;}
Dao设计:主要就是一个减少库存方法,其他CRUD使用JPA自带的方法
public interface SecKillGoodsDao extends JpaRepositorySecKillGoods,String{??? @Query(update SecKillGoods g set g.remainNum = g.remainNum - ?2 where g.id=?1)??? @Modifying(clearAutomatically = true)??? @Transactional??? int reduceStock(String id,Integer remainNum);}
数据初始化以及提供保存订单的操作:
@Servicepublic class SecKillService {??? @Autowired??? SecKillGoodsDao secKillGoodsDao;??? @Autowired??? SecKillOrderDao secKillOrderDao;??? /**???? * 程序启动时:???? * 初始化秒杀商品,清空订单数据???? */??? @PostConstruct??? public void initSecKillEntity(){??????? secKillGoodsDao.deleteAll();??????? secKillOrderDao.deleteAll();??????? SecKillGoods secKillGoods = new SecKillGoods();??????? secKillGoods.setId(123456);??????? secKillGoods.setGoodsName(秒杀产品);??????? secKillGoods.setRemainNum(10);??????? secKillGoodsDao.save(secKillGoods);??? }??? /**???? * 购买成功,保存订单???? * @param consumer???? * @param goodsId???? * @param num???? */??? public void generateOrder(String consumer, String goodsId, Integer num) {??????? secKillOrderDao.save(new SecKillOrder(consumer,goodsId,num));??? }}
下面就是controller层的设计
@Controllerpublic class SecKillController {??? @Autowired??? SecKillGoodsDao secKillGoodsDao;??? @Autowired??? SecKillService secKillService;??? /**???? * 普通写法???? * @param consumer???? * @param goodsId???
您可能关注的文档
最近下载
- 2026年新闻编辑面试参考笔试题目及参考答案.docx VIP
- 广东海洋大学《高等数学下》2025 - 2026学年第一学期期末试卷(A卷).docx
- 护理带教新思路ppt.pptx VIP
- Stromag 51 series technology data说明书用户手册.PDF
- 关于绑架的小故事-绑架关起来的故事.docx VIP
- 2025年青海省中考数学试卷(含详细答案解析).docx
- 2024-2025学年江苏省常州市初一上学期语文试卷与参考答案.docx VIP
- 一汽丰田改款陆地巡洋舰产品指导书.pdf VIP
- 口腔牙周健康知识宣讲.pptx VIP
- 2024-2025学年江苏省常州市英语初一上学期试卷及答案指导.pdf VIP
原创力文档

文档评论(0)