From 60bcb3aa1071fcc74ea577bfe2a227a510ac4772 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Fri, 24 Nov 2023 18:26:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E5=88=86=E9=94=80?= =?UTF-8?q?=E5=95=86=E6=96=87=E5=88=9B=E7=AD=89=E7=BA=A7=E6=8F=90=E6=88=90?= =?UTF-8?q?=E6=9C=AA=E6=88=90=E5=8A=9F=E5=88=B0=E8=B4=A6=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=9A=E6=96=87=E5=88=9B=E7=A9=BA=E9=97=B4=E6=96=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=20=E9=80=9A=E8=BF=87=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E8=8E=B7=E5=BE=97=E7=9A=84=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E7=AC=94=E8=B4=A1=E7=8C=AE=E5=80=BC=E4=B8=8D=E4=BC=9A=E6=88=90?= =?UTF-8?q?=E5=8A=9F=E5=88=B0=E8=B4=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Listener/OrderCreatedListener.php | 6 +- .../commission/src/admin/AgentController.php | 8 ++ .../src/services/CommissionOrderService.php | 75 +++---------------- .../src/models/CulturalSpace.php | 15 ++-- 4 files changed, 27 insertions(+), 77 deletions(-) diff --git a/plugins/commission/src/Listener/OrderCreatedListener.php b/plugins/commission/src/Listener/OrderCreatedListener.php index 715c13f7..063554bd 100644 --- a/plugins/commission/src/Listener/OrderCreatedListener.php +++ b/plugins/commission/src/Listener/OrderCreatedListener.php @@ -173,10 +173,10 @@ class OrderCreatedListener // 计算文创等级分红 $culturalAgent = $agent; $culturalAgent['agent']['agent_level'] = $culturalAgent['agent']['cultural_level']; - $culturalCommission = CommissionOrderService::getCommission($this->order, $culturalAgent, $this->set); - if ($culturalCommission['commission'] > 0) $this->addCommissionOrder($culturalCommission, $culturalAgent, $hierarchy, $level, 1); - else \Log::debug('订单分销没有佣金 - 文创等级'.$order_id,$agent['agent']); + $culturalCommission = CommissionOrderService::getCommission($this->order, $culturalAgent['agent'], $this->set,1); + if ($culturalCommission['commission'] > 0) $this->addCommissionOrder($culturalCommission, $culturalAgent, $hierarchy, $level, 1); + else \Log::debug('订单分销没有佣金 - 文创等级'.$order_id,$culturalAgent['agent']); // 额外分红 if (!$is_additiona_commission) { diff --git a/plugins/commission/src/admin/AgentController.php b/plugins/commission/src/admin/AgentController.php index 696bcd8c..451ab54d 100644 --- a/plugins/commission/src/admin/AgentController.php +++ b/plugins/commission/src/admin/AgentController.php @@ -9,9 +9,11 @@ use app\common\facades\Setting; use app\common\helpers\PaginationHelper; use app\common\helpers\Url; use app\common\models\Member; +use app\common\models\Order; use app\common\services\ExportService; use app\common\services\Session; use app\exports\FromArray; +use Yunshop\Commission\Listener\OrderCreatedListener; use Yunshop\Commission\models\AgentLevel; use Yunshop\Commission\models\Agents; use Yunshop\Commission\models\Log; @@ -369,4 +371,10 @@ class AgentController extends BaseController // }); // })->export('xls'); } + + public function test(){ + + + // (new OrderCreatedListener())->handler(Order::find(213)); + } } \ No newline at end of file diff --git a/plugins/commission/src/services/CommissionOrderService.php b/plugins/commission/src/services/CommissionOrderService.php index f703aca9..935da7b8 100644 --- a/plugins/commission/src/services/CommissionOrderService.php +++ b/plugins/commission/src/services/CommissionOrderService.php @@ -180,30 +180,8 @@ class CommissionOrderService if ($storeSetting) { $set = $storeSetting->value; if (empty($agent['agent_level'])) { - - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $set[$agent['hierarchy']], - 'content' => "没有分销等级,返回门店默认比例[{$set[$agent['hierarchy']]}]" - ]);*/ - return $set[$agent['hierarchy']]; } else { - - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'], - 'content' => "返回门店默认等级比例[{$set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']}]" - ]);*/ - return $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']; } } @@ -214,56 +192,16 @@ class CommissionOrderService if ($hotelSetting) { $set = $hotelSetting->value; if (empty($agent['agent_level'])) { - - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $set[$agent['hierarchy']], - 'content' => "没有分销等级,返回门店默认比例[{$set[$agent['hierarchy']]}]" - ]);*/ - return $set[$agent['hierarchy']]; } else { - - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate'], - 'content' => "返回门店默认等级比例[{$set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']}]" - ]);*/ - return $set['rule']['level_' . $agent['agent_level']['id']][$agent['hierarchy'] . '_rate']; } } } if (empty($agent['agent_level'])) { - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $set[$agent['hierarchy']], - 'content' => "没有分销等级,返回分销默认比例[{$set[$agent['hierarchy']]}]" - ]);*/ return $set[$agent['hierarchy']]; } else { - /*Operation::create([ - 'uniacid' => $orderModel->uniacid, - 'order_id' => $orderModel->id, - 'uid' => $agent['member_id'], - 'buy_uid' => $orderModel->uid, - 'level_id' => $agent['agent_level_id'], - 'ratio' => $agent['agent_level'][$agent['hierarchy']], - 'content' => "返回分销等级比例[{$agent['agent_level'][$agent['hierarchy']]}]" - ]);*/ return $agent['agent_level'][$agent['hierarchy']]; } } @@ -504,7 +442,7 @@ class CommissionOrderService * @return array * 获取佣金 计算金额 计算公式 佣金比例 分销订单商品等数据 */ - public static function getCommission($orderModel, $agent, $set){ + public static function getCommission($orderModel, $agent, $set, $levelType = 0){ $orderGoods = $orderModel->hasManyOrderGoods; $commissionAmount = 0; $formula = ''; @@ -536,6 +474,15 @@ class CommissionOrderService } } + //临时解决分销等级删除后,分销订单不能使用默认等级计算问题 + if ($agent['cultural_level_id']) { + $agentLevelModel = AgentLevel::uniacid()->where('id', $agent['cultural_level_id'])->first(); + if (!$agentLevelModel) { + $agent['cultural_level_id'] = 0; + } + } + + foreach ($orderGoods as $key => $og) { $payment_amount = $og['payment_amount']; @@ -586,7 +533,7 @@ class CommissionOrderService // $commissionAmount += $amount_dividend; //分佣计算金额 // $formula .= '+'.$countAmount['method'];//分佣计算方式 $rule = unserialize($commissionGoods['rule']); - $agentRule = $rule['level_' . $agent['agent_level_id']]; + $agentRule = $rule['level_' . ($levelType == 1 ? $agent['cultural_level_id'] : $agent['agent_level_id'])]; if ($agentRule[$agent['hierarchy'] . '_rate'] > 0) { $is_general = $countAmount['is_general']; $commissionRate = $agentRule[$agent['hierarchy'] . '_rate']; diff --git a/plugins/cultural-space/src/models/CulturalSpace.php b/plugins/cultural-space/src/models/CulturalSpace.php index cfff13de..cd6f27c4 100644 --- a/plugins/cultural-space/src/models/CulturalSpace.php +++ b/plugins/cultural-space/src/models/CulturalSpace.php @@ -121,6 +121,7 @@ class CulturalSpace extends BaseModel } } // 数据操作 + if (count($changeList) > 0) { $newMemberList = []; foreach($memberList as $key => $val){ @@ -135,9 +136,6 @@ class CulturalSpace extends BaseModel DB::commit(); } catch (\Exception $e) { - - - debug($e->getMessage()); \Log::debug('文创空间 - 购买商品奖励贡献值 - 错误抛出', $e->getMessage()); DB::rollBack(); } @@ -291,27 +289,24 @@ class CulturalSpace extends BaseModel ->toArray(); // 循环处理:不存在则添加,并且赋值默认值;存在则使用已经存在的信息 $memberList = []; - $insertData = []; foreach ($ids as $userId) { if ($list[$userId]) { // 存在 $memberList[$userId] = $list[$userId]; } else { // 不存在 - $insertData[] = [ + $id = self::insertGetId([ 'uniacid' => \YunShop::app()->uniacid, 'uid' => $userId, - ]; + ]); $memberList[$userId] = [ - 'uniacid' => \YunShop::app()->uniacid, 'uid' => $userId, - 'contribution' => 0 + 'contribution' => 0, + 'id' => $id ]; } } - if ($insertData) self::insert($insertData); - return $memberList; } /**