求一个分销佣金比例算法,各个用户的佣金不超过总和 100%

2021-05-26 17:54:56 +08:00
 cs5117155
array (
  0 => 
  array (
    'type' => 1,  //类型
    'id' => 1,  //用户 id
    'ratio' => 100, //佣金比例
 
  ),
  1 => 
  array (
    'type' => 1,   //类型
    'id' => 20,   //用户 id
    'ratio' => 100,//佣金比例
 
  ),
  2 => 
  array ( 
    'type' => 1,   //类型
    'id' => 42,  //用户 id
    'ratio' => 100,//佣金比例
     
  ),
)

比如后台已经设置id=1的代理,分佣比例100%,但是id=1代理把自已的利润都100%分配给下级的id=20代理分拥比例100,相当于这时候代理id=1是没有利润的. 接着id=20的代理又把自已的利润100%给了下级代理id=42,这时id=42代理才真正拥有这100%的分拥 如何得到结果就是这个

 array ( 
    'type' => 1,   //类型
    'id' => 42,  //用户 id
    'ratio' => 100,//佣金比例
     
  )
1923 次点击
所在节点    PHP
3 条回复
nulIptr
2021-05-26 18:29:33 +08:00
没看懂,看起来你现在的 ratio 存的是相对于上一级节点的比例。你这个 array 里面也没表现出层级结构啊。但是构建好树形结构然后保证根节点的孩子节点之和不大于 100 不就好了,从根节点到 A 节点的路径中所有比例相乘就是是 A 节点的真正佣金比例,也就是相对根节点的比例。
cs5117155
2021-05-26 18:33:11 +08:00
@nulIptr 我查询出来的时候,已经按层级顺序展示出来了,保证根节点的孩子节点之和不大于 100,这个改动代码有些多,所以想换一个方式
eason1874
2021-05-26 18:38:07 +08:00
我也没看懂问什么,如果各级比例都是按成交金额,那么只要在修改的时候确认新值不超过上级和下级之和不超过新值就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/779393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX