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

107 lines
2.6 KiB
PHP

<?php
namespace app\adminapi\lists\custom;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsExcelInterface;
use app\common\lists\ListsSearchInterface;
use app\common\model\custom\Custom;
use app\common\model\custom\CustomFollow;
/**
* CustomFollow列表
* Class CustomFollowLists
* @package app\adminapi\listscustom_follow
*/
class CustomFollowLists extends BaseAdminDataLists implements ListsSearchInterface,ListsExcelInterface
{
/**
* @notes 设置搜索条件
* @return \string[][]
* @author likeadmin
* @date 2023/11/12 13:40
*/
public function setSearch(): array
{
return [
'%like%' => ['name', 'executor'],
'=' => ['custom_id','types']
];
}
/**
* @notes 获取列表
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
* @author likeadmin
* @date 2023/11/12 13:40
*/
public function lists(): array
{
return CustomFollow::field('id,custom_id,name,date,types,executor,description,annex,coordinate,next_follow_date')
->where($this->searchWhere)
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()->each(function($item){
$item['types_text'] = $item->types_text;
$custom = Custom::field('name,master_name')->where('id',$item['custom_id'])->findOrEmpty();
$item['custom_name'] = $custom['name'];
$item['custom_master_name'] = $custom['master_name'];
return $item;
})
->toArray();
}
/**
* @notes 获取数量
* @return int
* @author likeadmin
* @date 2023/11/12 13:40
*/
public function count(): int
{
return CustomFollow::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',
'name' => '跟进主题',
'custom_name' => '客户名称',
'custom_master_name' => '联系人',
'date' => '日期',
'types' => '类型',
'executor' => '执行人',
'description' => '行动描述',
'annex' => '附件/现场照片',
'coordinate' => '位置',
'next_follow_date' => '下次回访日期',
];
}
}