107 lines
2.6 KiB
PHP
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' => '下次回访日期',
|
|
];
|
|
}
|
|
|
|
} |