From 561f69091daa16db78721e167f97bd1a9df052bc Mon Sep 17 00:00:00 2001 From: liqianjin <949671634@qq.com> Date: Tue, 26 Nov 2024 16:20:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=88=86=E9=94=80=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E8=BF=9B=E8=B4=A7=E4=BD=A3=E9=87=91=E7=BB=93=E7=AE=97?= =?UTF-8?q?=E6=9C=AA=E6=88=90=E5=8A=9Fbug=20=E4=BF=AE=E6=94=B9=E4=B8=8B?= =?UTF-8?q?=E7=BA=A7=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addon/fenxiao/api/controller/Fenxiao.php | 15 ++++------ addon/fenxiao/api/controller/Order.php | 37 +++++++++++++++++------- addon/fenxiao/model/FenxiaoOrder.php | 33 ++++++++++++++------- app/pay/controller/Test.php | 6 ++-- 4 files changed, 59 insertions(+), 32 deletions(-) diff --git a/addon/fenxiao/api/controller/Fenxiao.php b/addon/fenxiao/api/controller/Fenxiao.php index 6ea9562..a263204 100644 --- a/addon/fenxiao/api/controller/Fenxiao.php +++ b/addon/fenxiao/api/controller/Fenxiao.php @@ -268,19 +268,16 @@ class Fenxiao extends BaseApi [ 'fo.member_id', '=', $sub_member_id ] ]; } + $order_model = new FenxiaoOrderModel(); $list = $order_model->getFenxiaoOrderPageList($condition, $page, $page_size, 'fo.fenxiao_order_id desc'); if (!empty($list[ 'data' ][ 'list' ])) { foreach ($list[ 'data' ][ 'list' ] as $k => $item) { - if ($item[ 'one_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) { - $list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'one_commission' ]; - $list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 1; - } elseif ($item[ 'two_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) { - $list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'two_commission' ]; - $list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 2; - } elseif ($item[ 'three_fenxiao_id' ] == $fenxiao_info[ 'fenxiao_id' ]) { - $list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $item[ 'three_commission' ]; - $list[ 'data' ][ 'list' ][ $k ][ 'commission_level' ] = 3; + $ids = json_decode($item['wholesale_fenxiao_id'],true); + $detail = json_decode($item['wholesale_fenxiao_detail'],true); + $key = array_search($fenxiao_id,$ids); + if($key !== false){ + $list[ 'data' ][ 'list' ][ $k ][ 'commission' ] = $detail[$key]['commission']; } $list[ 'data' ][ 'list' ][ $k ] = array_diff_key($list[ 'data' ][ 'list' ][ $k ], [ 'one_fenxiao_id' => '', 'one_rate' => '', 'one_commission' => '', 'one_fenxiao_name' => '', 'two_fenxiao_id' => '', 'two_rate' => '', 'two_commission' => '', 'two_fenxiao_name' => '', 'three_fenxiao_id' => '', 'three_rate' => '', 'three_commission' => '', 'three_fenxiao_name' => '' ]); } diff --git a/addon/fenxiao/api/controller/Order.php b/addon/fenxiao/api/controller/Order.php index fdffe49..29519f9 100644 --- a/addon/fenxiao/api/controller/Order.php +++ b/addon/fenxiao/api/controller/Order.php @@ -14,6 +14,7 @@ namespace addon\fenxiao\api\controller; use app\api\controller\BaseApi; use addon\fenxiao\model\FenxiaoOrder as FenxiaoOrderModel; use addon\fenxiao\model\Fenxiao; +use think\facade\Db; /** * 分销订单 @@ -78,24 +79,38 @@ class Order extends BaseApi $page = isset($this->params['page']) ? $this->params['page'] : 1; $page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS; $is_settlement = isset($this->params['is_settlement']) ? $this->params['is_settlement'] : 0;// 结算状态 0 全部 1 待结算 2 已结算 3 已退款 - - $condition = [ - ['fo.one_fenxiao_id|fo.two_fenxiao_id|fo.three_fenxiao_id', '=', $fenxiao_info['data']['fenxiao_id']] - ]; - $OR = [[ 'fo.wholesale_fenxiao_id', 'like', ['%'.$fenxiao_info['data']['fenxiao_id'].'%']],[ 'fo.founder_fenxiao_id', 'like', ['%'.$fenxiao_info['data']['fenxiao_id'].'%']]]; - // $OR = []; + $field = 'fo.fenxiao_order_id,fo.order_no,fo.site_id,fo.site_name,fo.sku_id,fo.sku_name,fo.sku_image,fo.price,fo.num,fo.real_goods_money,fo.member_name, + fo.member_mobile,fo.one_fenxiao_name,fo.is_settlement,fo.commission,fo.is_refund, + o.order_status_name,o.create_time,fo.one_fenxiao_id,fo.two_fenxiao_id,fo.three_fenxiao_id,fo.one_commission,fo.two_commission,fo.three_commission + ,fo.wholesale_fenxiao_id,fo.wholesale_fenxiao_detail,fo.founder_fenxiao_id,fo.founder_fenxiao_detail'; + $sql = Db::name('fenxiao_order')->alias('fo') + ->field($field) + ->join('order o','fo.order_id = o.order_id','inner') + ->whereOr([['fo.one_fenxiao_id|fo.two_fenxiao_id|fo.three_fenxiao_id','=',$fenxiao_info['data']['fenxiao_id']] , + ['fo.wholesale_fenxiao_id|fo.founder_fenxiao_id','like','%'.$fenxiao_info['data']['fenxiao_id'].'%']]); if (!empty($is_settlement)) { if ($is_settlement == 3) { - $condition[] = ['fo.is_refund', '=', 1]; + $sql->where('fo.is_refund','=',1); } if (in_array($is_settlement, [1, 2])) { - $condition[] = ['fo.is_settlement', '=', $is_settlement - 1]; - $condition[] = ['fo.is_refund', '=', 0]; + $sql->where('fo.is_settlement','=',$is_settlement - 1); + $sql->where('fo.is_refund','=',0); } } - $order_model = new FenxiaoOrderModel(); - $list = $order_model->getFenxiaoOrderPageList($condition, $page, $page_size, 'fo.fenxiao_order_id desc',$OR); + + $count = $sql->count(); + $result = $sql->limit($page_size)->page($page)->select()->toArray(); + $data = [ + 'count' => count($result), + 'list' => $result, + 'page_count' => ceil($count / $page_size), + ]; + $list = [ + 'code' => 0, + 'message' => '操作成功', + 'data' => $data + ]; if (!empty($list['data']['list'])) { foreach ($list['data']['list'] as $k => $item) { if ($item['one_fenxiao_id'] == $fenxiao_info['data']['fenxiao_id']) { diff --git a/addon/fenxiao/model/FenxiaoOrder.php b/addon/fenxiao/model/FenxiaoOrder.php index 0ed63dc..980cff2 100644 --- a/addon/fenxiao/model/FenxiaoOrder.php +++ b/addon/fenxiao/model/FenxiaoOrder.php @@ -344,18 +344,20 @@ class FenxiaoOrder extends BaseModel $site_id = 0; foreach ($fenxiao_orders as $fenxiao_order) { $site_id = $fenxiao_order[ 'site_id' ]; - $commission += $fenxiao_order[ 'one_commission' ]; - $fenxiao_account->addAccount($fenxiao_order[ 'one_fenxiao_id' ], $fenxiao_order[ 'one_fenxiao_name' ], 'order', $fenxiao_order[ 'one_commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id); + if($fenxiao_order[ 'one_commission' ] > 0){ + $commission += $fenxiao_order[ 'one_commission' ]; + $fenxiao_account->addAccount($fenxiao_order[ 'one_fenxiao_id' ], $fenxiao_order[ 'one_fenxiao_name' ], 'order', $fenxiao_order[ 'one_commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id); + // 分销佣金发放通知 + ( new Message() )->sendMessage([ + 'keywords' => 'COMMISSION_GRANT', + 'order_id' => $fenxiao_order[ 'fenxiao_order_id' ], + 'site_id' => $fenxiao_order[ 'site_id' ], + 'level' => 'one', + ]); - // 分销佣金发放通知 - ( new Message() )->sendMessage([ - 'keywords' => 'COMMISSION_GRANT', - 'order_id' => $fenxiao_order[ 'fenxiao_order_id' ], - 'site_id' => $fenxiao_order[ 'site_id' ], - 'level' => 'one', - ]); + model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'one_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'one_commission' ]); + } - model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'one_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'one_commission' ]); if ($fenxiao_order[ 'two_commission' ] > 0) { $commission += $fenxiao_order[ 'two_commission' ]; @@ -383,6 +385,17 @@ class FenxiaoOrder extends BaseModel ]); model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $fenxiao_order[ 'three_fenxiao_id' ] ] ], 'total_commission', $fenxiao_order[ 'three_commission' ]); } + + $ids = json_decode($fenxiao_order['wholesale_fenxiao_id'],true); + $detail = json_decode($fenxiao_order['wholesale_fenxiao_detail'],true); + if($ids && $detail){ + foreach($detail as $k => $v){ + $commission += $v[ 'commission' ]; + $fenxiao_account->addAccount($ids[$k], $v[ 'name' ], 'order', $v[ 'commission' ], $fenxiao_order[ 'fenxiao_order_id' ],$site_id); + model('fenxiao')->setInc([ [ 'fenxiao_id', '=', $ids[$k] ] ], 'total_commission', $v[ 'commission' ]); + } + } + } $stat_model = new Stat(); $stat_model->switchStat([ 'type' => 'fenxiao_order', 'data' => [ 'order_id' => $order_id, 'site_id' => $site_id ] ]); diff --git a/app/pay/controller/Test.php b/app/pay/controller/Test.php index 83cd222..a98f36e 100644 --- a/app/pay/controller/Test.php +++ b/app/pay/controller/Test.php @@ -26,13 +26,15 @@ class Test{ public function test(){ $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_model = new FenxiaoOrder(); - $res = $fenxiao_order->handle($order_info); + // $res = $fenxiao_order->handle($order_info); + $fenxiao_order_model = new FenxiaoOrder(); // $res = $fenxiao_order_model->calculateOrder($order_info['order_id']); + $res = $fenxiao_order_model->settlement($orderId); dump($res);die; $fenxiao_id = 195; $fenxiao = new Fenxiao();