| 
					
				 | 
			
			
				@@ -6,14 +6,16 @@ use app\enterprise\common\EnterpriseController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\facade\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\facade\Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\EnterpriseApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-use app\common\api\DictApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\TalentLogApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use think\exception\ValidateException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\enterprise\validate\LivingAllowance as LivingAllowanceValidator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\state\ProjectState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\state\LivingAllowanceState as LaState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\common\api\BatchApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 use app\enterprise\api\LivingAllowanceApi as EnterpriseLaApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-use app\common\api\LivingAllowanceApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\api\LivingAllowanceApi as CommonLaApi; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\model\LivingAllowance as LaModel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use app\common\model\TalentLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * Description of LivingAllowance 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -32,129 +34,234 @@ class LivingAllowance extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * 新人才申报企业端统一申报入口,混合基础信息及人才信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 申请 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function apply(\think\Request $request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $type = $this->user["type"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $param = $request->param(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $id = isset($param["id"]) ? $param["id"] : 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $info = LivingAllowanceApi::getInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info = CommonLaApi::getInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $ep = EnterpriseApi::getOne($this->user["uid"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!chkEnterpriseFull($ep)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($info && in_array($info["checkState"], [TalentState::FST_VERIFY_PASS, TalentState::DEPT_VERIFY_PASS, TalentState::REVERIFY_PASS, TalentState::REVERIFY_FAIL])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return $this->view($request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            exit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* if ($info && !in_array($info["checkState"], [LaState::LA_SAVE, LaState::LA_FIRST_REJECT])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return view("", ["row" => $info, "enterprise" => $ep, "hand" => "select"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if ($request->isPost()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $checkState = $info["checkState"] ?: 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($checkState == TalentState::SCND_SAVE || $checkState == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $this->save($info, $request, TalentState::SCND_SAVE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if (in_array($checkState, [TalentState::BASE_VERIFY_FAIL, TalentState::BASE_REVERIFY_FAIL, TalentState::FST_VERIFY_FAIL, TalentState::REVERIFY_FAIL])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $res = ["msg" => "审核不通过,不能再保存"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                echo sprintf("<script>parent.TalentInfoInfoDlg.infoCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $res = ["msg" => "已提交审核,请耐心等待"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            echo sprintf("<script>parent.TalentInfoInfoDlg.infoCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            exit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $this->save($info, $request); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $hand = $info ? "update" : "add"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $batch = $info["year"] ?: BatchApi::getValidBatch(ProjectState::LIVINGALLOWANCE, $this->user["type"])["batch"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return view("", ["year" => $batch, "row" => $info, "enterprise" => $ep, "hand" => $hand]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public function view(\think\Request $request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        switch ($this->user["type"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $tpl = "view"; //晋江人才 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $tpl = "ic_view"; //集成电路 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function detail(\think\Request $request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $param = $request->param(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $id = $param["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info = CommonLaApi::getInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ep = EnterpriseApi::getOne($this->user["uid"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!chkEnterpriseFull($ep)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return view("apply", ["row" => $info, "enterprise" => $ep, "hand" => "select"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private function other_validate($info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $responseObj = new \stdClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* 校验姓名是否与人才库一致 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["checkState", ">=", \app\common\api\TalentState::REVERIFY_PASS]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["checkState", "not in", [\app\common\api\TalentState::REVERIFY_REJECT, \app\common\api\TalentState::REVERIFY_FAIL]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["card_number", "=", $info["idCard"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $talentInfo = Db::table("new_talent_info")->where($where)->order("createTime desc")->find(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($talentInfo && $talentInfo["name"] != $info["name"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->msg = "该证件号码的姓名与人才库姓名不匹配!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $responseObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $id = $request->param("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $info = \app\common\api\VerifyApi::getTalentInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($info["isImport"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //$tpl = "no_file_view"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /* 查询当前批次审核通过的数量以及当前批次未审核完成的数量 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["year", "=", $info["year"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["idCard", "=", $info["idCard"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where[] = ["checkState", "<>", LaState::LA_NOTPASS]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($info["id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["id", "<>", $info["id"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $nowYearApplyCount = LaModel::where($where)->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($nowYearApplyCount > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->msg = "不能重复申报"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $responseObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$info["id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["idCard", "=", $info["idCard"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["checkState", "=", LaState::LA_PASS]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $totalApplyCount = LaModel::where($where)->count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($totalApplyCount >= 3) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return $responseObj->msg = "一个人最多享受三次!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $responseObj->code = 200; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $responseObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private function validateIsEdit($checkState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $responseObj = new \stdClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($checkState != LaState::LA_SAVE && $checkState != LaState::LA_BEFORE_REJECT && $checkState != LaState::LA_FIRST_REJECT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($checkState == LaState::LA_NOTPASS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $responseObj->msg = "您的申报审核不通过,无法操作"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if ($checkState >= LaState::LA_PASS) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $responseObj->msg = "您的申报已审核通过,无法操作"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $responseObj->msg = "您的申报正在审核中,请耐心等待"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->code = 500; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return $responseObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return view($tpl, ["row" => $info]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $responseObj->code = 200; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return $responseObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 提交表单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function submitToCheck() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $params = $this->request->param(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $id = $params["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!$info = TalentApi::chkIsOwner($id, $this->user["uid"])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return json(["msg" => "没有对应的人才认定申报信息"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $info["real_state"] = TalentLogApi::getLastLog($id, 1)["state"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $checkState = $info["checkState"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($checkState == TalentState::SCND_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $field_dict = \app\common\api\DictApi::getTalentFields_IC(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $no_empty = ["name", "card_type", "card_number", "sex", "birthday", "nationality", "province", "city", "nation", "politics", "break_faith", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "phone", "email", "highest_degree", "graduate_school", "major", "study_abroad", "position", "cur_entry_time", "labor_contract_rangetime", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "talent_arrange", "talent_condition", "identifyConditionName", "identifyGetTime", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "bank", "bank_branch_name", "bank_account", "experience", "education"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $no_empty = array_filter($no_empty); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $return = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            foreach ($no_empty as $key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$info[$key]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $return[] = sprintf("请填写“%s”", $field_dict[$key]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $id = $this->request["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $info = CommonLaApi::getInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!$info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException("提交审核失败,请先填写基础信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (count($return) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json(["msg" => implode("<br>", $return)]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info["enterpriseId"] != $this->user["uid"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException("没有对应的人才认定申报信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $batch = BatchApi::checkBatchValid(["type" => ProjectState::LIVINGALLOWANCE, "year" => $info["year"], "first_submit_time" => $info["firstSubmitTime"]], $this->user["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($batch["code"] != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException($batch["msg"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $response = $this->validateIsEdit($info["checkState"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($response->code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException($response->msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            validate(LivingAllowanceValidator::class)->check($info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $response = $this->other_validate($info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($response->code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException($response->msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["mainId", "=", $id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["type", "=", ProjectState::LIVINGALLOWANCE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $uploadedFileTypes = Db::table("new_talent_file")->where($where)->column("distinct typeId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $where = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $where[] = ["project", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["project", "=", ProjectState::LIVINGALLOWANCE]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $where[] = ["type", "=", $this->user["type"]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $where[] = ["must", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $where[] = ["active", "=", 1]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $where[] = ["delete", "=", 0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $filetypes = Db::table("new_common_filetype")->where($where)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $ft_ids = array_column($filetypes, "id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $whr[] = ["typeId", "in", $ft_ids]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $whr[] = ["mainId", "=", $id]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $distinct_filetypes = Db::table("new_talent_file")->where($whr)->distinct(true)->field("typeId")->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $upload_type_counts = count($distinct_filetypes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($upload_type_counts != count($ft_ids)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json(["msg" => "请留意附件上传栏中带*号的内容均为必传项,请上传完整再提交审核"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $where[] = ["id", "not in", $uploadedFileTypes]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $unUploadfiletypes = Db::table("new_common_filetype")->where($where)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($unUploadfiletypes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $msg = "以下附件为必传:<br>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                foreach ($unUploadfiletypes as $ft) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $msg .= "<span style='color:red;'>*</span>" . $ft["name"] . "<br>"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException($msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["checkState"] = LaState::LA_NEED_FIRST_CHECK; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!$info["firstSubmitTime"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["firstSubmitTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["newSubmitTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["checkMsg"] = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["files"] = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["fields"] = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $res = LaModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return $this->icSave($info, $this->request, TalentState::SCND_SUBMIT); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else if (in_array($checkState, [TalentState::BASE_VERIFY_FAIL, TalentState::BASE_REVERIFY_FAIL, TalentState::FST_VERIFY_FAIL, TalentState::REVERIFY_FAIL, TalentState::ZX_FAIL, TalentState::ANNOUNCED_REVERIFY_FAIL, TalentState::PUBLISH_FAIL])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return json(["msg" => "审核不通过,不能再提交审核", "code" => 500]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $user = session("user"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["id"] = getStringId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["active"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["state"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["step"] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["stateChange"] = LaState::getStateDesc($info["checkState"]) . "->" . LaState::getStateDesc($data["checkState"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["type"] = ProjectState::LIVINGALLOWANCE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["mainId"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["description"] = "确认提交审核"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["createUser"] = $user ? sprintf("%s(%s)", $user["account"], $user["companyName"] ?: $user["rolename"]) : "系统"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $log["createTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                TalentLog::create($log); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return json(["code" => 200, "msg" => "提交审核成功"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ValidateException("提交审核失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (ValidateException $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj = new \stdClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->code = 500; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->msg = $e->getMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return json($responseObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (\think\Exception $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $res = ["code" => 500, "msg" => "发生预料外错误,请联系管理员处理,错误代码:" . $e->getCode()]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $logInfo = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "enterprise_id" => $this->user["uid"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "data" => $data, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "controller" => $this->request->controller(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "action" => $this->request->action(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "errCode" => $e->getCode(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "errMsg" => $e->getMessage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Log::write($logInfo, "error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return json($res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return json(["msg" => "已提交审核,请耐心等待", "code" => 500]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public function save($info, \think\Request $request, $checkState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public function save($info, \think\Request $request) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $batch = BatchApi::checkBatchValid(["type" => ProjectState::TALENT, "year" => $info["apply_year"], "first_submit_time" => $info["first_submit_time"]], $this->user["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $batch = BatchApi::checkBatchValid(["type" => ProjectState::LIVINGALLOWANCE, "year" => $info["year"], "first_submit_time" => $info["firstSubmitTime"]], $this->user["type"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ($batch["code"] != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new ValidateException($batch["msg"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $param = $request->param(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            validate(TalentInfo::class)->check($param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $id = $param["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $response = $this->validateIsEdit($info["checkState"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($response->code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new ValidateException($response->msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data = $request->param(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["year"] = $batch["batch"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            validate(LivingAllowanceValidator::class)->check($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $response = $this->other_validate($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($response->code != 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                throw new ValidateException($response->msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $id = $data["id"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ($id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$info || $info["id"] != $id || $info["enterprise_id"] != $this->user["uid"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!$info || $info["id"] != $id || $info["enterpriseId"] != $this->user["uid"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new ValidateException("没有对应的人才认定申报信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["checkState"] = $info["checkState"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["id"] = getStringId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["active"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["checkState"] = LaState::LA_SAVE; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["isPublic"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["recommendIsPay"] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["isPay"] = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["createTime"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["createUser"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["creditStatus"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $count = CommonLaApi::getApplyCountByIdCard($data["idCard"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["applyCount"] = $count + 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($data["applyCount"] > 1 && !$data["personalTax"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    throw new ValidateException("非首年申报必须填写个税缴交情况!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $files = $param["uploadFiles"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data["headimgurl"] = $info["headimgurl"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $data["photo"] = $info["photo"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if ($request->file()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $headimg = $request->file("photo"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $headimg = $request->file("file"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $upload = new \app\common\api\UploadApi(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $result = $upload->uploadOne($headimg, "image", "talent/photo"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $file = imagecreatefromstring(file_get_contents("storage/" . $result->filepath)); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -162,91 +269,46 @@ class LivingAllowance extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $height = imagesy($file); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 //免冠二寸照长宽413:579 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if ($width * 579 != $height * 413) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    @unlink("storage/" . $result->filepath); //像素不符合,删除上传文件                     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    @unlink("storage/" . $result->filepath); //像素不符合,删除上传文件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     throw new ValidateException("近期免冠半身彩照(二寸)不符合二寸像素标准。*<span style='color:#ff0000;'>二寸像素标准[413*579]</span>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ($info && $info["headimgurl"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if ($info && $info["photo"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     //如果新照片符合像素要求,则删除旧照片 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $old_head_url = "storage/" . $info["headimgurl"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $old_head_url = "storage/" . $info["photo"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (file_exists($old_head_url)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         @unlink($old_head_url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $data["headimgurl"] = $result->filepath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $data["photo"] = $result->filepath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (!$data["headimgurl"] && $checkState == TalentState::SCND_SUBMIT) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!$data["photo"]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new ValidateException("请上传头像。*<span style='color:#ff0000;'>二寸像素标准[413*579]</span>"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data["apply_year"] = $batch["batch"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $all_valid_keys = ["name", "card_type", "card_number", "sex", "birthday", "nationality", "province", "city", "county", "nation", "politics", "experience", "education", "break_faith", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "phone", "email", "highest_degree", "graduate_school", "major", "study_abroad", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "position", "cur_entry_time", "labor_contract_rangetime", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "talent_arrange", "talent_condition", "identifyConditionName", "identifyGetTime", "title", "pro_qua", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "bank", "bank_branch_name", "bank_account", "description"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            foreach ($all_valid_keys as $key) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $value = trim($param[$key]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ($value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $data[$key] = $value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($info["real_state"] == TalentState::FST_VERIFY_REJECT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //真实状态11是驳回,需要判断什么字段可以提交                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $modify_fields = array_filter(explode(",", $info["modify_fields"])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($info["checkState"] == LaState::LA_FIRST_REJECT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //驳回,需要判断什么字段可以提交                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $modify_fields = array_filter(explode(",", $info["fields"])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $tmp_data = $data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $data = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 foreach ($modify_fields as $field) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $data[$field] = $tmp_data[$field]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data["checkState"] = $checkState; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $data["id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $success_msg = "提交成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $error_msg = "提交失败"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($checkState == TalentState::SCND_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $success_msg = "保存成功"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if ($data["id"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //编辑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TalentModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $last_log = TalentLogApi::getLastLog($data["id"], 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if ($last_log["new_state"] != TalentState::SCND_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        TalentLogApi::write(1, $data["id"], $checkState, "保存未提交", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (!$last_log["companyId"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            TalentLogApi::setActive($last_log["id"], 1); //更新修改时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    //新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $data["enterprise_id"] = $this->user["uid"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $id = TalentModel::insertGetId($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    TalentLogApi::write(1, $id, $checkState, "保存未提交", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $whr = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $whr[] = ["fileId", "in", $files]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $upd_checklog["mainId"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    Db::table("new_talent_checklog")->where($whr)->save($upd_checklog); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $res = ["code" => 200, "msg" => $success_msg, "obj" => ["id" => $id, "checkState" => $checkState]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                echo sprintf("<script>parent.TalentInfoInfoDlg.infoCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                exit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else if ($checkState == TalentState::SCND_SUBMIT) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $data["new_submit_time"] = date("Y-m-d H:i:s"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TalentModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                TalentLogApi::write(1, $data["id"], $checkState, "确认提交审核", 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json(["msg" => $success_msg, "code" => 200]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $res = LaModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                throw new ValidateException($error_msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $res = LaModel::insertGetId($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } catch (ValidateException $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($checkState == TalentState::SCND_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $res = ["msg" => $e->getMessage()]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                echo sprintf("<script>parent.TalentInfoInfoDlg.infoCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                exit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json(["msg" => $e->getMessage()]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ($res) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return json(["code" => 200, "msg" => "保存成功", "obj" => ["id" => $data["id"], "checkState" => $data["checkState"]]]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new ValidateException("保存失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (ValidateException $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj = new \stdClass(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->code = 500; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $responseObj->msg = $e->getMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return json($responseObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } catch (\think\Exception $e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $res = ["msg" => "发生预料外错误,请联系管理员处理,错误代码:" . $e->getCode()]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $res = ["code" => 500, "msg" => "发生预料外错误,请联系管理员处理,错误代码:" . $e->getCode()]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $logInfo = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "enterprise_id" => $this->user["uid"], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "data" => $data, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -256,48 +318,35 @@ class LivingAllowance extends EnterpriseController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "errMsg" => $e->getMessage() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             ]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Log::write($logInfo, "error"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($checkState == TalentState::SCND_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                echo sprintf("<script>parent.TalentInfoInfoDlg.infoCallback(%s);</script>", json_encode($res)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                exit(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json($res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return json($res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public function delete() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $id = $this->request->param("talentInfoId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $info = Talent::chkIsOwner($id, $this->user["uid"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!$info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $id = $this->request->param("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $info = CommonLaApi::getInfoById($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!$info || $info["enterpriseId"] != $this->user["uid"]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return json(["msg" => "操作失败"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $checkState = $info["checkState"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (in_array($checkState, [0, 1])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $log = TalentLogApi::getLastLog($id, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($log["state"] > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                //有提交审核记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return json(["msg" => "该申报已提交审核,无法删除"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($checkState != LaState::LA_SAVE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return json(["msg" => "该申报已提交审核,无法删除"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        TalentModel::delete($id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $where = [["mainId", "=", $id], ["type", "=", ProjectState::LIVINGALLOWANCE]]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $list = Db::table("new_talent_file")->where($where)->select()->toArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        foreach ($list as $key => $file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!empty($file["url"])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $filepath = "storage/" . $file["url"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (file_exists($filepath)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    @unlink($filepath); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Db::table("new_talent_file")->delete($file["id"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $data["id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $data["delete"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        TalentModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return json(["msg" => "删除成功"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//    public function mixDelete() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        $id = $this->request->param("talentInfoId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        $info = TalentApi::chkIsOwner($id, $this->user["uid"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (!$info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            return json(["msg" => "操作失败"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        $checkState = $info["checkState"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        if (in_array($checkState, [0, TalentState::SCND_SAVE])) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            $data["id"] = $id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            $data["delete"] = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            TalentModel::update($data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//            return json(["msg" => "删除成功"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//        return json(["msg" => "该申报已提交审核,无法删除"]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |