| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 | <?phpnamespace app\worker\controller;use app\worker\BaseController;use app\common\model\ComjobsReport as ComjobsReportModel;use app\common\model\ReportLog as ReportLogModel;use app\common\model\Comjobs as ComjobsModel;use app\common\model\Agent as AgentModel;use app\common\validate\Report as ReportValidate;use think\exception\ValidateException;use think\facade\Db;class Comjobsreport extends BaseController{	// 报备记录	public function reportList()	{        $workerid = $this->access_worker['id'];        $comjobslist = ComjobsModel::where('workerid',$workerid)->select();        $agentlist = Db::name('agent')                    ->alias('a')                    ->field('a.id,a.title')                    ->join('worker b','b.id = a.workerid','LEFT')                    ->where('a.workerid',$workerid)                    ->select()                    ->toArray();		$statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');		return view('comjobsreport/reportlist',[			'comjobslist'	=> $comjobslist,			'agentlist'		=> $agentlist,			'statusarr'		=> $statusarr		]);	}    // 报备记录(待审核)    public function reportExamine()    {        $workerid = $this->access_worker['id'];        $comjobslist = ComjobsModel::where('workerid',$workerid)->select();        $agentlist = Db::name('agent')                    ->alias('a')                    ->field('a.id,a.title')                    ->join('worker b','b.id = a.workerid','LEFT')                    ->where('a.workerid',$workerid)                    ->select()                    ->toArray();        $statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');        return view('comjobsreport/reportexamine',[            'comjobslist'	=> $comjobslist,            'agentlist'		=> $agentlist,            'statusarr'		=> $statusarr        ]);    }		public function listReport()	{		$limit = input('limit/d',20);		$page = input('page/d',1);        $workerid = $this->access_worker['id'];		$map = array();        $map[] = ['a.workerid', '=', $workerid];        $date6 = input('date6');        if(!empty($date6))        {            $date6 =explode('~',$date6);            $startTime = strtotime($date6[0]);            $endTime = strtotime($date6[1]);            $map[] = ['a.createtime', 'between', [$startTime,$endTime]];        }		$comjobsid = input('comjobsid/d', 0);		if (!empty($comjobsid)){			$map[] = ['a.comjobsid', '=', $comjobsid];		}		$agentid = input('agentid/s', "");		if ($agentid!=""){			$map[] = ['a.agentid', '=', intval($agentid)];		}		$status = input('status/d', 0);		if (!empty($status)){			$map[] = ['a.status', '=', $status];		}		$list = Db::name('comjobs_report')                ->alias('a')                ->field('a.id,a.status,a.realname,a.mobile,a.idcard,a.arrivetime,from_unixtime(a.createtime) createtime,b.title comjobs_title,c.title agent_title,d.title broker_title')                ->join('comjobs b','b.id = a.comjobsid','LEFT')                ->join('agent c','c.id = a.agentid','LEFT')                ->join('broker d','d.agentid = c.id','LEFT')                ->where($map)                ->order('id','DESC')                ->limit($limit)                ->page($page)                ->select()                ->toArray();		$count = Db::name('comjobs_report')                ->alias('a')                ->join('comjobs b','b.id = a.comjobsid','LEFT')                ->join('agent c','c.id = a.agentid','LEFT')                ->join('broker d','d.agentid = c.id','LEFT')                ->where($map)                ->count();		foreach($list as $k=>$v)        {            if($v['status'] == 1){                $list[$k]['status_text'] = '待审核';            }elseif($v['status'] == 2){                $list[$k]['status_text'] = '待面试';            }elseif($v['status'] == 3){                $list[$k]['status_text'] = '已入职';            }elseif($v['status'] == 4){                $list[$k]['status_text'] = '无效报备';            }        }		if ($count==0){			exit(json_encode(array(				'code' 	=> 1,				'msg'	=> "未查询到数据"			)));		}		exit(json_encode(array(			'code' 	=> 0,			'msg'	=> "",			'count' => $count,			'data'  => $list 		)));	}		public function exportReport()	{		$map = array();		$comjobsid = input('comjobsid/d', 0);		if (!empty($comjobsid)){			$map[] = ['comjobsid', '=', $comjobsid];		}		$agentid = input('agentid/d', 0);		if (!empty($agentid)){			$map[] = ['agentid', '=', $agentid];		}		$status = input('status/d', 0);		if (!empty($status)){			$map[] = ['status', '=', $status];		}		$xlsData = ComjobsReportModel::with(['comjobs','agent','broker'])->where($map)->order('id','DESC')->append(['status_text'])->select()->toArray();		$xlsCell = array(			array('id','表ID'),			array('comjobs.title','招聘标题'),			array('agent.title','代理门店'),			array('broker.title','职业顾问'),			array('realname','姓名'),			array('mobile','手机号'),			array('idcard','身份证号'),			array('arrivetime','预计到达时间'),			array('remark','报名备注'),			array('status_text','状态'),			array('createtime','接单时间')		);		export_excel("报备记录",$xlsCell,$xlsData);	}		public function setComtype()	{		$idarr = input('idarr/a');		$comjobsid = input('comjobsid/d', 0);		$comjobs = ComjobsModel::with(['company'])->findOrEmpty($comjobsid);		if ($comjobs->isEmpty()){			exit(json_encode(array(				'code' 	=> 1,				'msg'	=> "请选择招聘信息和代理门店"			)));		}		$data = [			'comjobsid'			=> $comjobs->id,			'comtype'			=> input('comtype/s', ""),			'comprice'			=> input('comprice/s', ""),			'comremark'			=> input('comremark/s', ""),			'updatetime'		=> input('updatetime/s', date("Y-m-d H:i"))		];		ComjobsReportModel::whereIn('id',$idarr)->update($data);		$reportall = ComjobsReportModel::whereIn('id',$idarr)->select()->toArray();		$logdata = array();		$statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');		$agentall = AgentModel::column('realname', 'id');		foreach($reportall as $key=>$item){			$logdata[] = array(				'reportid'		=> $item['id'],				'logstatus'		=> $statusarr[$item['status']],				'editrealname'	=> "管理员",				'comjobstil'	=> $comjobs->isEmpty() ? "" : $comjobs->title,				'agenttil'		=> empty($agentall[$item['agentid']]) ? "未报备" : $agentall[$item['agentid']],				'realname'		=> $item['realname'],				'mobile'		=> $item['mobile'],				'idcard'		=> $item['idcard'],				'comtype'		=> input('comtype/s', ""),				'comprice'		=> input('comprice/s', ""),				'comremark'		=> input('comremark/s', ""),				'arrivetime'	=> $item['arrivetime'],				'remark'		=> $item['remark'],				'createtime'	=> date("Y-m-d H:i")			);		}		$reportlog = new ReportLogModel;		$reportlog->saveAll($logdata);		exit(json_encode(array(			'code' 	=> 0,			'msg'	=> ""		)));	}		public function setStatus()	{		$idarr = input('idarr/a');		$status = input('status/d', 1);		ComjobsReportModel::whereIn('id',$idarr)->update(['status'=>$status]);		exit(json_encode(array(			'code' 	=> 0,			'msg'	=> ""		)));	}		public function delReport()	{		$idarr = input('idarr/a');        $ComjobsReport = ComjobsReportModel::whereIn('id',$idarr)->select();        $result = $ComjobsReport->delete();		if ($result){			exit(json_encode(array(				'code' 	=> 0,				'msg'	=> ""			)));		}		exit(json_encode(array(			'code' 	=> 1,			'msg'	=> "删除失败,请稍后重试"		)));	}		public function reportImport()	{		$id = input('id/d, 0');		$comjobslist = ComjobsModel::with(['comjobsRefund.agentGroups'])->order(['id'=>'desc'])->select();		$agentlist = AgentModel::order(['id'=>'asc'])->select();		return view('comjobsreport/reportimport',[			'comjobslist'	=> $comjobslist,			'agentlist'		=> $agentlist		]);	}		public function importReport()	{		$execlfile = input('execlfile/s', "");		if (empty($execlfile)){			exit(json_encode(array(				'code' 	=> 1,				'msg'	=> "请上传导入文件"			)));		}		$comjobsid = input('comjobsid/d', 0);		$comjobs = ComjobsModel::findOrEmpty($comjobsid);		$agentid = input('agentid/d', 0);		$agent = AgentModel::findOrEmpty($agentid);		$filedata = read_excel( $execlfile );		$sucnumber = 0;		$errnumber = 0;		$errarr = "";		$statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');		foreach( $filedata as $k=>$v ){			$tabcomjobsid = intval($v[1]);			if (empty($tabcomjobsid)){				$tabcomjobs = $comjobs;			}else{				$tabcomjobs = ComjobsModel::findOrEmpty($tabcomjobsid);			}			$tabagentid = intval($v[2]);			if (empty($tabagentid)){				$tabagent = $agent;			}else{				$tabagent = AgentModel::findOrEmpty($tabagentid);			}			if( $tabcomjobs->isEmpty() ){				$errarr .= $v[0] . ",";				$errnumber++;				continue;			}else{				$data = array(					'comjobsid'			=> $tabcomjobs->id,					'agentid'			=> $tabagent->isEmpty() ? 0 : $tabagent->id,					'brokerid'			=> 0,					'realname'			=> trim($v[3]),					'mobile'			=> trim($v[4]),					'idcard'			=> trim($v[5]),					'gender'			=> trim($v[6])=='男' ? 1 : 2,					'comtype'			=> empty(trim($v[7])) ? trim($v[7]) : input('comtype/s', ""),					'comprice'			=> empty(trim($v[8])) ? trim($v[8]) : input('comprice/s', ""),					'comremark'			=> empty(trim($v[9])) ? trim($v[9]) : input('comremark/s', ""),					'arrivetime'		=> trim($v[10]),					'remark'			=> trim($v[11]),					'status'			=> intval($v[12]),					'updatetime'		=> date("Y-m-d H:i"),					'createtime'		=> date("Y-m-d H:i")				);				try {				    validate(ReportValidate::class)->check($data);				} catch (ValidateException $e) {					$errarr .= $v[0] . ",";					$errnumber++;					continue;				}				$report = new ComjobsReportModel;				$report->save($data);				$logdata = array(					'reportid'		=> $report->id,					'logstatus'		=> $statusarr[$report->status],					'editrealname'	=> "管理员",					'comjobstil'	=> $tabcomjobs->title,					'agenttil'		=> $tabagent->isEmpty() ? "未报备" : $tabagent->title,					'realname'		=> trim($v[3]),					'mobile'		=> trim($v[4]),					'idcard'		=> trim($v[5]),					'comtype'		=> empty(trim($v[7])) ? trim($v[7]) : input('comtype/s', ""),					'comprice'		=> empty(trim($v[8])) ? trim($v[8]) : input('comprice/s', ""),					'comremark'		=> empty(trim($v[9])) ? trim($v[9]) : input('comremark/s', ""),					'arrivetime'	=> trim($v[10]),					'remark'		=> trim($v[11]),					'createtime'	=> date("Y-m-d H:i")				);				ReportLogModel::create($logdata);				$sucnumber++;			}		}		exit(json_encode(array(			'code' 			=> 0,			'sucnumber'		=> $sucnumber,			'errnumber'		=> $errnumber,			'errarr'		=> $errarr		)));	}			public function reportForm()	{		$id = input('id/d, 0');		$report = Db::name('comjobs_report')                 ->alias('a')                 ->field('a.id,a.realname,a.mobile,a.idcard,a.status,a.remark,a.retremark,b.title')                 ->join('comjobs b','b.id = a.comjobsid','LEFT')                 ->where('a.id',$id)                 ->find();		$statusarr = array(1=>'待审核', 2=>'待面试', 3=>'已入职', 4=>'无效报备');		return view('comjobsreport/reportform',[			'report'		=> $report,			'title'		=> $this->access_worker['title'],			'statusarr'		=> $statusarr		]);	}	 	public function editReport()	{		$id = input('id/d', 0);        $workerid = $this->access_worker['id'];		$data = array(			'retremark'			=> input('retremark/s', ""),			'status'			=> input('status/d', 1),			'updatetime'		=> time()		);		if (empty($id)){			$report = new ComjobsReportModel;			$report->save($data); 		}else{			$report = ComjobsReportModel::find($id);			$report->save($data); 		}		exit(json_encode(array(			'code' 	=> 0		)));	}		// 记录	public function logList()	{		$reportid = input('reportid/d',0);		$report = ComjobsReportModel::findOrEmpty($reportid);		return view('comjobsreport/loglist',[			'reportid'		=> $reportid,			'report'		=> $report		]); 	}		public function listLog()	{		$limit = input('limit/d',50);		$page = input('page/d',1);		$map = array();		$map[] = ['reportid', '=', input('reportid/d',0)];        $map[] = ['delstatus', '<>', 2];		$list = ReportLogModel::with(['report'])->where($map)->order(['id'=>'desc'])->limit($limit)->page($page)->select();		$count = ReportLogModel::where($map)->count();		if ($count==0){			exit(json_encode(array(				'code' 	=> 1,				'msg'	=> "未查询到数据"			)));		}		exit(json_encode(array(			'code' 	=> 0,			'msg'	=> "",			'count' => $count,			'data'  => $list		)));	}		}
 |