<?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 app\common\model\auth\Admin; 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 [ '=' => ['organization_code', 'city', '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 { $params=$this->request->param(); $where=[]; if($this->adminInfo['root']!=1){ $where['area_manager']=$this->adminId; } if(isset($params['company_id']) && $params['company_id']!=''){ $arr= Company::where('company_name','like','%'.$params['company_id'].'%')->column('id'); if($arr){ $where[]=['party_a|party_b','in',$arr]; } } if(isset($params['area_manager']) && $params['area_manager']!=''){ $arr= Admin::where('name','like','%'.$params['area_manager'].'%')->column('id'); if($arr){ $where[]=['area_manager','in',$arr]; } } if(isset($params['area']) && $params['area']!=''){ $arr= Db::name('geo_area')->where('area_name','like','%'.$params['area'].'%')->column('area_code'); if($arr){ $where[]=['area','in',$arr]; } } if(isset($params['street']) && $params['street']!=''){ $arr= Db::name('geo_street')->where('street_name','like','%'.$params['street'].'%')->column('street_code'); if($arr){ $where[]=['street','in',$arr]; } } return Company::where($this->searchWhere) ->where($where) ->field(['is_authentication','id', 'id contract', 'company_name', 'organization_code', 'city', 'area', 'street', 'company_type', 'master_name', 'master_position', 'master_phone', 'master_email', 'area_manager', 'is_contract', 'deposit', 'deposit_time', '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', '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(); } }