商城分銷簡單思路

三級分銷執(zhí)行分銷規(guī)則往往都是用戶確認(rèn)收貨時候犬绒,所以分銷的方法最好也是在確認(rèn)收貨的方法里面刹勃。

代碼如下:

//這個方法需要傳遞一個變量(訂單號)柄错,作用在下面代碼體現(xiàn)
function fenxiao($orderid){
        //因?yàn)槭侨壏咒N剩蟀,所以有三個等級比例催蝗,同理,如果兩級分銷就會有兩個育特。
        //查詢數(shù)據(jù)庫設(shè)置的比例
        $fenxiao = db('sys_fenxiao_bili')->where('id=1')->find();
        $bili[1] =  $fenxiao['level_1'];
        $bili[2] =  $fenxiao['level_2'];
        $bili[3] =  $fenxiao['level_3'];

        //通過訂單號丙号,獲得購買者的ID(buyer_id)
        $order = $this->getDetail($orderid);
         //$pid 就是購買者ID
        $pid = $order['buyer_id'];、

        //實(shí)例化會員的流水賬戶,因?yàn)橐獙憀og日志犬缨。
        $member = new MemberAccount();

        //這里是循環(huán)遍歷
        foreach ($bili as $k=>$v){
             //重點(diǎn)T骸!遍尺!
            //數(shù)據(jù)庫里面有用戶ID(uid)和用戶的上級ID(pid)
            //db('sys_user')->where('uid='.$pid)->value('pid');  這句話就是查詢他的上級pid截酷,然后賦值為PID  
            //接著foreach循環(huán)查uid等于查出來的pid的值,以此類推乾戏。
           $pid = db('sys_user')->where('uid='.$pid)->value('pid');

           if($pid){
               if($order['fenxiao_money']>0){
                  //計(jì)算分銷傭金
                   $money = $order['fenxiao_money']*$v/100;
                   //寫入日志
                   $member->addMemberAccountData(0, 2, $pid, '1', $money, 8, $orderid, $k.'代返利');
               }
           }
        }
    }

