diff --git a/addon/fenxiao/model/FenxiaoOrder.php b/addon/fenxiao/model/FenxiaoOrder.php index 7c85dcc..db2ecff 100644 --- a/addon/fenxiao/model/FenxiaoOrder.php +++ b/addon/fenxiao/model/FenxiaoOrder.php @@ -49,12 +49,13 @@ class FenxiaoOrder extends BaseModel ['fenxiao_level l', 'f.level_id = l.level_id', 'right'] ]; $fenxiao_info = model("fenxiao")->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_id ], [ 'f.is_delete', '=', 0 ] ],$field,'f',$join); + if (empty($fenxiao_info)) return $this->success(); // 如果购买人是分销商 并且未开启分销商自购 if ($member_info[ 'is_fenxiao' ] && $fenxiao_basic_config[ 'self_purchase_rebate' ] == 0) { if (empty($fenxiao_info[ 'parent' ])) return $this->success(); - $fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ]); + $fenxiao_info = model("fenxiao")->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ],$field,'f',$join); if (empty($fenxiao_info)) return $this->success(); } @@ -96,11 +97,14 @@ class FenxiaoOrder extends BaseModel $goods_info = model('goods')->getInfo([['goods_id','=',$v['goods_id']]],'is_fenxiao, fenxiao_type,goods_kind_id'); //报单商品才有直推和间推 + if($goods_info['goods_kind_id']){ $order_fenxiao_data = $this->getPushFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data,$goods_info['fenxiao_type'],$fenxiao_basic_config); } + //计算进货佣金 $order_fenxiao_data = $this->getWholesaleFenXiaoCommission($fenxiao_info,$v,$order_fenxiao_data,$fenxiao_basic_config,$goods_info['goods_kind_id'],$goods_info['fenxiao_type']); + if(($order_fenxiao_data['commission'] && $order_fenxiao_data['commission_rate']) || $order_fenxiao_data['wholesale_rate'] || $order_fenxiao_data['founder_rate']){ $data = [ 'order_id' => $order['order_id'], @@ -174,14 +178,11 @@ class FenxiaoOrder extends BaseModel $join = [ ['fenxiao_level fl','f.level_id = fl.level_id','right'] ]; - if($config['self_purchase_rebate'] > 0){ - $parent_fenxiao_info = $fenxiao_info; - $g_parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'f.is_delete', '=', 0 ] ], 'f.fenxiao_id, f.fenxiao_name, f.status, f.parent,f.level_id,fl.level_num','f',$join) : []; - }else{ - $parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'f.is_delete', '=', 0 ] ], 'f.fenxiao_id, f.fenxiao_name, f.status, f.parent,f.level_id,fl.level_num','f',$join) : []; - $g_parent_fenxiao_info = $fenxiao_info['grand_parent'] > 0 ? model('fenxiao')->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_info[ 'grand_parent' ] ], [ 'f.is_delete', '=', 0 ] ], 'f.fenxiao_id, f.fenxiao_name, f.status, f.parent,f.level_id,fl.level_num','f',$join) : []; - } + //开启自购后fenxiao_info是自己,未开启是上级 + $parent_fenxiao_info = $fenxiao_info; + $g_parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'f.fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'f.is_delete', '=', 0 ] ], 'f.fenxiao_id, f.fenxiao_name, f.status, f.parent,f.level_id,fl.level_num','f',$join) : []; //直推 + if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { if($type == 2){ @@ -199,9 +200,11 @@ class FenxiaoOrder extends BaseModel $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'one_rate' ] = round($one_money * $v[ 'num' ] / $v[ 'real_goods_money' ], 2); $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'one_commission' ] = $one_money * $v[ 'num' ]; } + $order_fenxiao_data['one_fenxiao_id'] = $parent_fenxiao_info['fenxiao_id']; $order_fenxiao_data['one_fenxiao_name'] = $parent_fenxiao_info['fenxiao_name']; } + //间退 if (!empty($g_parent_fenxiao_info) && $g_parent_fenxiao_info[ 'status' ] == 1) { diff --git a/app/pay/controller/Test.php b/app/pay/controller/Test.php index df9d6b7..db9465f 100644 --- a/app/pay/controller/Test.php +++ b/app/pay/controller/Test.php @@ -24,16 +24,16 @@ class Test{ // public function test(){ - $orderId = 104; + $orderId = 108; $order_info = model('order')->getInfo(['order_id' => $orderId]); - // $fenxiao_order = new OrderPay(); + $fenxiao_order = new OrderPay(); // $res = $fenxiao_order->handle($order_info); // $fenxiao_order = new WeightOrder(); // $res = $fenxiao_order->calculate(1); +// $fenxiao_order_model = new FenxiaoOrder(); + $res = $fenxiao_order->handle($order_info); // $fenxiao_order_model = new FenxiaoOrder(); - // $res = $fenxiao_order->handle($order_info); - $fenxiao_order_model = new FenxiaoOrder(); - $res = $fenxiao_order_model->calculate($order_info); + // $res = $fenxiao_order_model->calculate($order_info); // $res = $fenxiao_order_model->settlement($orderId); dump($res);die; $fenxiao_id = 195;