V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cs5117155
V2EX  ›  PHP

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

  •  
  •   cs5117155 · 2021-05-26 17:54:56 +08:00 · 1922 次点击
    这是一个创建于 1266 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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,//佣金比例
         
      )
    
    3 条回复    2021-05-26 18:38:07 +08:00
    nulIptr
        1
    nulIptr  
       2021-05-26 18:29:33 +08:00
    没看懂,看起来你现在的 ratio 存的是相对于上一级节点的比例。你这个 array 里面也没表现出层级结构啊。但是构建好树形结构然后保证根节点的孩子节点之和不大于 100 不就好了,从根节点到 A 节点的路径中所有比例相乘就是是 A 节点的真正佣金比例,也就是相对根节点的比例。
    cs5117155
        2
    cs5117155  
    OP
       2021-05-26 18:33:11 +08:00
    @nulIptr 我查询出来的时候,已经按层级顺序展示出来了,保证根节点的孩子节点之和不大于 100,这个改动代码有些多,所以想换一个方式
    eason1874
        3
    eason1874  
       2021-05-26 18:38:07 +08:00
    我也没看懂问什么,如果各级比例都是按成交金额,那么只要在修改的时候确认新值不超过上级和下级之和不超过新值就行了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1058 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:36 · PVG 03:36 · LAX 11:36 · JFK 14:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.