| 
					
				 | 
			
			
				@@ -0,0 +1,140 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?php 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace app\job; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\queue\Job; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\facade\Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\facade\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\api\ChuanglanSmsApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\model\MessageRecord; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Description of Enterprise 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 企业相关事务处理 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author sgq 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Enterprise { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function fire(Job $job, $data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($this->deal($data)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $job->delete(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($job->attempts() >= 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $job->delete(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $job->release(10); //10秒后重试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 处理业务逻辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param type $data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @return bool 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function deal($data): bool { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $type = $data["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        switch ($type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $id = $data["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //注册成功,检查是否重新注册,如果是,继承账号所有人才数据和申报数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $ep = \app\common\api\EnterpriseApi::getOne($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($ep && $ep["checkState"] == 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $where[] = ["idCard", "=", $ep["idCard"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $where[] = ["checkState", "=", 3]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $closeRecord = \app\common\model\EnterpriseCloseAccount::where($where)->order("passTime desc")->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if ($closeRecord && $closeRecord["enterpriseId"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $oldEpId = $closeRecord["enterpriseId"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //开始转移数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Db::startTrans(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //生活补贴 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["enterpriseId", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterpriseId"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["type"] = $ep["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterpriseName"] = $ep["name"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("md_living_allowance_info")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //津补贴 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_allowance_info")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //积分 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["enterprise_id", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterprise_id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["type"] = $ep["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("new_integral_log")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("new_integral_record")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("new_integral_veto")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //人才 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["enterprise_id", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterprise_id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("new_talent_info")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //信息变更 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["enterpriseId", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterpriseId"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["type"] = $ep["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_basic_change")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterpriseName"] = $ep["name"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_type_change")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_quit")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_bank_change")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //工作变更情况1 作为变更前时候 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["oldEnterpriseId", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["oldEnterpriseId"] = $oldEpId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_workunit_change")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //工作变更情况2 作为变更后时候 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["newEnterpriseId", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["newEnterpriseId"] = $oldEpId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["type"] = $ep["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_workunit_change")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            //other 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($where); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            unset($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $where[] = ["enterpriseId", "=", $oldEpId]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["enterpriseId"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_allowance_project")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_talent_allowancecontract_detail")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $upd["type"] = $ep["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_childschool_fees")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_house_renting")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_house_renting_fees")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_house_renting_purchase_fees")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_housepurchase")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_houser_renting_purchase_apply")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_medical_subsidy")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_training_subsidy")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::table("un_major_projects")->where($where)->save($upd); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::commit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } catch (\think\Exception $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Db::rollback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Log::error(json_encode($data)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Log::error($e->getMessage()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |