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