93 行
3.0 KiB
PHP
93 行
3.0 KiB
PHP
<?php
|
|
|
|
namespace addons\shopro\notifications;
|
|
|
|
use think\queue\ShouldQueue;
|
|
use addons\shopro\model\User;
|
|
|
|
/**
|
|
* 区域代理审核结果通知
|
|
*/
|
|
class RegionalAgent extends Notification implements ShouldQueue
|
|
{
|
|
public $delay = 0;
|
|
public $event = '';
|
|
public $data = [];
|
|
|
|
public static $returnField = [
|
|
'regional_agent_apply' => [
|
|
'name' => '区域公司审核结果',
|
|
'fields' => [
|
|
['name' => '申请用户', 'field' => 'nickname'],
|
|
['name' => '公司区域', 'field' => 'area_name'],
|
|
['name' => '区域层级', 'field' => 'area_level_text'],
|
|
['name' => '审核状态', 'field' => 'status'],
|
|
['name' => '申请时间', 'field' => 'create_date'],
|
|
['name' => '处理时间', 'field' => 'update_date'],
|
|
]
|
|
]
|
|
];
|
|
|
|
public function __construct($data = [])
|
|
{
|
|
$this->data = $data;
|
|
$this->event = $data['event'] ?? 'regional_agent_apply';
|
|
$this->initConfig();
|
|
}
|
|
|
|
public function toDatabase($notifiable)
|
|
{
|
|
$params = ['agent' => $this->data['agent'] ?? []];
|
|
$this->paramsData($params, $notifiable);
|
|
return $params;
|
|
}
|
|
|
|
public function toWxMiniProgram($notifiable)
|
|
{
|
|
$params = [];
|
|
if ($oauth = $this->getWxOauth($notifiable, 'wxMiniProgram')) {
|
|
$path = $this->getMiniDomainUrl('/pages/app/regional-agent/index');
|
|
$params['openid'] = $oauth->openid;
|
|
$params['page'] = $path;
|
|
$this->paramsData($params, $notifiable);
|
|
}
|
|
return $this->formatParams($params, 'wxMiniProgram');
|
|
}
|
|
|
|
private function paramsData(&$params, $notifiable)
|
|
{
|
|
$params['data'] = [];
|
|
if ($this->event === 'regional_agent_apply') {
|
|
$params['data'] = $this->applyData($notifiable);
|
|
}
|
|
}
|
|
|
|
private function applyData($notifiable)
|
|
{
|
|
$agent = $this->data['agent'] ?? [];
|
|
$levelName = '';
|
|
if (!empty($agent['level'])) {
|
|
$levelRow = \addons\shopro\model\regional_agent\Level::where('level', $agent['level'])->find();
|
|
$levelName = $levelRow ? $levelRow['name'] : '';
|
|
}
|
|
if (!$levelName) {
|
|
$levelMap = [1 => '省级', 2 => '市级', 3 => '区县'];
|
|
$levelName = $levelMap[$agent['area_level'] ?? 0] ?? '';
|
|
}
|
|
$statusMap = [
|
|
'normal' => '审核通过',
|
|
'forbidden' => '已禁用',
|
|
'reject' => '审核驳回',
|
|
];
|
|
return [
|
|
'template' => self::$returnField[$this->event]['name'],
|
|
'nickname' => $notifiable['nickname'] ?? '',
|
|
'area_name' => $agent['area_name'] ?? '',
|
|
'area_level_text' => $levelName,
|
|
'status' => $statusMap[$this->data['action'] ?? ''] ?? ($agent['status'] ?? ''),
|
|
'create_date' => !empty($agent['createtime']) ? date('Y-m-d H:i:s', $agent['createtime']) : '',
|
|
'update_date' => date('Y-m-d H:i:s'),
|
|
];
|
|
}
|
|
}
|