表模型设计
- 营销活动表
- 抽奖规则表
- 类型 如下单抽奖,大促抽奖,积分抽奖
- 奖品表
- 中奖记录表
- 抽奖资格表
- 条件商品表
ISSUSES
- 抽奖权限
- 人的白黑名单控制
- 控制渠道
- 中奖概率控制
- 并发控制
- 对抽中的奖品加锁
- 抽奖后的履约方式
- 线下履约
- 加入购物车
- 直接生成奖品0元订单
具体实现案例
- 权限判断【设计模式:责任链】
//定义需要执行的chain
@Data
public class LotteryPrivilegeChain {
private List<LotteryPrivilegeHandler> handlers = Lists.newArrayList();
public boolean process(LotteryPrivilegeContext context) {
for (LotteryPrivilegeHandler handler : handlers) {
boolean flag = handler.handle(context);
if (!flag) {
return false;
}
}