<?php // +---------------------------------------------------------------------- // | likeadmin快速开发前后端分离管理后台(PHP版) // +---------------------------------------------------------------------- // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力 // | 开源版本可自由商用,可去除界面版权logo // | gitee下载:https://gitee.com/likeshop_gitee/likeadmin // | github下载:https://github.com/likeshop-github/likeadmin // | 访问官网:https://www.likeadmin.cn // | likeadmin团队 版权所有 拥有最终解释权 // +---------------------------------------------------------------------- // | author: likeadminTeam // +---------------------------------------------------------------------- namespace app\adminapi\lists; use app\adminapi\lists\BaseAdminDataLists; use app\common\model\Company; use app\common\lists\ListsSearchInterface; use think\facade\Db; /** * Company列表 * Class CompanyLists * @package app\adminapi\lists */ class CompanyLists extends BaseAdminDataLists implements ListsSearchInterface { /** * @notes 设置搜索条件 * @return \string[][] * @author likeadmin * @date 2023/07/15 14:43 */ public function setSearch(): array { return [ '=' => ['level_two', 'level_one', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'other_contacts', 'area_manager', 'is_contract', 'deposit', 'deposit_time', 'qualification', 'status'], '%like%' => ['company_name'], ]; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author likeadmin * @date 2023/07/15 14:43 */ public function lists(): array { $where=[]; if($this->adminInfo['root']!=1){ $where['area_manager']=$this->adminId; } return Company::where($this->searchWhere) ->where($where) ->field(['is_authentication','id', 'level_two', 'level_one', 'company_name', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'other_contacts', 'area_manager', 'is_contract', 'deposit', 'deposit_time', 'qualification', 'status']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->withAttr('company_type',function($value,$data){ return Db::name('dict_data')->where('id',$value)->value('name'); }) ->withAttr('area',function($value,$data){ return Db::name('geo_area')->where('area_code',$value)->value('area_name'); }) ->withAttr('street',function($value,$data){ return Db::name('geo_street')->where('street_code',$value)->value('street_name'); }) ->withAttr('area_manager',function($value,$data){ return Db::name('admin')->where('id',$value)->value('name'); }) ->select() ->toArray(); } public function list_two(): array { return Company::where('company_type',30) ->field(['is_authentication','id', 'level_two', 'level_one', 'company_name', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'other_contacts', 'area_manager', 'is_contract', 'deposit', 'deposit_time', 'qualification', 'status']) ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select() ->toArray(); } /** * @notes 获取数量 * @return int * @author likeadmin * @date 2023/07/15 14:43 */ public function count(): int { return Company::where($this->searchWhere)->count(); } }