146 lines
7.1 KiB
PHP
146 lines
7.1 KiB
PHP
<?php
|
||
|
||
namespace app\common\repositories\marketing;
|
||
|
||
use app\common\dao\marketing\AgentBrokerageDao;
|
||
use app\common\model\marketing\AgentBrokerage;
|
||
use app\common\repositories\BaseRepository;
|
||
use think\facade\Db;
|
||
use think\facade\Log;
|
||
|
||
class AgentBrokerageRepository extends BaseRepository{
|
||
|
||
protected $dao;
|
||
|
||
public function __construct(AgentBrokerageDao $dao){
|
||
$this->dao = $dao;
|
||
}
|
||
/**
|
||
* Common: 获取信息列表
|
||
* Author: wu-hui
|
||
* Time: 2024/01/26 20:38
|
||
* @param array $params
|
||
* @param int $page
|
||
* @param int $limit
|
||
* @return array
|
||
* @throws \think\db\exception\DataNotFoundException
|
||
* @throws \think\db\exception\DbException
|
||
* @throws \think\db\exception\ModelNotFoundException
|
||
*/
|
||
public function getList(array $params,int $page,int $limit):array{
|
||
$query = $this->dao->searchList($params);
|
||
$count = $query->count();
|
||
$list = $query->page($page,$limit)->select();
|
||
|
||
return compact('count','list');
|
||
}
|
||
/**
|
||
* Common: 邀请代理人员奖励
|
||
* Author: wu-hui
|
||
* Time: 2024/02/02 14:20
|
||
* @param int $orderId
|
||
* @return mixed
|
||
*/
|
||
public function inviteAgentGive(int $orderId){
|
||
Log::info('支付成功 - 邀请代理人员奖励及免审核 - 开始处理: '.$orderId);
|
||
return Db::transaction(function() use ($orderId){
|
||
// 获取配置信息
|
||
$config = app()->make(AgentRepository::class)->getConfig();
|
||
// 获取申请信息
|
||
$applyInfo = app()->make(AgentApplyRepository::class)->getSearchModel(['order_id'=>$orderId])->findOrEmpty()->toArray();
|
||
// 获取全部上级
|
||
$upAllList = app()->make(AgentRepository::class)->getAllUp($applyInfo['pid']);
|
||
$upAllList = array_column($upAllList, null, 'agent_type');
|
||
// 获取佣金信息 类型:1=发起人,2=省公司,3=省合伙人(外勤),4=省合伙人(内勤),5=区县运营商,6=区县合伙人,7=餐厅,8=配送商
|
||
$initiator = $upAllList[1] ?? [];
|
||
$province = $upAllList[2] ?? [];
|
||
$fieldStaff = $upAllList[3] ?? [];
|
||
$areaStore = $upAllList[5] ?? [];
|
||
$area = $upAllList[6] ?? [];
|
||
$data = [
|
||
'source' => 1,
|
||
'user_order_id' => $orderId,
|
||
// 发起人
|
||
'initiator_uid' => $initiator ? $initiator['uid'] : 0,
|
||
'initiator_agent_id' => $initiator ? $initiator['id'] : 0,
|
||
// 省公司
|
||
'province_uid' => $province ? $province['uid'] : 0,
|
||
'province_agent_id' => $province ? $province['id'] : 0,
|
||
// 外勤
|
||
'field_staff_uid' => $fieldStaff ? $fieldStaff['uid'] : 0,
|
||
'field_staff_agent_id' => $fieldStaff ? $fieldStaff['id'] : 0,
|
||
// 运营商
|
||
'area_store_uid' => $areaStore ? $areaStore['uid'] : 0,
|
||
'area_store_agent_id' => $areaStore ? $areaStore['id'] : 0,
|
||
// 合伙人
|
||
'area_uid' => $area ? $area['uid'] : 0,
|
||
'area_agent_id' => $area ? $area['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 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;
|
||
}
|
||
AgentBrokerage::insert($data);
|
||
// 判断:是否免审核
|
||
if($isToExamine){
|
||
app()->make(AgentApplyRepository::class)->toExaminePass([
|
||
'id' => $applyInfo['id'],
|
||
'status' => 1,
|
||
]);
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
|
||
}
|