| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- <?php
 
- declare (strict_types=1);
 
- namespace app\command;
 
- use think\console\Command;
 
- use think\console\Input;
 
- use think\console\input\Argument;
 
- use think\console\input\Option;
 
- use think\console\Output;
 
- use think\facade\Db;
 
- use think\facade\Log;
 
- use app\common\api\TalentState;
 
- use app\enterprise\model\Talent;
 
- use app\common\api\MenuApi;
 
- use app\admin\model\SysRelation;
 
- use app\admin\model\User;
 
- /**
 
-  * 复审检查
 
-  */
 
- class ReVerifyChecker extends Command {
 
-     protected function configure() {
 
-         // 指令配置
 
-         $this->setName('ReVerifyChecker')
 
-                 ->setDescription('ReVerify Checker');
 
-     }
 
-     protected function execute(Input $input, Output $output) {
 
-         $whereRaw = sprintf("(ti.checkState in (14,15,16)) or (ti.checkState=12 and ti.pass_dept_check=0) or (ti.checkState=10 and ti.pass_dept_check=1) or (ti.checkState=10 and (tc.companyIds is null or tc.companyIds = ''))");
 
-         $where[] = ["ti.checkState", "in", [TalentState::FST_VERIFY_PASS, TalentState::DEPT_VERIFY_PASS]];
 
-         $list = Talent::alias("ti")
 
-                         ->leftJoin("new_talent_condition tc", "tc.id=ti.talent_condition")
 
-                         ->leftJoin("un_enterprise e", "e.id=ti.enterprise_id")
 
-                         ->leftJoin("(select description,mainId,last_state,new_state,state,createTime from new_talent_checklog where md5(concat(createTime,mainId,`type`)) in (select md5(concat(max(createTime),mainId,`type`)) from `new_talent_checklog` where `type`=1 and `step` is null and active=1 and typeFileId is null group by mainId,`type`)) tl", "`tl`.`mainId`=ti.id")
 
-                         ->where($where)->whereRaw($whereRaw)->group("e.type")->field("count(*) as count,e.type")->select()->toArray();
 
-         $codes = ["talentInfo_third"];
 
-         $menuIds = MenuApi::getMenuIdsByCodes($codes);
 
-         $where = [];
 
-         $where[] = ["menuid", "in", $menuIds];
 
-         $roleIds = SysRelation::where($where)->group("roleid")->having("count(*)=" . count($codes))->column("roleid");
 
-         foreach ($list as $item) {
 
-             $where = [];
 
-             $where[] = ["type", "=", $item["type"]];
 
-             $where[] = ["status", "=", 1];
 
-             $where[] = ["roleid", "<>", 1];
 
-             $regstr = ",(" . implode("|", $roleIds) . "),";
 
-             $whereRaw = "concat(',',roleid,',') REGEXP '$regstr'";
 
-             $users = User::where($where)->whereRaw($whereRaw)->select()->toArray();
 
-             foreach ($users as $user) {
 
-                 if ($item["count"] > 0 && $user["phone"]) {
 
-                     queue("app\job\Messenger", ["type" => 4, "userId" => $user["id"], "name" => $user["name"], "phone" => $user["phone"], "count" => $item["count"]]);
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |