setName('DeptVerifyChecker') ->setDescription('Dept Verify Checker'); } protected function execute(Input $input, Output $output) { $where[] = ["e.type", "=", 1]; $where[] = ["ti.checkState", "=", TalentState::FST_VERIFY_PASS]; $where[] = ["ti.pass_dept_check", "=", 0]; $jjrc_list = TalentModel::alias("ti") ->leftJoin("new_talent_condition tc", "tc.id=ti.talent_condition") ->leftJoin("un_enterprise e", "e.id=ti.enterprise_id") ->where($where)->field("ti.id,tc.companyIds,ti.re_check_companys")->select()->toArray(); $jjrc_counts = []; foreach ($jjrc_list as $item) { $companyIds = array_filter(explode(",", $item["companyIds"])); $pass_companyIds = TalentLogApi::getPassDepts($item["id"]); //已经通过的单位 $re_check_companys = $item["re_check_companys"] ? array_filter(explode(",", $item["re_check_companys"])) : []; $companyIds = VerifyApi::getNewReCheckCompanyIds($re_check_companys, $companyIds, $pass_companyIds); $unpass_companyIds = array_diff($companyIds, (array) $pass_companyIds); //排除已经通过的单位 foreach ($unpass_companyIds as $companyId) { $jjrc_counts[$companyId] += 1; } } /* $where[] = ["type", "=", ProjectState::TALENT]; $where[] = ["step", "=", 3]; $where[] = ["active", "=", 0]; $jjrc_list = TalentChecklog::where($where)->column("companyId"); $jjrc_counts = []; for ($i = 0; $i < count($jjrc_list); $i++) { $jjrc_counts[$jjrc_list[$i]] += 1; } */ $codes = ["talentInfo_depCheck"]; $menuIds = MenuApi::getMenuIdsByCodes($codes); $where = []; $where[] = ["menuid", "in", $menuIds]; $roleIds = SysRelation::where($where)->group("roleid")->having("count(*)=" . count($codes))->column("roleid"); foreach ($jjrc_counts as $companyId => $count) { $where = []; $where[] = ["type", "=", 1]; $where[] = ["status", "=", 1]; $where[] = ["roleid", "<>", 1]; $where[] = ["companyId", "=", $companyId]; $regstr = ",(" . implode("|", $roleIds) . "),"; $whereRaw = "concat(',',roleid,',') REGEXP '$regstr'"; $users = User::where($where)->whereRaw($whereRaw)->select()->toArray(); foreach ($users as $user) { if ($user["phone"]) { queue("app\job\Messenger", ["type" => 3, "userId" => $user["id"], "name" => $user["name"], "phone" => $user["phone"], "count" => $count]); } } } } }