From f5381c187819b654195fa2960e845f49a96a3ea1 Mon Sep 17 00:00:00 2001 From: wuhui_zzw <1760308791@qq.com> Date: Tue, 9 Jul 2024 10:37:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E8=BF=90=E8=90=A5?= =?UTF-8?q?=E4=B8=AD=E5=BF=83=20-=20=E5=9F=BA=E6=9C=AC=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9B=E5=B0=86=E5=85=A5=E9=A9=BB=E9=87=91?= =?UTF-8?q?=E9=A2=9D=E5=8C=BA=E5=88=86=E4=B8=BA=E6=80=BB=E9=A2=9D=E5=92=8C?= =?UTF-8?q?=E5=AE=9A=E9=87=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../marketing/AgentApplyRepository.php | 17 +- .../marketing/AgentBrokerageRepository.php | 75 +----- .../marketing/AgentRepository.php | 219 ++++++++++++------ app/controller/admin/marketing/Agent.php | 64 +---- 4 files changed, 173 insertions(+), 202 deletions(-) diff --git a/app/common/repositories/marketing/AgentApplyRepository.php b/app/common/repositories/marketing/AgentApplyRepository.php index 6c2406c..c7c6872 100644 --- a/app/common/repositories/marketing/AgentApplyRepository.php +++ b/app/common/repositories/marketing/AgentApplyRepository.php @@ -96,6 +96,14 @@ class AgentApplyRepository extends BaseRepository{ // 添加 是否需要支付 $payMoney = 0;// 默认 无需支付 $config = app()->make(AgentRepository::class)->getConfig(); + $agentBaseSet = $config['agent_base_set'] ?? []; + $currentSet = $agentBaseSet[$applyInfo['agent_type']] ?? []; + + + + debug($currentSet); + + switch ((int)$applyInfo['agent_type']) { case 2: $payMoney = $config['province_money'] ?? 0;break; case 3: $payMoney = $config['field_staff_money'] ?? 0;break; @@ -148,9 +156,10 @@ class AgentApplyRepository extends BaseRepository{ public function toExaminePass($params){ // 判断:上级邀请人员是否已经达到限制 类型:1=总部发起人,2=省公司发起人,3=省合伙人(外勤),4=省合伙人(内勤),5=区县运营商,6=区县合伙人,7=餐厅,8=配送商,9=总部外勤,10=总部内勤 $config = app()->make(AgentRepository::class)->getConfig(); + $agentBaseSet = $config['agent_base_set'] ?? []; $inviteLimit = $config['invite_limit'] ?? []; - $applyInfo = $this->getSearchModel(['id'=>$params['id']])->findOrEmpty()->toArray(); + $applyInfo = $this->getSearchModel(['id'=>$params['id']])->findOrEmpty()->toArray(); $giveTitleQuota = 0;// 赠送冠名品牌额度 $giveOtherQuota = 0;// 赠送其他品牌额度 switch($applyInfo['agent_type']){ @@ -203,8 +212,10 @@ class AgentApplyRepository extends BaseRepository{ throw new ValidateException('邀请人招募数量超出限制!仅允许招募 '.($inviteLimit['invite_6_8'] ?? 0).' 家配送商'); } // 赠送品牌额度 - $giveTitleQuota = $config['delivery_give_title_quota'] ?? 0; - $giveOtherQuota = $config['delivery_give_other_quota'] ?? 0; + $currentInfo = $agentBaseSet[8] ?? []; + + $giveTitleQuota = $currentInfo['title_quota'] ?? 0; + $giveOtherQuota = $currentInfo['other_quota'] ?? 0; break; case 9: // 判断:当前上级招募 [总部外勤] 数量是否超出限制 diff --git a/app/common/repositories/marketing/AgentBrokerageRepository.php b/app/common/repositories/marketing/AgentBrokerageRepository.php index b009782..6b79773 100644 --- a/app/common/repositories/marketing/AgentBrokerageRepository.php +++ b/app/common/repositories/marketing/AgentBrokerageRepository.php @@ -107,6 +107,7 @@ class AgentBrokerageRepository extends BaseRepository{ return Db::transaction(function() use ($orderId){ // 获取配置信息 $config = app()->make(AgentRepository::class)->getConfig(); + $agentBaseSet = $config['agent_base_set'] ?? []; // 获取申请信息 $applyInfo = app()->make(AgentApplyRepository::class)->getSearchModel(['order_id'=>$orderId])->findOrEmpty()->toArray(); if(!$applyInfo) throw new ValidateException('信息不存在!'); @@ -142,69 +143,17 @@ class AgentBrokerageRepository extends BaseRepository{ 'field_personnel_uid' => $fieldPersonnel ? $fieldPersonnel['uid'] : 0, 'field_personnel_agent_id' => $fieldPersonnel ? $fieldPersonnel['id'] : 0, ]; - $isToExamine = 0;// 是否免审核 0=需要审核,1=无需审核 - switch((int)$applyInfo['agent_type']){ - case 2: - $isToExamine = $config['province_process'] ?? 0; - $data['platform_brokerage'] = $config['province_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['province_money_initiator'] ?? 0; - break; - case 9: - $isToExamine = $config['field_personnel_process'] ?? 0; - $data['platform_brokerage'] = $config['field_personnel_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['field_personnel_money_initiator'] ?? 0; - break; - case 10: - $isToExamine = $config['external_personnel_process'] ?? 0; - $data['platform_brokerage'] = $config['external_personnel_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['external_personnel_money_initiator'] ?? 0; - break; - case 3: - $isToExamine = $config['field_staff_process'] ?? 0; - $data['platform_brokerage'] = $config['field_staff_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['field_staff_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['field_staff_money_province'] ?? 0; - break; - case 4: - $isToExamine = $config['internal_staff_process'] ?? 0; - $data['platform_brokerage'] = $config['internal_staff_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['internal_staff_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['internal_staff_money_province'] ?? 0; - break; - case 5: - $isToExamine = $config['operator_process'] ?? 0; - $data['platform_brokerage'] = $config['operator_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['operator_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['operator_money_province'] ?? 0; - $data['field_staff_brokerage'] = $config['operator_money_field_staff'] ?? 0; - break; - case 6: - $isToExamine = $config['partner_process'] ?? 0; - $data['platform_brokerage'] = $config['partner_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['partner_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['partner_money_province'] ?? 0; - $data['field_staff_brokerage'] = $config['partner_money_field_staff'] ?? 0; - $data['area_store_brokerage'] = $config['partner_money_operator'] ?? 0; - break; - case 7: - $isToExamine = $config['mer_process'] ?? 0; - $data['platform_brokerage'] = $config['mer_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['mer_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['mer_money_province'] ?? 0; - $data['field_staff_brokerage'] = $config['mer_money_field_staff'] ?? 0; - $data['area_store_brokerage'] = $config['mer_money_operator'] ?? 0; - $data['area_brokerage'] = $config['mer_money_partner'] ?? 0; - break; - case 8: - $isToExamine = $config['delivery_process'] ?? 0; - $data['platform_brokerage'] = $config['delivery_money_platform'] ?? 0; - $data['initiator_brokerage'] = $config['delivery_money_initiator'] ?? 0; - $data['province_brokerage'] = $config['delivery_money_province'] ?? 0; - $data['field_staff_brokerage'] = $config['delivery_money_field_staff'] ?? 0; - $data['area_store_brokerage'] = $config['delivery_money_operator'] ?? 0; - $data['area_brokerage'] = $config['delivery_money_partner'] ?? 0; - break; - } + // 佣金处理 + $currentSet = $agentBaseSet[$applyInfo['agent_type']] ?? []; + $isToExamine = (int)($currentSet['is_examine'] ?? 0);// 是否免审核 0=需要审核,1=无需审核 + $commissionList = (array)($currentSet['commission_list'] ?? []); + $data['platform_brokerage'] = $commissionList['platform'] ?? 0;// 平台奖励 + $data['initiator_brokerage'] = $commissionList['initiator'] ?? 0;//总部发起人奖励 + $data['field_personnel_brokerage'] = $commissionList['field_personnel'] ?? 0;// 总部外勤奖励 + $data['province_brokerage'] = $commissionList['province'] ?? 0;//省公司发起人奖励 + $data['field_staff_brokerage'] = $commissionList['field_staff'] ?? 0;//省公司外勤奖励 + $data['area_store_brokerage'] = $commissionList['operator'] ?? 0;//区县运营商奖励 + $data['area_brokerage'] = $commissionList['partner'] ?? 0;// 区县合伙人奖励 AgentBrokerage::insert($data); // 判断:是否免审核 if($isToExamine){ diff --git a/app/common/repositories/marketing/AgentRepository.php b/app/common/repositories/marketing/AgentRepository.php index c58f0fb..a6fc8ab 100644 --- a/app/common/repositories/marketing/AgentRepository.php +++ b/app/common/repositories/marketing/AgentRepository.php @@ -345,84 +345,155 @@ class AgentRepository extends BaseRepository{ */ public function getConfig(){ $config = systemConfig([ - 'delivery_money', - 'delivery_money_field_staff', - 'delivery_money_initiator', - 'delivery_money_operator', - 'delivery_money_partner', - 'delivery_money_platform', - 'delivery_money_province', - 'delivery_process', - 'field_staff_money', - 'field_staff_money_initiator', - 'field_staff_money_platform', - 'field_staff_money_province', - 'field_staff_process', - 'internal_staff_money', - 'internal_staff_money_initiator', - 'internal_staff_money_platform', - 'internal_staff_money_province', - 'internal_staff_process', - 'mer_money', - 'mer_money_field_staff', - 'mer_money_initiator', - 'mer_money_operator', - 'mer_money_partner', - 'mer_money_platform', - 'mer_money_province', - 'mer_process', - 'operator_money', - 'operator_money_field_staff', - 'operator_money_initiator', - 'operator_money_platform', - 'operator_money_province', - 'operator_process', - 'partner_money', - 'partner_money_field_staff', - 'partner_money_initiator', - 'partner_money_operator', - 'partner_money_platform', - 'partner_money_province', - 'partner_process', - 'province_money', - 'province_money_initiator', - 'province_money_platform', - 'province_process', - // 总部外勤相关 - 'province_money_field_personnel', - 'field_staff_money_field_personnel', - 'internal_staff_money_field_personnel', - 'operator_money_field_personnel', - 'partner_money_field_personnel', - 'mer_money_field_personnel', - 'delivery_money_field_personnel', - 'field_personnel_money', - 'field_personnel_process', - 'field_personnel_money_platform', - 'field_personnel_money_initiator', - 'external_personnel_money', - 'external_personnel_process', - 'external_personnel_money_platform', - 'external_personnel_money_initiator', - // 配送商赠送品牌额度 - 'delivery_give_title_quota', - 'delivery_give_other_quota', // 邀请限制 'invite_limit', // 配送商缴费设置 - 'payment_list' + 'payment_list', + // 配送商缴费设置 + 'agent_base_set' ]); - $config['delivery_process'] = (int)$config['delivery_process']; - $config['field_staff_process'] = (int)$config['field_staff_process']; - $config['internal_staff_process'] = (int)$config['internal_staff_process']; - $config['mer_process'] = (int)$config['mer_process']; - $config['operator_process'] = (int)$config['operator_process']; - $config['partner_process'] = (int)$config['partner_process']; - $config['province_process'] = (int)$config['province_process']; - $config['field_personnel_process'] = (int)$config['field_personnel_process']; - $config['external_personnel_process'] = (int)$config['external_personnel_process']; - $config['invite_limit'] = $config['invite_limit'] ? (array)$config['invite_limit'] : []; - $config['payment_list'] = $config['payment_list'] ? (array)$config['payment_list'] : []; + // 邀请限制 + $config['invite_limit'] = !empty($config['invite_limit']) ? (array)$config['invite_limit'] : []; + // 配送商缴费设置 + $config['payment_list'] = !empty($config['payment_list']) ? (array)$config['payment_list'] : []; + // 每个角色基本配置信息 + $config['agent_base_set'] = !empty($config['agent_base_set']) ? (array)$config['agent_base_set'] : []; + $agentList = [ + // '1' => ['title' => '总部发起人','is_examine' => 0,'total_money' => '','deposit_list' => [],'commission_list' => []], + '2' => [ + 'title' => '省公司发起人', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + ] + ], + '3' => [ + 'title' => '省公司外勤', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + ] + ], + '4' => [ + 'title' => '省公司内勤', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + ] + ], + '5' => [ + 'title' => '区县运营商', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + 'field_staff' => '',// 省公司外勤奖励 + ] + ], + '6' => [ + 'title' => '区县合伙人', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + 'field_staff' => '',// 省公司外勤奖励 + 'operator' => '',// 运营商奖励 + ] + ], + '7' => [ + 'title' => '餐厅', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + 'field_staff' => '',// 省公司外勤奖励 + 'operator' => '',// 区县运营商奖励 + 'partner' => '',// 区县合伙人奖励 + ] + ], + '8' => [ + 'title' => '配送商', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + 'field_staff' => '',// 省公司外勤奖励 + 'operator' => '',// 区县运营商奖励 + 'partner' => '',// 区县合伙人奖励 + ], + 'title_quota' => '', + 'other_quota' => '' + ], + '9' => [ + 'title' => '总部外勤', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + ] + ], + '10' => [ + 'title' => '总部内勤', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + ] + ], + '11' => [ + 'title' => '烟酒店代销商', + 'is_examine' => 0, + 'total_money' => '', + 'deposit_list' => [], + 'commission_list' => [ + 'platform' => '',// 平台奖励 + 'initiator' => '',// 总部发起人奖励 + 'field_personnel' => '',// 总部外勤奖励 + 'province' => '',// 省公司发起人奖励 + 'field_staff' => '',// 省公司外勤奖励 + 'operator' => '',// 区县运营商奖励 + 'partner' => '',// 区县合伙人奖励 + ] + ], + ]; + foreach($agentList as $agentKey => $agentSet){ + $currentInfo = $config['agent_base_set'][$agentKey] ?? []; + $config['agent_base_set'][$agentKey] = array_merge((array)$agentSet, (array)$currentInfo); + } return $config; } diff --git a/app/controller/admin/marketing/Agent.php b/app/controller/admin/marketing/Agent.php index 114ba83..2afc683 100644 --- a/app/controller/admin/marketing/Agent.php +++ b/app/controller/admin/marketing/Agent.php @@ -366,72 +366,12 @@ class Agent extends BaseController{ */ public function setConfig(){ $config = $this->request->params([ - ['delivery_money',0], - ['delivery_money_field_staff',0], - ['delivery_money_initiator',0], - ['delivery_money_operator',0], - ['delivery_money_partner',0], - ['delivery_money_platform',0], - ['delivery_money_province',0], - ['delivery_process',0], - ['field_staff_money',0], - ['field_staff_money_initiator',0], - ['field_staff_money_platform',0], - ['field_staff_money_province',0], - ['field_staff_process',0], - ['internal_staff_money',0], - ['internal_staff_money_initiator',0], - ['internal_staff_money_platform',0], - ['internal_staff_money_province',0], - ['internal_staff_process',0], - ['mer_money',0], - ['mer_money_field_staff',0], - ['mer_money_initiator',0], - ['mer_money_operator',0], - ['mer_money_partner',0], - ['mer_money_platform',0], - ['mer_money_province',0], - ['mer_process',0], - ['operator_money',0], - ['operator_money_field_staff',0], - ['operator_money_initiator',0], - ['operator_money_platform',0], - ['operator_money_province',0], - ['operator_process',0], - ['partner_money',0], - ['partner_money_field_staff',0], - ['partner_money_initiator',0], - ['partner_money_operator',0], - ['partner_money_platform',0], - ['partner_money_province',0], - ['partner_process',0], - ['province_money',0], - ['province_money_initiator',0], - ['province_money_platform',0], - ['province_process',0], - // 总部外勤佣金 - ['province_money_field_personnel',0], - ['field_staff_money_field_personnel',0], - ['internal_staff_money_field_personnel',0], - ['operator_money_field_personnel',0], - ['partner_money_field_personnel',0], - ['mer_money_field_personnel',0], - ['delivery_money_field_personnel',0], - ['field_personnel_money',0], - ['field_personnel_process',0], - ['field_personnel_money_platform',0], - ['field_personnel_money_initiator',0], - ['external_personnel_money',0], - ['external_personnel_process',0], - ['external_personnel_money_platform',0], - ['external_personnel_money_initiator',0], - // 配送商赠送品牌额度 - ['delivery_give_title_quota',0], - ['delivery_give_other_quota',0], // 邀请限制 ['invite_limit',[]], // 配送商缴费设置 ['payment_list',[]], + // 每个角色基本配置信息 + ['agent_base_set',[]], ]); // 保存信息 $cid = app()->make(ConfigClassifyRepository::class)->getConfigClassifyKeyById('agent_config', '代理中心配置');