表达式引擎之活动任务系统设计

表达式引擎之活动任务系统设计

🔥超硬核技术分享|表达式规则引擎设计全攻略✨ 三步打造高可用活动系统!

需求描述

业务方希望通过任务来驱动用户对小程序的活跃度,比如打卡、分享、提问、报名等等操作来获得一些奖励,比如积分、商品等等。

任务一般是围绕活动产生的,所以基于活动纬度去配置任务是比较合理的。

业务难点

  • 确定任务的行为,以及接入行为管理。比如打卡、分享、提问,都是用户的行为,如何统一将行为管理起来,方便后续拓展。
  • 任务的规则是一个难点,每个任务能不能完成是由行为规则决定的,规则如何配置?
  • 任务完成之后,奖励的处理?【积分、商品、回调…】

因此,针对一系列复杂的逻辑处理,需要有一套规则引擎来接管所有复杂的逻辑,为后续复杂业务的灵活性打下基础,毕竟开个好头,后续就不难了。

表达式规则引擎开源地址:

  • https://github.com/liukaixiong/expression-mind-map-engine
  • https://gitee.com/liukaixiong/expression-mind-map-engine

业务设计

表结构设计

活动表
字段名称类型说明
activity_codeVARCHAR(32)唯一标识活动的编码
typeTINYINT活动类型:share(分享类)/user(用户类)
nameVARCHAR(64)活动名称
start_timeDATETIME活动开始时间
end_timeDATETIME活动结束时间
statusTINYINT活动状态:0无效/1有效
expression_configTEXT活动特殊配置(JSON格式存储规则表达式)
subscribe_eventsVARCHAR(255)订阅的事件编码集合(多个用逗号分隔,如:register,order)
任务表
字段名称类型说明
moduleVARCHAR(32)所属模块(如:新人任务/日常任务)
task_codeVARCHAR(32)唯一任务编码
titleVARCHAR(64)任务名称(如:每日签到)
iconVARCHAR(128)任务图标URL
descriptionVARCHAR(255)任务描述(前端展示用)
reward_typeVARCHAR(16)奖励类型:points(积分)/goods(实物商品)
reward_valueINT奖励数值(积分数量/商品ID)
用户任务日志表
字段名称类型说明
log_idBIGINT日志唯一编号(自增主键)
task_codeVARCHAR(32)关联任务编码
task_titleVARCHAR(64)任务标题快照(防止任务修改后历史记录丢失)
user_idBIGINT用户唯一标识
reward_pointsINT实际发放的积分值
detailTEXT任务完成详情(JSON格式存储行为参数,如:{share_count:3,days:7})

流程设计

流程图

1、针对用户可能触发的行为在接口进行埋点

2、将行为数据发送到消息队列中

3、活动系统负责订阅所有用户的行为事件。

4、将该任务需要关注到的用户行为进行绑定到活动表的【订阅的事件编码集合】字段中进行关联

5、当用户行为匹配到对应的活动【任务】数据时,开始消费该数据,数据的逻辑都在【表达式规则引擎】中配置。

6、规则引擎负责该任务相关的【行为、条件、奖励、回调】四层模型进行划分

表达式规则引擎配置

🌟核心价值 ✅ 灵活配置规则 ✅ 实时生效机制 ✅ 全链路追踪 💡一套引擎搞定:邀请裂变+任务系统+营销活动

规则配置案例:

规则配置

四层颜色对应四种模型: 行为(浅绿) - 条件(紫色) - 奖励(绿色) - 回调(蓝色),根据自己的诉求在模型中进行迭代配置。

每个分支中都涵盖了业务表达式,表达式中涵盖业务函数或者上下文变量等等

比如:

  • 行为: event == ‘question’ // 提问
  • 条件: xxx_expression_repeatable() // xxx只能被成功执行一次,不可重复执行
  • 奖励: task_reward_info(‘xcx_share_day’) // 完成某个指定任务
  • 回调: send_msg(‘短信码’) // 发送短信

以上只是业务函数释义,可根据自己的业务定制自己的函数进行配置。比如xx天分享才能得到奖励等等。

一个复杂的任务过程,被抽象成一个个通用的业务函数,可以应用到各个场景进行重组,得到最终的业务表达式,这也是引擎带来的优势。

当业务迭代到最后,所有的业务基本上大部分都能够被这些能力覆盖,对团队的效率、质量都会有大的提升。

详细介绍可以参考引擎:

  • https://github.com/liukaixiong/expression-mind-map-engine
  • https://gitee.com/liukaixiong/expression-mind-map-engine
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值