拼团设计
最近在做一个拼团的活动,记录下设计过程
1、背景
在这次的需求中,需要设计一个社区拼团的活动。这个活动需要精确到具体商家,门店,商品。团长开团,团员参团,团长开团是可以选择不同阶梯人数,每个阶梯人数价格不同,团长和团员有身份和参与次数限制。成团之后统一进行库存管理
2、技术
基于springboot技术,为了方便打印日志,作用AOP编程打印接口的入参和出参
3、数据库设计
首先使用一个activity表存储活动的基本信息,同时新建一个活动商品信息的表activity_product,这个表通过活动ID和活动表进行关联,团信息的表activity_assemble通过活动ID和商品ID,商家ID,门店ID相关联,团详情的表assemble_detail则通过团ID和团信息表关联。因为可能频繁的调用团信息,在团信息表中,对storeId和skuId两个字段建索引,加快查询的速度。
4、缓存
用户在进入商品详情页的时候会通过商品ID和店铺ID来查询活动信息,所以使用店铺ID和skuId作为Key来存储活动的基本信息加速接口的响应速度。团员支付成功后,为避免团员超限问题,使用团ID作为key存储团成员的数量,在支付成功的时候通过redis的decr控制。在成团的同时会去扣减库存,为了避免超卖的问题,使用redis做分布式锁,

浙公网安备 33010602011771号