From d97311b349271b6557e247528a21cb7f9053e74b Mon Sep 17 00:00:00 2001 From: liqianjin <949671634@qq.com> Date: Mon, 31 Mar 2025 16:27:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=AA=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E8=87=AA=E8=B4=AD=E8=8E=B7=E5=8F=96=E6=95=B0=E6=8D=AE=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon/fenxiao/model/FenxiaoOrder.php | 19 +++++++++++-------- app/pay/controller/Test.php | 10 +++++----- 2 files changed, 16 insertions(+), 13 deletions(-) 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;