engineering/app/adminapi/lists/custom/CustomContactsLists.php
2024-03-14 15:34:33 +08:00

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' => '备注',
];
}
}