电商系统-优惠券部分设计

==========第一期==========

1 如今做电商少不了优惠券,假设是这样的业务:


  • 所有优惠券配置后所有用户可见
  • 发放方式支持领取(支持发放有限数量,即抢券),抽奖
  • 优惠券支持指定商品分类

2 Model设计:


  • 名称 varchar(20)
  • 描诉 varchar(50)
  • 优惠券金额 int 
  • 满减条件金额 int 
  • 支持的商品类别id int
  • 是否有效 boolean
  • 是否可领 boolean
  • 发放数量 int 0表示无限
  • 抢卷时间起 datetime
  • 抢券时间止 datetime
  • 有效期起 datetime
  • 有效期止 datetime
  • 更新人 varchar(10)
  • 更新时间 datetime
  • 创建人 varchar(10)
  • 创建时间 datetime

3运营后台:

3.1 通用功能 增删改查


  • 逻辑判断:
  1. 创建时若不指定起止时间,则立即发布
  2. 创建时若不指定商品分类,则为通用
  3. 创建时若设置满减条件为0,则为代金券
  4. 仅能删除未发布的优惠券

3.2 运营操作

3.2.1 下架

  • 定义: 设置在有效抢卷时间内的优惠券为不可领,但已领到的依然可用;
  • 逻辑判断: 
  1. 未开始抢券的优惠券操作下架,提示可以修改/删除,不能下架
  2. 当优惠券抢完后,系统自动设置为下架

4 后台服务

4.1抢券服务


  • tornado 处理请求
  • redis 操作券数量的增减: string类型,记录某一优惠券的数量;


==========第二期==========

业务:


  1. 取消用户抢劵;改为系统发放
  2. 不考虑兼容上期优惠券(产品还算有良心。。。)
  3. 发劵分为:面向老用户发放;指定时间范围,向新注册用户发放;指定某范围发放;上传手机号.txt发放


Model:

优惠券实体表:


  • status int comment ‘状态: 0无效1有效’;
  • name varchar(64) comment‘名称’
  • desc varchar(64) comment ‘描述’
  • coupon_amount int comment ‘满减条件:0代金券;非0满减券’
  • amount int comment '满减金额'
  • start_time datetime comment '有效期起'
  • end_time datetime comment '有效期止'
  • create_user int comment '创建人uid'
  • create_time datetime comment‘创建时间’
  • update_user int comment ‘修改人’
  • update_time timestamp not null default on update current_timestamp;

发劵关系表:


  • status int comment ‘状态:0 无效 1待发放 2发放中(管理系统前端展示归属于未发放) 3 已发放’
  • coupon_id int comment ‘优惠券id’
  • grant_start_time datetime comment‘发卷时间起’
  • grant_end_time datetime comment‘发卷时间止’
  • count int comment ‘发放数量’
  • create_user int comment '创建人uid'
  • create_time datetime comment‘创建时间’
  • update_user int comment ‘修改人’
  • update_time timestamp not null default on update current_timestamp;

用户关系表基本不变: 略

发放业务实现

技术栈:

  • RabbitMQ 消息队列;异步通知,分布式运算
  • Redis: 支持丰富数据结构且可靠的缓存数据库

面向老用户/解析上传手机号/指定范围:

  • 运营后台配置,异步发放
  • 发起RabbitMQ事件,独立进程监听,分批次向User请求uid

指定时间向新用户:

  • 监听User用户注册事件
  • 获取所有发放中的新用户优惠券








转载于:https://my.oschina.net/niuqingshan/blog/532695

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值