diff --git a/addon/fenxiao/model/FenxiaoOrder.php b/addon/fenxiao/model/FenxiaoOrder.php index 875b533..c593b8c 100644 --- a/addon/fenxiao/model/FenxiaoOrder.php +++ b/addon/fenxiao/model/FenxiaoOrder.php @@ -61,7 +61,6 @@ class FenxiaoOrder extends BaseModel $order_goods = model('order_goods')->getList([ [ 'order_id', '=', $order[ 'order_id' ] ], [ 'is_fenxiao', '=', 1 ] ], 'order_goods_id, goods_id , site_id, sku_id, sku_name, sku_image, sku_no, is_virtual, price, cost_price, num, goods_money, cost_money, delivery_no, delivery_status, real_goods_money'); if (empty($order_goods)) return $this->success(); model('fenxiao_order')->delete([ [ 'order_id', '=', $order[ 'order_id' ] ] ]); - foreach($order_goods as $k => $v){ $order_fenxiao_data = [ 'commission' => 0, @@ -89,11 +88,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']){ + + 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'], 'order_no' => $order['order_no'], @@ -134,6 +136,7 @@ class FenxiaoOrder extends BaseModel 'weight_money' => $order_fenxiao_data['weight_money'], 'create_time' => time() ]; + model("fenxiao_order")->add($data); } } @@ -157,6 +160,7 @@ class FenxiaoOrder extends BaseModel $one_money = $two_money = 0; $parent_fenxiao_info = $fenxiao_info['parent'] > 0 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent,level_id') : []; $g_parent_fenxiao_info = $fenxiao_info['grand_parent'] > 0 ? model('fenxiao')->getInfo([ [ 'fenxiao_id', '=', $fenxiao_info[ 'grand_parent' ] ], [ 'is_delete', '=', 0 ] ], 'fenxiao_id, fenxiao_name, status, parent,level_id') : []; + if (!empty($parent_fenxiao_info) && $parent_fenxiao_info[ 'status' ] == 1) { if($type == 2){ $fenxiao_level = model('fenxiao_goods_sku')->getInfo([ [ 'goods_id', '=', $v[ 'goods_id' ] ], [ 'sku_id', '=', $v[ 'sku_id' ] ], [ 'level_id', '=', $parent_fenxiao_info[ 'level_id' ] ] ]); @@ -199,13 +203,14 @@ class FenxiaoOrder extends BaseModel //不是报单商品才有自购 if($config['self_purchase_rebate'] && $fenxiao_info['level_num'] > 0 && $goods_kind === 0){ $rate = $this->getLevelRate(1,$v['site_id'],$v['goods_id'],$v['sku_id'],$fenxiao_info['level_id'],$config,$fenxiao_type); + $order_fenxiao_data['wholesale_fenxiao_id'][] = $fenxiao_info['fenxiao_id']; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'wholesale_rate' ] = $rate; - $commission = $rate * $v[ 'real_goods_money' ] / 100; + + $commission = $rate * $v[ 'goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'wholesale_commission' ] = $commission; $order_fenxiao_data['wholesale_fenxiao_detail'][] = ['name' => $fenxiao_info['fenxiao_name'], 'commission' => $commission]; } - if($fenxiao_info['chain']){ $data = explode(',', $fenxiao_info['chain']); $chain = array_filter($data, function ($value) { @@ -252,13 +257,13 @@ class FenxiaoOrder extends BaseModel if($user['rank'] == 1 && ($one_fenxiao_id != $user['fenxiao_id'] && $two_fenxiao_id != $user['fenxiao_id'])){ $order_fenxiao_data['wholesale_fenxiao_id'][] = $user['fenxiao_id']; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'wholesale_rate' ] += $rate; - $commission = $rate * $v[ 'real_goods_money' ] / 100; + $commission = $rate * $v[ 'goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'wholesale_commission' ] += $commission; $order_fenxiao_data['wholesale_fenxiao_detail'][] = ['name' => $user['fenxiao_name'], 'commission' => $commission]; }else if($user['rank'] > 1){ $order_fenxiao_data['wholesale_fenxiao_id'][] = $user['fenxiao_id']; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'wholesale_rate' ] += $rate; - $commission = $rate * $v[ 'real_goods_money' ] / 100; + $commission = $rate * $v[ 'goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'wholesale_commission' ] += $commission; $order_fenxiao_data['wholesale_fenxiao_detail'][] = ['name' => $user['fenxiao_name'], 'commission' => $commission]; } @@ -267,7 +272,7 @@ class FenxiaoOrder extends BaseModel if(isset($user) && !empty($user) && $max_level_num == $user['level_num'] && $config['founder_rate'] && $goods_kind === 0){ $order_fenxiao_data['founder_fenxiao_id'][] = $user['fenxiao_id']; $order_fenxiao_data['commission_rate'] += $order_fenxiao_data[ 'founder_rate' ] += $config['founder_rate']; - $commission = $config['founder_rate'] * $v[ 'real_goods_money' ] / 100; + $commission = $config['founder_rate'] * $v[ 'goods_money' ] / 100; $order_fenxiao_data['commission'] += $order_fenxiao_data[ 'founder_commission' ] += $commission; $order_fenxiao_data['founder_fenxiao_detail'][] = ['name' => $user['fenxiao_name'], 'commission' => $commission]; } @@ -275,7 +280,7 @@ class FenxiaoOrder extends BaseModel if(!$order_fenxiao_data['is_weight'] && $goods_kind === 0){ $is_weight = $user['is_weight']; if($is_weight){ - $weight_money = $config['weight_rate'] * $v[ 'real_goods_money' ] / 100; + $weight_money = $config['weight_rate'] * $v[ 'goods_money' ] / 100; $order_fenxiao_data['weight_money'] = $weight_money; } $order_fenxiao_data['is_weight'] = $is_weight; diff --git a/app/pay/controller/Test.php b/app/pay/controller/Test.php index eafdd02..83cd222 100644 --- a/app/pay/controller/Test.php +++ b/app/pay/controller/Test.php @@ -24,14 +24,14 @@ class Test{ // public function test(){ - $orderId = 63; + $orderId = 92; $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 = new WeightOrder(); +// $res = $fenxiao_order->calculate(1); // $fenxiao_order_model = new FenxiaoOrder(); - // $res = $fenxiao_order_model->calculate($order_info); + $res = $fenxiao_order->handle($order_info); // $res = $fenxiao_order_model->calculateOrder($order_info['order_id']); dump($res);die; $fenxiao_id = 195;