推广邀请系统——基于Redis的裂变逻辑-CSDN博客
背景
代购行业获客成本高,推广邀请是低成本拉新利器。Taocarts实现了多级分销(一级)和邀请码裂变。
一、邀请码生成(Laravel唯一码)
use
Illuminate
\
Support
\
Str
;
public
function
generateInviteCode
(
$userId
)
{
do
{
$code
=
Str
::
random
(
8
)
;
}
while
(
User
::
where
(
'invite_code'
,
$code
)
->
exists
(
)
)
;
User
::
where
(
'id'
,
$userId
)
->
update
(
[
'invite_code'
=>
$code
]
)
;
return
$code
;
}
二、邀请绑定与佣金计算
新用户注册时填写邀请码,记录关系:
// 注册时
$inviter
=
User
::
where
(
'invite_code'
,
$request
->
invite_code
)
->
first
(
)
;
if
(
$inviter
)
{
$user
->
invited_by
=
$inviter
->
id
;
$user
->
save
(
)
;
// 给邀请人发放首单奖励积分
$inviter
->
increment
(
'points'
,
50
)
;
}
三、佣金结算(异步队列)
每当被邀请人完成一笔订单,系统计算佣金(例如5%),并记录到推广账户。
class
CommissionJob
{
public
function
handle
(
Order
$order
)
{
$inviter
=
$order
->
user
->
inviter
;
if
(
!
$inviter
)
return
;
$commission
=
$order
->
total_usd
*
0.05
;
$inviter
->
commission_balance
+=
$commission
;
$inviter
->
save
(
)
;
// 记录明细
CommissionLog
::
create
(
[
'user_id'
=>
$inviter
->
id
,
'amount'
=>
$commission
,
'order_id'
=>
$order
->
id
]
)
;
}
}
四、Redis缓存推广排行榜
// 实时增加邀请人数
Redis
::
zincrby
(
'invite_leaderboard'
,
1
,
$inviter
->
id
)
;
// 获取前十名
$top10
=
Redis
::
zrevrange
(
'invite_leaderboard'
,
0
,
9
,
'WITHSCORES'
)
;
五、前端推广落地页(React)
<
div className
=
"promotion"
>
<
h3
>
你的邀请码
:
{
user
.
invite_code
}
<
/
h3
>
<
QRCode value
=
{
`
https://taocarts.com/register?code=
${
user
.
invite_code
}
`
}
/
>
<
p
>
已邀请朋友
:
{
user
.
invite_count
}
人
<
/
p
>
<
p
>
累计佣金
:
$
{
user
.
commission_balance
}
<
/
p
>
<
button onClick
=
{
(
)
=>
withdrawCommission
(
)
}
>
提现
<
/
button
>
<
/
div
>
结语
推广邀请系统是代购系统运营增长的发动机。搜索代购平台推荐、反向海淘为什么火了可参考成功案例。