param('page', 1); $limit = $request->param('limit', 10); $where = [ 'personnel_id' => $this->member_id, 'page' => $page, 'limit' => $limit ]; try { $service = new ContractService(); $res = $service->getMyContracts($where); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取合同列表失败:' . $e->getMessage()); } } /** * 获取合同详情 * @param Request $request * @return mixed */ public function detail(Request $request) { $contract_id = $request->param('id', 0); if (empty($contract_id)) { return fail('合同ID不能为空'); } $where = [ 'id' => $contract_id ]; try { $service = new ContractService(); $res = $service->getContractDetail($where); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取合同详情失败:' . $e->getMessage()); } } /** * 签订合同 * @param Request $request * @return mixed */ public function sign(Request $request) { $contract_id = $request->param('contract_id', 0); $sign_file = $request->param('sign_file', ''); if (empty($contract_id)) { return fail('合同ID不能为空'); } if (empty($sign_file)) { return fail('签名文件不能为空'); } $data = [ 'contract_id' => $contract_id, 'personnel_id' => $this->member_id, 'sign_file' => $sign_file ]; try { $service = new ContractService(); $res = $service->signContract($data); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('签订合同失败:' . $e->getMessage()); } } /** * 获取合同签订状态 * @param Request $request * @return mixed */ public function signStatus(Request $request) { $contract_id = $request->param('contract_id', 0); if (empty($contract_id)) { return fail('合同ID不能为空'); } $where = [ 'contract_id' => $contract_id, 'personnel_id' => $this->member_id ]; try { $service = new ContractService(); $res = $service->getSignStatus($where); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取签订状态失败:' . $e->getMessage()); } } /** * 获取员工合同签署表单配置 * @param Request $request * @return mixed */ public function getSignForm(Request $request) { $contract_id = $request->param('contract_id', 0); if (empty($contract_id)) { return fail('合同ID不能为空'); } $where = [ 'contract_id' => $contract_id, 'personnel_id' => $this->member_id ]; try { $service = new ContractService(); $res = $service->getStaffContractSignForm($where); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取签署表单失败:' . $e->getMessage()); } } /** * 下载合同文件 * @param Request $request * @return mixed */ public function download(Request $request) { $contract_id = $request->param('contract_id', 0); if (empty($contract_id)) { return fail('合同ID不能为空'); } $where = [ 'contract_id' => $contract_id, 'personnel_id' => $this->member_id ]; try { $service = new ContractService(); $res = $service->downloadContract($where); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('下载合同失败:' . $e->getMessage()); } } /** * 获取学生合同签署表单配置 * @param Request $request * @return mixed */ public function getStudentContractSignForm(Request $request) { $contract_id = $request->param('contract_id', 0); $student_id = $request->param('student_id', 0); if (empty($contract_id)) { return fail('合同ID不能为空'); } if (empty($student_id)) { return fail('学生ID不能为空'); } $params = [ 'contract_id' => $contract_id, 'student_id' => $student_id ]; try { $service = new ContractSignFormService(); $res = $service->getStudentContractSignForm($params); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取签署表单失败:' . $e->getMessage()); } } /** * 根据签署记录ID获取学生合同签署表单配置(新方法) * 支持按签署关系区分不同订单的签署字段 * @param Request $request * @return mixed */ public function getStudentContractSignFormBySignId(Request $request) { $contract_sign_id = $request->param('contract_sign_id', 0); $student_id = $request->param('student_id', 0); if (empty($contract_sign_id)) { return fail('合同签署记录ID不能为空'); } if (empty($student_id)) { return fail('学生ID不能为空'); } $params = [ 'contract_sign_id' => $contract_sign_id, 'student_id' => $student_id ]; try { $service = new ContractSignFormService(); $res = $service->getStudentContractSignFormBySignId($params); if (!$res['code']) { return fail($res['msg']); } return success($res['data']); } catch (\Exception $e) { return fail('获取签署表单失败:' . $e->getMessage()); } } /** * 提交学生合同签署 * @param Request $request * @return mixed */ public function submitStudentContractSign(Request $request) { $contract_id = $request->param('contract_id', 0); $student_id = $request->param('student_id', 0); $form_data = $request->param('form_data', []); $signature_data = $request->param('signature_data', ''); if (empty($contract_id)) { return fail('合同ID不能为空'); } if (empty($student_id)) { return fail('学生ID不能为空'); } if (empty($form_data)) { return fail('表单数据不能为空'); } $params = [ 'contract_id' => $contract_id, 'student_id' => $student_id, 'form_data' => $form_data, 'signature_data' => $signature_data ]; try { $service = new ContractSignFormService(); $res = $service->submitStudentContractSign($params); if (!$res['code']) { return fail($res['msg']); } return success($res['data'], '合同签署成功'); } catch (\Exception $e) { return fail('合同签署失败:' . $e->getMessage()); } } }