首页 >社区问答列表 >怎么写php三级分销?逻辑思路是怎样的啊,求指点

怎么写php三级分销?逻辑思路是怎样的啊,求指点

  • NULL
  • NULL     2017-12-07 13:35:24 2楼

    static function GetUpUser($userId,$ShopPrice){//获取上级用户等级并提成,提成按照百分比方式提成,参数一为当前用户的ID,参数二为商品价格
            $user = Db::table('user')->where(['id'=>$userId])->select();//查询当前用户详情
            $UpUser = Db::table('user')->where(['id'=>$user[0]['up_id']])->select();//查询上级用户详情,up_ID为上级ID
            if(empty($UpUser)){
                return;//如果上级信息为空,则结束方法
            }else{
                $Commission = Cache::get('Commission');//获取提成比例
                if($Commission == '' || $Commission == null || !$Commission ){//如果没有则从数据库查询提成比例
                    $Commission = Db::table('commission')->where(['Id'=>1])->select();
                    $Commission = $Commission[0]['ticheng'];
                    Cache::set('Commission',$Commission,0);//提成比例存入缓存
                }
                //查看等级差,相差两级应该提成两级的利润
                $money = ($user[0]['Grade'] - $UpUser[0]['Grade']) * $ShopPrice * $Commission;//计算提成金额
                $money = floor($money*100)/100;//取小数点后两位
                
                if($money != 0){
                    //给上级用户增加余额
                    Db::table('user')->where(['id'=>$UpUser[0]['id']])->update(['money' => ['exp',"money+$money"]]);
                }
                if($UpUser[0]['up_id'] == 0){
                    //如果上级ID是顶级则结束方法执行
                    return;
                }
                //把上级ID传入本方法继续执行提成操作,
                self::GetUpUser($UpUser[0]['id'],$ShopPrice);
            }
            return;
        }//提成function


    +0 添加回复

  • 回复
  • 小皮
  • 小皮     2017-12-03 17:13:13 1楼

    这个涉及的就太多了   弄清楚分销的概念  我估计思维导图能写几十页来   还不包含商城的

    +0 添加回复

  • 回复