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 = [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 = [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 = []; $map[] = ['workerid', '=', $workerid]; $date6 = input('date6'); if (!empty($date6)) { $date6 = explode('~', $date6); $startTime = strtotime($date6[0]); $endTime = strtotime($date6[1]); $map[] = ['createtime', 'between', [$startTime, $endTime]]; } $comjobsid = input('comjobsid/d', 0); if (!empty($comjobsid)) { $map[] = ['comjobsid', '=', $comjobsid]; } $agentid = input('agentid/s', ""); if ($agentid != "") { $map[] = ['agentid', '=', intval($agentid)]; } $status = input('status/d', 0); if (!empty($status)) { $map[] = ['status', '=', $status]; } $count = ComjobsReportModel::where($map)->count(); if ($count == 0) { exit(json_encode([ 'code' => 1, 'msg' => "未查询到数据", ])); } $list = ComjobsReportModel::with(['comjobs','agent','broker']) ->where($map) ->order('id', 'DESC') ->limit($limit) ->page($page) ->append(['status_text']) ->select(); foreach ($list as $v) { $v['comjob_title'] = $v['comjobs']['title']; $v['agent_title'] = $v['agent']['title']; $v['broker_title'] = $v['broker']['title']; } exit(json_encode([ 'code' => 0, 'msg' => "", 'count' => $count, 'data' => $list, ])); } public function exportReport() { $map = []; $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 = [ ['id', '表ID'], ['comjobs.title', '招聘标题'], ['agent.title', '代理门店'], ['broker.title', '经纪人'], ['realname', '姓名'], ['mobile', '手机号'], ['idcard', '身份证号'], ['arrivetime', '预计到达时间'], ['remark', '报名备注'], ['status_text', '状态'], ['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([ '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 = []; $statusarr = [1 => '待审核', 2 => '待面试', 3 => '已入职', 4 => '无效报备']; $agentall = AgentModel::column('realname', 'id'); foreach ($reportall as $key => $item) { $logdata[] = [ '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([ '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([ 'code' => 0, 'msg' => "", ])); } public function delReport() { $idarr = input('idarr/a'); $ComjobsReport = ComjobsReportModel::whereIn('id', $idarr)->select(); $result = $ComjobsReport->delete(); if ($result) { exit(json_encode([ 'code' => 0, 'msg' => "", ])); } exit(json_encode([ '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([ '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 = [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 = [ '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 = [ '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([ '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 = [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 = [ 'retremark' => input('retremark/s', ""), 'status' => input('status/d', 1), 'updatetime' => time(), ]; if (empty($id)) { $report = new ComjobsReportModel; $report->save($data); } else { $report = ComjobsReportModel::with('comjobs')->find($id); if ($data['status'] < $report['status']) { exit(json_encode([ 'code' => 1, 'msg' => "状态只能往后选", ])); } //悬赏金 if ($report['status'] != 3 && $data['status'] == 3) { $incomeService = new IncomeService(); $incomeService->add($report['brokerid'], $report['comjobs']['retmoney'], '悬赏招聘', '悬赏招聘推荐入职成功后奖励'); } $report->save($data); } exit(json_encode([ '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 = []; $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([ 'code' => 1, 'msg' => "未查询到数据", ])); } exit(json_encode([ 'code' => 0, 'msg' => "", 'count' => $count, 'data' => $list, ])); } }