记录一下新解决的群组分佣问题,我觉得挺有价值:
需求
-
群组系统中,用户是被邀请进来,有层级关系
-
按上图,E消费后,A、B、D、E都会有返佣,但是返佣总额是固定的,设为Bonus。
3.上级设置下级获取的比例,比如:A设置B获得A所得的0.9,B设置D获得B所得的0.9,D设置E所得的0.6.
思路
实际上要计算出每个用户实际占用Bonus的百分比,最后可以通过总体值比例计算。
我设计的数据库表包括《组织表》,组织表记录了组织id、组织boss,组织总体分佣比例(通过组织用户消费额度乘以比例计算Bonus)
《上下级分佣关系表》记录了上级id,下级id和分佣比例。
例子,E消费后获得了Bonus的奖励,设置Bonus为1,那么层级中每个用户实际占用Bonus的百分比是多少?
实际上就是要把数据库表进行这个关系转换:
这个关系的递推公式是怎样的?我当时是用归纳法推导出来的。
A所得 = Bonus * (1-A下级比例所得)= 1 * (1-0.9)=0.1
B所得 = Bonus * A下级比例所得 *(1-B下级比例所得)= 1 * 0.9 * (1-0.9) = 0.09
C所得 = Bonus * A下级比例所得 * B下级比例所得 * (1-0)= 1 * 0.9 * 0.9
C这里因为不用分到下级,所以不用减去D下级比例所得
有了这个递推公式,可以用一个循环,把相应的关系占比算出来。
总的来说,通过结果倒推的方式可以把问题进行解决。
再次确认一下思路,为了简单说明,只有一个比例n
A是BOSS,A邀请了B,B邀请了C,C邀请了D。
假设 B 能分到A所得的0.9,C能分到B所得的0.8 ,D能分到C所得的0.7
3.D进行消费,获得相应奖励,另外分佣部分为 1 ,1通过比例分给D的直属上级 A、B、C。
- 通过比例计算,A获得分佣为0.1 B获得的分佣为0.18 C分到0.72