# 《大营销平台系统设计实现》 - 营销服务 第3节:策略概率装配处理

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

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

  • 本章难度:★★☆☆☆
  • 本章重点:通过策略ID检索数据库策略配置,并根据策略配置的概率计算出占比值,初始化到 Redis 服务中。完成简单的随机抽奖。
  • 课程视频https://t.zsxq.com/15px0hyMb (opens new window)

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

# 一、本章诉求

从这一章节开始,小傅哥会带着大家正式进行需求的开发实现。我们会先梳理出业务流程,并不断的实现各个模块流程的功能。这包括本节要实现的抽奖策略的装配,这个过程中会需要用到数据库查询、策略值计算、Redis Map 数据存储。也会在这个过程中体现出 DDD 分层架构下的开发实现方式。

# 二、需求介绍

# 1. 流程梳理

以用户为视角下,先进行整个流程的梳理。【如图】

整个过程会包括;抽奖策略、策略奖品、策略规则、奖品发放这些核心流程模块的使用。大家在看这个图的时候,可以配合着库表进行思考。在本节小傅哥会带着大家先实现抽奖策略的装配,用于后续抽奖时进行使用。

# 2. 算法说明

两种抽奖算法方式;

  • 可以根据概率值,来创建出累加的范围。如A是占10个,B的范围就是从10+40到50个,就是B。依次类推。当抽奖活动的随机值,就可以在这些区间内循环对比。
  • 另外一种是存放到Map中,用空间换时间。这样在抽奖的时候,把随机值当索引使用,可以直接获取到对应的奖品结果。本节我们来实现第二种方式。