110 lines
2.7 KiB
PHP
110 lines
2.7 KiB
PHP
<?php
|
|
namespace app\adminapi\lists\custom;
|
|
|
|
|
|
use app\adminapi\lists\BaseAdminDataLists;
|
|
use app\common\lists\ListsExcelInterface;
|
|
use app\common\model\custom\Custom;
|
|
use app\common\model\custom\CustomContacts;
|
|
use app\common\lists\ListsSearchInterface;
|
|
use app\common\model\dept\Dept;
|
|
use app\common\model\dept\Orgs;
|
|
|
|
|
|
/**
|
|
* CustomContacts列表
|
|
* Class CustomContactsLists
|
|
* @package app\adminapi\listscustom
|
|
*/
|
|
class CustomContactsLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
|
|
{
|
|
|
|
|
|
/**
|
|
* @notes 设置搜索条件
|
|
* @return \string[][]
|
|
* @author likeadmin
|
|
* @date 2023/11/11 22:56
|
|
*/
|
|
public function setSearch(): array
|
|
{
|
|
return [
|
|
'%like%' => ['name', 'position', 'phone', 'telephone', 'email'],
|
|
'=' => ['custom_id']
|
|
];
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 获取列表
|
|
* @return array
|
|
* @throws \think\db\exception\DataNotFoundException
|
|
* @throws \think\db\exception\DbException
|
|
* @throws \think\db\exception\ModelNotFoundException
|
|
* @author likeadmin
|
|
* @date 2023/11/11 22:56
|
|
*/
|
|
public function lists(): array
|
|
{
|
|
return CustomContacts::field('id,custom_id,name,position,phone,telephone,email,notes')->where($this->searchWhere)
|
|
->limit($this->limitOffset, $this->limitLength)
|
|
->order(['id' => 'desc'])
|
|
->select()->each(function($item){
|
|
$custom = Custom::field('org_id,dept_id,name')->where('id',$item['custom_id'])->findOrEmpty();
|
|
$org = Orgs::field('name')->where('id',$custom['org_id'])->findOrEmpty();
|
|
$dept = Dept::field('name')->where('id',$custom['dept_id'])->findOrEmpty();
|
|
$item['org_name'] = $org['name'];
|
|
$item['dept_name'] = $dept['name'];
|
|
$item['custom_name'] = $custom['name'];
|
|
unset($item['custom_id']);
|
|
return $item;
|
|
})
|
|
->toArray();
|
|
}
|
|
|
|
|
|
/**
|
|
* @notes 获取数量
|
|
* @return int
|
|
* @author likeadmin
|
|
* @date 2023/11/11 22:56
|
|
*/
|
|
public function count(): int
|
|
{
|
|
return CustomContacts::where($this->searchWhere)->count();
|
|
}
|
|
|
|
/**
|
|
* @notes 导出文件名
|
|
* @return string
|
|
* @author 段誉
|
|
* @date 2022/11/24 16:17
|
|
*/
|
|
public function setFileName(): string
|
|
{
|
|
return '客户联系人列表';
|
|
}
|
|
|
|
/**
|
|
* @notes 导出字段
|
|
* @return string[]
|
|
* @author 段誉
|
|
* @date 2022/11/24 16:17
|
|
*/
|
|
public function setExcelFields(): array
|
|
{
|
|
return [
|
|
'id' => 'id',
|
|
'org_name' => '组织',
|
|
'dept_name' => '部门',
|
|
'custom_name' => '客户名称',
|
|
'name' => '姓名',
|
|
'position' => '职务',
|
|
'phone' => '手机',
|
|
'telephone' => '电话',
|
|
'email' => '邮箱',
|
|
'notes' => '备注',
|
|
];
|
|
}
|
|
|
|
} |