news 2026/4/15 11:29:56

用户行为返利业务流程实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
用户行为返利业务流程实现

目录

1、引言

2、实现

3、总结

1、引言

在面向用户的平台中,可以在用户各种行为(如支付,签到)实现后进行用户返利(优惠券发放、积分发放等等),可以使用户习惯操作提升系统用户留存与使用。但是简单的硬编码会随着业务增长迅速变得难以维护。本文以“签到返利”这一场景为例,记录我在实际项目中从设计落地方案。我通过将返利配置、订单化、异步化,并通过 “策略模式”与“幂等性” ,实现返利的高可用性和安全性。

用户行为触发 → 系统自动、无重复地完成权益发

2、实现

这是我画的大概流程图:

本文以签到行为返利为例,记录我在项目中的用户行为返利的实现流程方案与相关容错。

1、行为返利配置:首先我们需要将用户的不同行为返利配置到数据库表(rebate_config_table)中,主要含如下三个关键字段:

rebate_config_table{ 用户行为, // 表明在用户的哪些行为后触发(支付、签到、购买等等) 返利类型, // 表明行为触发哪些返利(优惠券、积分等等) 返利配置 // 表明返利类型的配置(如优惠券->几折?、积分->100分?、小商品赠送->skuID) }

2、行为入库:我们在进行返利时,将每次行为的返利抽象为一笔订单,设计数据库表rebate_order,每一次行为返利进行的返利项目,生成对应的订单,并且把每一笔返利项目写入TASK表并sendMQ。

order_no (主键,返利订单号,全局唯一), user_id, behavior_type, config_id (关联的配置ID), order_status (处理中/成功/失败), total_reward_items (返利总项数), created_time

3、返利项目到账:MQ监听上一步给到的返利项目,通过策略模式,根据不同的Rebate_Type实现不同的返利实现,并且以行为订单单号作为OutBusinessNO实现返利幂等

3、总结

具体实现代码不贴了。目前只实现签到返利,但是支付等行为返利差不多的,比如说支付就回调函数里面调用一下应该就行了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/12 10:09:33

Python 爬虫实战:Scrapy 框架快速搭建分布式爬虫

前言 在大数据时代,单节点爬虫面对海量数据采集需求时,往往受限于单机的网络带宽、CPU 算力和 IP 资源,采集效率难以满足业务要求。Scrapy 作为一款成熟的 Python 爬虫框架,本身具备轻量级、高扩展性的特点,结合分布式…

作者头像 李华
网站建设 2026/4/3 5:47:44

Python 爬虫实战:爬虫代理 IP 池搭建与自动切换

摘要 本文聚焦爬虫代理 IP 池的核心搭建与自动切换技术,针对反爬机制中 IP 封禁的核心痛点,系统讲解代理 IP 池的架构设计、数据源对接、有效性检测、自动切换及动态维护全流程。实战验证基于IP 检测测试页(可直接点击验证 IP 有效性&#x…

作者头像 李华
网站建设 2026/4/7 12:30:45

JAVA面相对象编程—抽象类、接口

#JAVA笔记#抽象类定义抽象类与普通类基本类似,唯一的区别在于使用abstract关键字修饰,且类中有未实现(没有方法体)的抽象方法(abstract修饰)。抽象方法必须位于抽象类中,抽象方法只能访问抽象成…

作者头像 李华
网站建设 2026/4/13 21:10:21

2026最新网络安全小白自学之路,别到处拜师了!!

较为完整的学习路线: 这个路线是我和一些已入职大佬来规划整理,也加上了小提示,我也希望你们能看看上面我的心得,都会有所帮助。 第一阶段,初入门学网络基础tip:这部分没有什么逻辑可以说的,半个…

作者头像 李华
网站建设 2026/4/7 11:25:06

加入2025护网,日薪最低1500,能力越强薪资越高!

加入2025护网,日薪最低1500,能力越强薪资越高! 什么是护网行动 ** ** 1.护网行动 护网,也称网络保护,是指网络安全人员对企业或组织的网络进行检查、维护和保护,以防止网络受到黑客攻击、病毒、木马或其…

作者头像 李华
网站建设 2026/4/3 4:45:20

Selenium切换窗口、框架和弹出框window、ifame、alert

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、切换窗口#获取打开的多个窗口句柄 windows driver.window_handles #切换到当前最新打开的窗口 driver.switch_to.window(windows[-1]) #最大化浏览器 driv…

作者头像 李华