学习目的
【1】数据库规范:数据库整改、dao层调整
【2】发奖领域构建、重温简单工厂模式
参考分支 | 210904_xfg_award |
开发分支 | dev_220118_01_award |
【1】数据库规范:数据库整改、dao层调整
【2】发奖领域构建、重温简单工厂模式
参考分支 | 210904_xfg_award |
开发分支 | dev_220118_01_award |
【1】构建ID生成领域:根据不同场景分析不同ID策略的应用
【2】掌握ID生成策略:使用雪花算法、阿帕奇工具包 RandomStringUtils、日期拼接,三种方式生成ID,分别用在订单号、策略ID、活动号的生成上
参考分支 | 210911_xfg_IdGenerator |
开发分支 | dev_220119_02_IdGenerator |
【1】基于模板设计模式,规范化抽奖执行流程
【2】掌握抽奖流程和相应的业务逻辑
【3】以抽奖业务流程功能开发为参考,进一步了解基于ddd的功能开发流程
参考分支 | 210828_xfg_subtractionStock |
构建分支 | 220117_03_subtractionStock |
【1】活动流转状态梳理
【2】活动领域构建
参考分支 | 210911_xfg_activity |
开发分支 | dev_220119_01_activity |
开发活动领域部分功能,包括:活动创建、活动状态变更。主要以 domain 领域层下添加 activity 为主,并在对应的 service 中添加 deploy(创建活动)、partake(领取活动,待开发)、stateflow(状态流转) 三个模块。以及调整仓储服务实现到基础层
JDK 1.8
SpringBoot 2.6.0
Dubbo 2.7.10
DB-ROUTER 自研分库分表路由组件,带着你一起写个SpringBoot Starter
vue 开发H5大转盘抽奖
微信公众号 对接提供API,回复抽奖
Docker 本地和云服务
其他所需环境:mysql\kafka\zk\redis\xxl-job
更新 | 说明 | 变动说明 |
---|---|---|
20220117 | 新建 | |
20220117 | 修改 | strategy_detail引入新字段awardSurplusCount |
随着项目需求的迭代不断完善版本信息
架构分层、逻辑设计、代码流程
【1】掌握抽奖策略领域模块开发基本流程、概念梳理(对比MVC、DDD模块开发的设计理念)
【2】掌握抽奖算法场景应用和两种不同策略算法的实现思路
【3】结合单体概率算法思路自定义实现算法逻辑基本框架
【4】学习过程问题反思、扩展、总结
需求:在一场营销抽奖活动玩法中,运营人员通常会配置以转盘、盲盒等展现形式的抽奖玩法。例如在转盘中配置12个奖品,每个奖品配置不同的中奖概率,当1个奖品被抽空了以后,那么再抽奖时,是剩余的奖品总概率均匀分配在11个奖品上,还是保持剩余11个奖品的中奖概率,如果抽到为空的奖品则表示未中奖。其实这两种方式在实际的运营过程中都会有所选取,主要是为了配合不同的玩法。
Lottery 抽奖系统
项目是一款互联网面向C端人群营销活动类的抽奖系统,可以提供抽奖活动玩法策略的创建、参与、记账、发奖等逻辑功能。在使用的过程中运营人员通过创建概率类奖品的抽奖玩法,对用户进行拉新、促活、留存,通常这样的系统会用在电商、外卖、出行、公众号运营等各类场景中。
名称 | 系统 | 作用 |
---|---|---|
分布式核心功能服务系统 | Lottery | 提供抽奖业务领域功能,以分布式部署的方式提供 RPC 服务。 |
网关API服务 | Lottery-API | 网关服务,提供; H5 页面抽奖、公众号开发回复消息抽奖 |
C端用户系统 | lottery-front | vue H5 lucky-canvas 大转盘抽奖界面,讲解 vue 工程创建、引入模块、开发接口、跨域访问和功能实现 |
B端运营系统 | Lottery-ERP | 满足运营人员对于活动的查询、配置、修改、审核等操作。 |
分库分表路由组件 | db-router-spring-boot-starter | 本项目依赖自研分库分表组件,需要下载后构建 开发一个基于 HashMap 核心设计原理,使用哈希散列+扰动函数的方式,把数据散列到多个库表中的组件,并验证使用。 |
测试验证系统 | Lottery-Test | 用于测试验证RPC服务、系统功能调用的测试系统。 |