model_coupons - TimYi/FengHuang GitHub Wiki

优惠券概念

优惠券可以让用户在购买商品时获得减免优惠。
目前只有定额优惠券,使用限制为限制过期时间,过期优惠券不可使用。

优惠券发放

在以下节点,触发优惠券分发:
用户注册,用户成功购买套餐,成功预约服务,成功预约套餐,成功支付订单。
【分发规则】采用配置方式,可以对不同节点配置【分发】(或者【不分发】)优惠券。
可以配置分发的【优惠金额】和【过期时间】,以及优惠券名称,描述等信息。

优惠券核销

定额优惠券在支付时可以使用【一】张,抵扣优惠券优惠额度的费用。
购买同一商品时,不可以同时使用多张优惠券。

程序设计思路

最早设计的处理方式是将事件的触发和事件的处理完全独立设计,通过事件处理配置来关联。
这样做系统设计和测试会比较复杂,而且前端展现的设计也可能会因此复杂起来。

现在的方法是为优惠券分发单独设计一个事件处理总线。
它可以根据event字符串区分不同的分发配置,进行优惠券分发处理。
实际的业务模块,在指定节点处罚优惠券事件总线的节点相关事件。
后台管理页面,优惠券管理区域,可以配置各个节点的优惠券分发设置。
约定的事件名称:注册-regist,抢购套餐成功-scramble,成功支付订单-payOrder
成功预约服务-appointService,成功预约套餐-appointPackage