From d4cab66f3bb3eb5663ff8bdad0cbe490a2983f70 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Tue, 24 Oct 2023 11:10:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E8=B4=AD=E4=B9=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E8=B5=A0=E9=80=81=E6=9D=83=E9=87=8D=E5=80=BC?= =?UTF-8?q?=20-=20=E7=94=B1=E4=BA=8E=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E5=AF=BC=E8=87=B4=E8=AE=A1=E7=AE=97=E5=90=8E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E6=8C=81=E6=9C=89=E6=9D=83?= =?UTF-8?q?=E9=87=8D=E5=80=BC=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weight-value/src/admin/IndexController.php | 4 +++- plugins/weight-value/src/models/WeightValue.php | 15 +++++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/plugins/weight-value/src/admin/IndexController.php b/plugins/weight-value/src/admin/IndexController.php index a8b6f159..789ae675 100644 --- a/plugins/weight-value/src/admin/IndexController.php +++ b/plugins/weight-value/src/admin/IndexController.php @@ -130,9 +130,11 @@ class IndexController extends BaseController{ public function test(){ // (new WeightValue())->upgradeGiveInit(1,1); - // (new WeightValue())->giveInit(Order::find(128)); + // (new WeightValue())->giveInit(Order::find(134)); + + debug("调试中..."); } diff --git a/plugins/weight-value/src/models/WeightValue.php b/plugins/weight-value/src/models/WeightValue.php index f65c9bba..fca0987d 100644 --- a/plugins/weight-value/src/models/WeightValue.php +++ b/plugins/weight-value/src/models/WeightValue.php @@ -37,20 +37,24 @@ class WeightValue extends BaseModel{ $goodsList = $this->getGoodsList($model->id); // 获取当前用户及上级信息 $agents = $this->getParent($model->uid); + $agentAllList = []; + foreach(array_merge($agents['current_user'],$agents['parents'],$agents['agents']) as $agentSingleInfo){ + $agentAllList[(string)$agentSingleInfo['uid']] = $agentSingleInfo; + } // 循环处理每个商品 $changeRecord = [];// 变更记录 foreach($goodsList as $goodsInfo){ $useAgentList = []; $mergeAgentList = array_merge($agents['parents'],$agents['agents']);// 默认上级信息 // 判断:是否开启自购 - if((int)$goodsInfo['is_self_purchase'] == 1) $mergeAgentList = array_merge($agents['current_user'],$agents['parents'],$agents['agents']); + if((int)$goodsInfo['is_self_purchase'] == 1) $mergeAgentList = $agentAllList; foreach($mergeAgentList as $useAgentItem){ $useAgentList[$useAgentItem['uid']] = $useAgentItem; } // 循环上级信息 处理每一个用户、每一个商品的赠送情况 foreach($useAgentList as $agentKey => $agentInfo){ // 用户当前的权重值 - $currentAgentHasWeightValue = (float)$agents[$agentKey]['weight_value']['quantity'] ?? 0; + $currentAgentHasWeightValue = (float)$agentAllList[$agentInfo['uid']]['weight_value']['quantity'] ?? 0; // 符合条件 获取当前用户应得的权重值 $totalWeightValue = $this->getWeightValue($goodsInfo,$agentInfo);// 应得权重值 // 应得权重值大于0 记录改变信息并且修改持有权重值 @@ -70,20 +74,19 @@ class WeightValue extends BaseModel{ 'remark' => "订单{$model->order_sn}赠送",// 备注 'created_at' => time(),// 变更时间 ]; - $agents[$agentKey]['weight_value']['quantity'] = $changeAfter; + $agentAllList[$agentInfo['uid']]['weight_value']['quantity'] = $changeAfter; } } } // 修改用户权重值变更信息 | 处理权重值变更记录 if($changeRecord){ - $updateWeightValueList = array_column($agents,'weight_value'); + $updateWeightValueList = array_column($agentAllList,'weight_value'); self::updateInfo($updateWeightValueList); WeightValueLog::insert($changeRecord); } DB::commit(); }catch(\Exception $e){ - \Log::debug('------购买商品赠送权重值 - 错误抛出------',$e->getMessage()); DB::rollBack(); } @@ -305,7 +308,7 @@ class WeightValue extends BaseModel{ foreach($parents as $agentKey => $agentInfo){ // 判断:当前用户是否已经领取 已领取不可重复领取 if(in_array($agentInfo['uid'],$getRecord)) { - \Log::debug('------经销商升级赠送权重值 - 错误 - 当前用户是否已经领取 ------',$agentInfo['uid']); + \Log::debug('------经销商升级赠送权重值 - 错误 - 当前用户已经领取 ------',$agentInfo['uid']); continue; } // 用户当前持有的权重值