上面的代碼沒有考慮返利時候會員級別有高有低的情況迂苛,并且不能一直追查上線,下面是修改的

   /*
     * 分銷方法
     * zheng
     * */
    public function fenxiao($orderid)
    {

        //訂單號查order_id
        // $orderid = db('ns_order')->where('order_no',$order_no)->value('order_id');
        //每個商品的級別價格
        $gid = db('ns_order_goods')->where('order_id',$orderid)->select();

        /**************************************************員工價格*/
        $staff = 0;
        foreach($gid as $k => $gg){

            //獲得訂單里面商品的ID   $gg['goods_id'];
            //獲取數(shù)量
            $num = $gg['num'];
            //1,查員工價格
            $jgs = db('ns_goods_sku')->where('goods_id',json_decode($gg['goods_id']))->value('price_staff');
            $jg = $jgs * $num;
            $cc = $jg + $staff;
            $staff = $cc;
        }
//        echo $staff;
        /**************************************************代理價格*/
        $agent = 0;
        foreach($gid as $ag){
            //數(shù)量
            $num = $ag['num'];
            //查代理的價格
            $dl = db('ns_goods_sku')->where('goods_id',json_decode($ag['goods_id']))->value('price_agent');
            $dls = $dl * $num;
            $cc = $dls + $agent;
            $agent = $cc;
//            $agent += db('ns_goods_sku')->where('goods_id',json_decode($ag['goods_id']))->value('price_agent');
        }
//        dump($agent);
//        echo $agent;

        /*********************************************會員價格*/
        $vp = 0;
        foreach($gid as $vip)
        {
            //數(shù)量
            $num = $vip['num'];
            //查會員的價格
            $hy = db('ns_goods_sku')->where('goods_id',json_decode($vip['goods_id']))->value('price_vip');
            $hys = $hy * $num;
            $cc = $hys + $vp;
            $vp = $cc;
//            $vp += db('ns_goods_sku')->where('goods_id',json_decode($vip['goods_id']))->value('price_vip');
        }

        /*************************************************游客價格*/
        $p = 0;
        foreach($gid as $pr)
        {
            //數(shù)量
            $num = $pr['num'];
            //查游客的價格
            $yk = db('ns_goods_sku')->where('goods_id',json_decode($pr['goods_id']))->value('price');
            $yks = $yk * $num;
            $cc = $yks + $p;
            $p = $cc;
//            $p += db('ns_goods_sku')->where('goods_id',json_decode($pr['goods_id']))->value('price');
        }
//        echo $p;

        //通過orderid查用戶ID
        $uid = db('ns_order')->where('order_id',$orderid)->value('buyer_id');

        //獲取購買者level
        $u_level = db('ns_member')->where('uid',$uid)->value('member_level');    //
        $maxlevel = 0;      //初始最大級別
        for($i = 0; $i<100; $i++)
        {
            file_put_contents('./logs/'.$maxlevel,'1.txt'.PHP_EOL,FILE_APPEND);
            //查看等級 47游客  50會員  51代理  52員工
            $level = db('ns_member')->where('uid',$uid)->value('member_level');   //購買者等級  47   51
            if($level > $maxlevel){
                $maxlevel = $level;                                                 //maxlevel
            }
            //查購買用戶的上級
            $pid = db('sys_user')->where('uid',$uid)->value('top');              //購買者上級ID
            //上級的級別
            $le = db('ns_member')->where('uid',$pid)->value('member_level');  //購買者上級等級   51    50


            if ($pid==0 || $pid == ''){
                break;
            }else{
                $uid = $pid;
            }
            //記錄上級的最大值
//            $maxlevel = max($level,$le);

            if($le > $maxlevel)
            {
                $maxlevel = $le;                                                     //maxlevel

                $money =  $this->suan($level,$le,$staff,$agent,$vp,$p);
                if($money == 0)
                {

                    continue;

                }
                if($money == 100)
                {
                    break;
                }
                //執(zhí)行返金幣操作
                //判斷用戶余額
                $balance = db('ns_member_account')->where('uid',$pid)->value('balance');
                if(empty($balance)){
                    // $money=-$money;
                    $datas = [
                        'uid' => $pid,
                        'shop_id' => '0',
                        'point' => '0',
                        'balance' => $money,
                        'coin' => 0,
                        'member_cunsum' => '0',
                        'member_sum_point' => '0',
                        'dx_point' => '0'
                    ];
                    db('ns_member_account')->insert($datas);
                    //寫入ns_member_account_records(會員流水賬)記錄表
                    $data = [
                        'uid' => $pid,
                        'shop_id' => '0',
                        'account_type' => '2',
                        'sign' => '1',
                        'number' => $money,
                        'from_type' => '11',  //在數(shù)據(jù)庫添加上
                        'data_id' => $orderid,
                        'text' => '下級購買商品獲得獎勵',
                        'create_time' => date("Y-m-d H:i:s", time())

                    ];
                    db('ns_member_account_records')->insert($data);


                }else{
                    //更改用戶余額
                    db('ns_member_account')->where('uid',$pid)->setInc('balance', $money);
                    //寫入ns_member_account_records(會員流水賬)記錄表
                    $data = [
                        'uid' => $pid,
                        'shop_id' => '0',
                        'account_type' => '2',
                        'sign' => '1',
                        'number' => $money,
                        'from_type' => '11',  //在數(shù)據(jù)庫添加上
                        'data_id' => $orderid,
                        'text' => '下級購買商品獲得獎勵',
                        'create_time' => date("Y-m-d H:i:s", time())

                    ];
                    db('ns_member_account_records')->insert($data);


                }
            }
        }

    }

    public function suan($a,$b,$staff,$agent,$vp,$p)
    {
        //$staff;//員工    $agent;代理  $vp鼓择;會員   $p;   youke

        if($a == 47 ){
            if($b == 47){
                return 0;
            }
            if($b == 50){
                return $p - $vp;
            }
            if($b == 51){
                return  $p - $agent ;
            }
            if($b == 52){
                return $p - $staff;
            }
        }
        if($a == 50){
            if($b == 47){
                return 0;
            }
            if($b == 50){
                return 0;
            }
            if($b == 51){
                return   $vp - $agent;
            }
            if($b == 52){
                return $vp - $staff;
            }
        }
        if($a == 51){
            if($b == 47){
                return 0;
            }
            if($b == 50){
                return 0;
            }
            if($b == 51){
                return 0;
            }
            if($b == 52){
                return $agent - $staff;
            }
        }
        if($a == 52){
            return 100;
        }

    }

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末三幻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子呐能,更是在濱河造成了極大的恐慌念搬,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件摆出,死亡現(xiàn)場離奇詭異朗徊,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偎漫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進(jìn)店門爷恳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人象踊,你說我怎么就攤上這事温亲。” “怎么了杯矩?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵栈虚,是天一觀的道長。 經(jīng)常有香客問我史隆,道長魂务,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任泌射,我火速辦了婚禮头镊,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘魄幕。我一直安慰自己,他們只是感情好颖杏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布纯陨。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪翼抠。 梳的紋絲不亂的頭發(fā)上咙轩,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機(jī)與錄音阴颖,去河邊找鬼活喊。 笑死,一個胖子當(dāng)著我的面吹牛量愧,可吹牛的內(nèi)容都是我干的钾菊。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼偎肃,長吁一口氣:“原來是場噩夢啊……” “哼煞烫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起累颂,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤滞详,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后紊馏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體料饥,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年朱监,在試婚紗的時候發(fā)現(xiàn)自己被綠了岸啡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡赌朋,死狀恐怖凰狞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情沛慢,我是刑警寧澤赡若,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站团甲,受9級特大地震影響逾冬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜躺苦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一身腻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧匹厘,春花似錦嘀趟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牛隅。三九已至,卻和暖如春酌泰,著一層夾襖步出監(jiān)牢的瞬間媒佣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工陵刹, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留默伍,地道東北人。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓衰琐,卻偏偏與公主長得像也糊,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子碘耳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容