| 
					
				 | 
			
			
				@@ -0,0 +1,77 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?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\enterprise\model\Talent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\api\TalentState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\api\MenuApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\admin\model\SysRelation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\admin\model\User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 人才认定初审待审核检查 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class FstVerifyChecker extends Command { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected function configure() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 指令配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $this->setName('FstVerifyChecker') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->setDescription('First Verify Checker'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected function execute(Input $input, Output $output) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["e.type", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["ti.checkState", "=", TalentState::SCND_SUBMIT]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["tl.state", "in", [TalentState::SCND_SUBMIT, TalentState::DEPT_VERIFY_REJECT, TalentState::REVERIFY_REJECT]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $jjrc_count = Talent::alias("ti") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("un_enterprise e", "e.id=ti.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("(select mainId,last_state,new_state,state,createTime from new_talent_checklog where createTime in (select max(createTime) 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)->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["e.type", "=", 2]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["ti.checkState", "=", TalentState::SCND_SUBMIT]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["tl.state", "in", [TalentState::SCND_SUBMIT, TalentState::DEPT_VERIFY_REJECT, TalentState::REVERIFY_REJECT]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ic_count = Talent::alias("ti") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("un_enterprise e", "e.id=ti.enterprise_id") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ->leftJoin("(select mainId,last_state,new_state,state,createTime from new_talent_checklog where createTime in (select max(createTime) 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)->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $codes = ["talentInfo_first"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $menuIds = MenuApi::getMenuIdsByCodes($codes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["menuid", "in", $menuIds]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $roleIds = SysRelation::where($where)->group("roleid")->having("count(*)=" . count($codes))->column("roleid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["status", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["roleid", "<>", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $regstr = ",(" . implode("|", $roleIds) . "),"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $whereRaw = "concat(',',roleid,',') REGEXP '$regstr'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $users = User::where($where)->whereRaw($whereRaw)->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($users as $user) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            switch ($user["type"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($jjrc_count > 0 && $user["phone"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        queue("app\job\Messenger", ["type" => 2, "userId" => $user["id"], "name" => $user["name"], "phone" => $user["phone"], "count" => $jjrc_count]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($ic_count > 0 && $user["phone"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        queue("app\job\Messenger", ["type" => 2, "userId" => $user["id"], "name" => $user["name"], "phone" => $user["phone"], "count" => $ic_count]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |