TaskSystem/app/adminapi/lists/approve/ApproveLists.php
2023-10-26 14:39:38 +08:00

91 lines
2.9 KiB
PHP

<?php
namespace app\adminapi\lists\approve;
use app\adminapi\lists\BaseAdminDataLists;
use app\common\lists\ListsSearchInterface;
use app\common\model\Approve;
use app\common\model\auth\Admin;
use app\common\model\Company;
use app\common\model\task\Task;
use think\facade\Db;
class ApproveLists extends BaseAdminDataLists implements ListsSearchInterface
{
/**
* @notes 设置搜索条件
* @return \string[][]
* @author likeadmin
* @date 2023/08/31 11:08
*/
public function setSearch(): array
{
return [
'in' => ['type'],
'='=>['check_status']
];
}
public function queryWhere()
{
$where = [];
// $where[] = ['check_admin_ids', '=', $this->adminId]; // todo 放开过滤条件,只有片区经理才能查看
return $where;
}
public function lists(): array
{
return Approve::where($this->searchWhere)
->where($this->queryWhere())
->with('task')
->field('*')
->append(['area_manager', 'company_name'], true)
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()
->withAttr('area_manager',function($value,$data){
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_name',function($value,$data){
$task = Task::where('id', $data['task_id'])->find();
return Company::where(['id' => $task['company_id']])->value('company_name');
})
->toArray();
}
public function lists2(): array
{
$list = Approve::where($this->searchWhere)
->where($this->queryWhere())
->with('task')
->field('*')
->append(['area_manager', 'company_name'], true)
->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc'])
->select()
->withAttr('area_manager',function($value,$data){
return Admin::where(['id' => $data['check_admin_ids']])->value('name');
})
->withAttr('company_name',function($value,$data){
$extend = json_decode($data['extend'], true);
$company = Db::query("select * from la_company where FIND_IN_SET(:street,responsible_area)", ['street'=>$extend['street']], true);
return $company[0]['company_name'];
})
->toArray();
$count = Approve::where($this->searchWhere)
->where($this->queryWhere())->count();
return [
'lists' => $list,
'count' => $count,
'page_no' => $this->pageNo,
'page_size' => $this->pageSize,
];
}
public function count(): int
{
return Approve::where($this->searchWhere)->count();
}
}