# 《大营销平台系统设计实现》 - 营销服务 第18节:领取活动扣减账户额度

作者:小傅哥
博客:https://bugstack.cn (opens new window)

沉淀、分享、成长,让自己和他人都能有所收获!😄

  • 本章难度:★★★★☆
  • 本章重点:拆分活动领域为额度子域、参与子域、装配子域,完成用户领取活动,创建订单扣减账户(总、月、日)额度。
  • 课程视频https://t.zsxq.com/19FswzbMD (opens new window)

版权说明:©本项目与星球签约合作,受《中华人民共和国著作权法实施条例》 (opens new window) 版权法保护,禁止任何理由和任何方式公开(public)源码、资料、视频等内容到Github、Gitee等,违反可追究进一步的法律行动。

# 一、本章诉求

活动领域是一个含有活动部署、活动账户充值、用户参与活动的多个核心子领域组成,也就是一个活动下不只是有一个 service 服务。对于这样的情况,我们需要涉及出不同的子领域来承接这些功能。而不是把所有的功能都平铺到一个模块下。因为平铺写一堆的 service 的方式会让整个逻辑混乱,需求迭代的次数越多,最后的代码也就会越混乱。

所以本节我们要在添加扣减额度的需求上,对前面章节实现的活动sku充值,划分下领域。之后在进行新功能的实现。

# 二、业务流程

用户抽奖的业务流程分为;给自己的活动账户添加额度(购买、兑换、打卡),领取活动(扣减互动账户额度)、执行抽奖策略、抽奖结果落库。本节实现到领取活动部分。

在本节实现中先给原有实现额度充值的对象,新增加 quota 额度子领域文件夹,迁移类进去以及调整类名。这样一个活动类下就有 quota、armory 两个子领域了,之后本节在增加一个 partake 参与活动的领域。

  • 原有的额度账户功能只是做文件夹的迁移,不会动原有的功能。
  • 本节主要实现参与活动的领域,本部分主要涉及了接口和抽象类定义流程,以及向库表写入数据。库表的写入是一个聚合对象下的事务操作,涵盖了3个账户表(总、月、日)和一个订单表。