From 26183f80f8de9310747831d81eef6c9f2552c7b5 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Sat, 9 Sep 2023 11:42:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contract/ContractController.php | 89 ++++++++++-------- app/api/controller/JunziqianController.php | 93 ++++++++++++------- 2 files changed, 112 insertions(+), 70 deletions(-) diff --git a/app/adminapi/controller/contract/ContractController.php b/app/adminapi/controller/contract/ContractController.php index dd4ec7e8d..2d33b86f1 100644 --- a/app/adminapi/controller/contract/ContractController.php +++ b/app/adminapi/controller/contract/ContractController.php @@ -114,14 +114,14 @@ class ContractController extends BaseAdminController { $params = Request::param(); $file = $params['file']; - $res = Contract::where('id', $params['id'])->update(['file' => $file,'check_status'=>2]); + $res = Contract::where('id', $params['id'])->update(['file' => $file, 'check_status' => 2]); if ($res) { - $find=Contract::where('id', $params['id'])->with(['party_a_info'])->field('type,party_b,party_a') - ->find()->toArray(); - if($find['type']==1){ - $find['party_b_info'] =Company::where('id', $find['party_b'])->field('company_name name,master_phone phone')->find()->toArray(); - }else{ - $find['party_b_info'] =User::where('id', $find['party_b'])->field('nickname name,mobile phone')->find()->toArray(); + $find = Contract::where('id', $params['id'])->with(['party_a_info'])->field('type,party_b,party_a') + ->find()->toArray(); + if ($find['type'] == 1) { + $find['party_b_info'] = Company::where('id', $find['party_b'])->field('company_name name,master_phone phone')->find()->toArray(); + } else { + $find['party_b_info'] = User::where('id', $find['party_b'])->field('nickname name,mobile phone')->find()->toArray(); } $a = [ 'mobile' => $find['party_a_info']['master_phone'], @@ -137,45 +137,58 @@ class ContractController extends BaseAdminController SmsLogic::contractUrl($b); return $this->success('上传成功', [], 1, 1); } else { - if($res==0){ + if ($res == 0) { return $this->success('没有更新', [], 1, 1); } return $this->fail('上传失败'); } } - //**发送短信 */ 接口可能要做调整 - - public function postsms() - { - $params = Request::param(); - $find = Db::name('contract')->where('id', $params['id']) - ->withAttr('contract_type_name', function ($value, $data) { - return Db::name('dict_data')->where('id', $data['contract_type'])->value('name'); - }) - ->withAttr('user_info', function ($value, $data) { - if($data['type']==1){ - return Db::name('admin')->where('id', $data['party_b'])->field('name,phone')->find(); - }else{ - return Db::name('user')->where('id', $data['party_b'])->field('nickname name,mobile phone')->find(); - } - }) - ->find(); - if ($find && $find['url'] != '') { - //发送短信 - $sms = [ - 'mobile' => $find['user_info']['phone'], - 'name' => $find['user_info']['name'], - 'type' => '《' . $find['contract_type_name'] . '》', - 'code' => 'api/Hetong/url?id=' . $find['id'], - 'scene' => 'WQ' - ]; - $result = SmsLogic::contractUrl($sms); - if (true === $result) { - return $this->success('发送成功'); + //**发送短信 */ 接口可能要做调整 + + public function postsms() + { + $params = Request::param(); + $find = Db::name('contract')->where('id', $params['id']) + ->withAttr('contract_type_name', function ($value, $data) { + return Db::name('dict_data')->where('id', $data['contract_type'])->value('name'); + }) + ->withAttr('user_info', function ($value, $data) { + if ($data['type'] == 1) { + return Db::name('admin')->where('id', $data['party_b'])->field('name,phone')->find(); } else { - return $this->fail(SmsLogic::getError()); + return Db::name('user')->where('id', $data['party_b'])->field('nickname name,mobile phone')->find(); } + }) + ->find(); + if ($find && $find['url'] != '') { + //发送短信 + $sms = [ + 'mobile' => $find['user_info']['phone'], + 'name' => $find['user_info']['name'], + 'type' => '《' . $find['contract_type_name'] . '》', + 'code' => 'api/Hetong/url?id=' . $find['id'], + 'scene' => 'WQ' + ]; + $result = SmsLogic::contractUrl($sms); + if (true === $result) { + return $this->success('发送成功'); + } else { + return $this->fail(SmsLogic::getError()); } } + } + + public function evidence() + { + $parms = Request::param(); + $detail=ContractLogic::detail($parms); + $request = array( + "applyNo" => $detail['contract_no'], + "fullName" => $detail['party_a_info']['company_name'], + "identityCard" => $detail['party_a_info']['organization_code'], + "identityType" => 12, + ); + return app(JunziqianController::class)->EvidenceDownload($request); + } } diff --git a/app/api/controller/JunziqianController.php b/app/api/controller/JunziqianController.php index cb5c2b614..f030e131d 100644 --- a/app/api/controller/JunziqianController.php +++ b/app/api/controller/JunziqianController.php @@ -77,14 +77,14 @@ class JunziqianController extends BaseApiController $request->organizationRegNo = $data['organization_code']; $request->organizationRegImg = $data['business_license']; //new CURLFile('D:/tmp/test.png',null,"test.png"); $request->legalName = $data["master_name"]; //法人 -// $request->legalIdentityCard = $data["master_id_card"]; // 法人身份证 签约时人脸识别需要 -// $request->legalMobile = $data["master_phone"]; // 法人手机号 预留 签约时短信验证需要 + // $request->legalIdentityCard = $data["master_id_card"]; // 法人身份证 签约时人脸识别需要 + // $request->legalMobile = $data["master_phone"]; // 法人手机号 预留 签约时短信验证需要 if (isset($data['master_email'])) { $request->emailOrMobile = $data['master_email']; //邮箱 } // $request->notifyUrl = env('url.url_prefix').'/notifyAuthentication?ids=22222'; - $request->notifyUrl = env('url.url_prefix').'/notifyAuthentication?id='.$data['id']; + $request->notifyUrl = env('url.url_prefix') . '/notifyAuthentication?id=' . $data['id']; // halt($request); //发起创建企业请求 $response = $requestUtils->doPost("/v2/user/organizationCreate", $request); @@ -102,8 +102,8 @@ class JunziqianController extends BaseApiController $request->organizationRegNo = $data['organization_code']; $request->organizationRegImg = $data['business_license']; //new CURLFile('D:/tmp/test.png',null,"test.png"); $request->legalName = $data["master_name"]; //法人 -// $request->legalIdentityCard = $data["master_id_card"]; // 法人身份证 签约时人脸识别需要 -// $request->legalMobile = $data["master_phone"]; // 法人手机号 预留 短信验证需要 + // $request->legalIdentityCard = $data["master_id_card"]; // 法人身份证 签约时人脸识别需要 + // $request->legalMobile = $data["master_phone"]; // 法人手机号 预留 短信验证需要 $request->emailOrMobile = $data['master_email']; //邮箱 //发起创建企业请求 $response = $requestUtils->doPost("/v2/user/organizationReapply", $request); @@ -141,18 +141,18 @@ class JunziqianController extends BaseApiController //签约 public function Signing($data, $id, $notify = '') { - if($notify==''){ - $notify=env('url.url_prefix').'/notify_url'; + if ($notify == '') { + $notify = env('url.url_prefix') . '/notify_url'; } $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); $request = new ApplySignReq(); $request->contractName = $data['name']; $request->signatories = $data['signatories']; //签约方 -// $request->faceThreshold = 79; // 人脸识别阀值:默认等级(1-100之间整数),建议范围(60-79) + // $request->faceThreshold = 79; // 人脸识别阀值:默认等级(1-100之间整数),建议范围(60-79) $request->serverCa = 1; //是否需要服务端云证书 $request->fileType = 1; //合同上传方式 url $request->url = $data['url']; - $request->notifyUrl = $notify.'?id='.$id; + $request->notifyUrl = $notify . '?id=' . $id; $request->needQifengSign = 1; //发起PING请求 // halt($request); @@ -164,19 +164,19 @@ class JunziqianController extends BaseApiController public function OrganizationFaceCreate($data) { $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request=new OrganizationCreateReq(); - $request-> orderNo = $data['id']; - $request-> email = $data['master_email']; - $request-> enterpriseName = $data['company_name']; - $request-> identityNo = $data['organization_code']; -// $request-> facePerType = 0; - $request-> legalPersonName = $data['master_name']; - $request-> legalIdentityCard = $data['master_id_card'];//法人证件号 - $request-> legalMobile = $data['master_phone']; - $request-> faceAgantIdenName = $data['master_name']; - $request-> faceAgantIdenCard = $data['master_id_card']; - $request-> backUrl = env('url.url_prefix').'/api/Hetong/notifyOrganizationFaceCreate'; - $response = $requestUtils->doPost("/v2/user/organizationFaceCreate",$request); + $request = new OrganizationCreateReq(); + $request->orderNo = $data['id']; + $request->email = $data['master_email']; + $request->enterpriseName = $data['company_name']; + $request->identityNo = $data['organization_code']; + // $request-> facePerType = 0; + $request->legalPersonName = $data['master_name']; + $request->legalIdentityCard = $data['master_id_card']; //法人证件号 + $request->legalMobile = $data['master_phone']; + $request->faceAgantIdenName = $data['master_name']; + $request->faceAgantIdenCard = $data['master_id_card']; + $request->backUrl = env('url.url_prefix') . '/api/Hetong/notifyOrganizationFaceCreate'; + $response = $requestUtils->doPost("/v2/user/organizationFaceCreate", $request); return $response; } @@ -189,7 +189,7 @@ class JunziqianController extends BaseApiController $request->serverCa = 1; //是否需要服务端云证书 $request->fileType = 1; //合同上传方式 url $request->url = $data['url']; - $request->notifyUrl = $notify.'?id='.$id; + $request->notifyUrl = $notify . '?id=' . $id; $request->needQifengSign = 1; //发起PING请求 @@ -198,7 +198,8 @@ class JunziqianController extends BaseApiController return $response; } - public function downloadVehicleContractFile($applyNo) { + public function downloadVehicleContractFile($applyNo) + { $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); $contract_url = VehicleContract::where('contract_no', $applyNo)->value('contract_url'); if ($contract_url && !empty($contract_url)) { @@ -211,28 +212,29 @@ class JunziqianController extends BaseApiController $response = $requestUtils->doPost("/v2/sign/linkFile", $request); if ($response->success) { $this->getDownload($response->data, root_path() . 'public/uploads/vehicle_contract/' . $applyNo . '.pdf'); - return env('project.website_domain').'/uploads/vehicle_contract/' . $applyNo . '.pdf'; + return env('project.website_domain') . '/uploads/vehicle_contract/' . $applyNo . '.pdf'; } else { return false; } } - public function downloadVehicleContractEvidence($applyNo,$companyName,$companyCode) { + public function downloadVehicleContractEvidence($applyNo, $companyName, $companyCode) + { //构建请求工具 - $requestUtils=new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); + $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); //初始化合同参数 - $request=array( + $request = array( "applyNo" => $applyNo, "fullName" => $companyName, //签约人名称(合同发起接口中传入的签署人姓名) "identityCard" => $companyCode, //统一社会信用代码 "identityType" => 12, //证件类型 1身份证, 2护照, 3台胞证, 4港澳居民来往内地通行证, 11营业执照, 12统一社会信用代码, 20子账号, 99其他 "evidenceType" => 0 //证据类型,0图片,1视频,2人脸证据 ); - $response = $requestUtils->doPost("/v2/sign/evidenceLinkFile",$request); + $response = $requestUtils->doPost("/v2/sign/evidenceLinkFile", $request); if ($response->success) { $resData = (array)$response->data; $this->getDownload($resData['link'], root_path() . 'public/uploads/vehicle_contract/' . $applyNo . '.png'); - return env('project.website_domain').'/uploads/vehicle_contract/' . $applyNo . '.png'; + return env('project.website_domain') . '/uploads/vehicle_contract/' . $applyNo . '.png'; } else { return false; } @@ -275,7 +277,7 @@ class JunziqianController extends BaseApiController $request->serverCa = 1; //是否需要服务端云证书 $request->fileType = 3; $request->htmlContent = $data['content']; - $request->notifyUrl = env('url.url_prefix').'/notify_url?id=' . $id; + $request->notifyUrl = env('url.url_prefix') . '/notify_url?id=' . $id; $request->needQifengSign = 1; //发起PING请求 @@ -283,6 +285,9 @@ class JunziqianController extends BaseApiController return $response; } + /** + * 下载合同 + */ public function download_file($applyNo) { $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); @@ -298,7 +303,31 @@ class JunziqianController extends BaseApiController if ($response->success == true) { $this->getDownload($response->data, root_path() . 'public/uploads/contract/' . $applyNo . '.pdf'); Db::name('contract')->where('contract_no', $applyNo)->update(['contract_url' => '/uploads/contract/' . $applyNo . '.pdf']); - return $this->success('获取成功', ['url' => env('url.url_prefix').'/uploads/contract/' . $applyNo . '.pdf']); + return $this->success('获取成功', ['url' => env('url.url_prefix') . '/uploads/contract/' . $applyNo . '.pdf']); + } else { + return $this->fail('获取失败'); + } + } + /** + * 保全后合同文件及证据包下载 + */ + public function EvidenceDownload($param) + { + //初始化请求参数 + $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); + + $request = array( + "applyNo" => $param['applyNo'], + "fullName" => $param['fullName'], + "identityCard" => $param['identityCard'], + "identityType" => 12, + "dealType" => 1, + ); + $response = $requestUtils->doPost("/v2/sign/presLinkFile", $request); + if ($response->success == true) { + $this->getDownload($response->data, root_path() . 'public/uploads/evidence/' . $param['applyNo'] . '.zip'); + Db::name('contract')->where('contract_no', $param['applyNo'])->update(['contract_url' => '/uploads/evidence/' . $param['applyNo'] . '.pdf']); + return $this->success('获取成功', ['url' => env('url.url_prefix') . '/uploads/evidence/' . $param['applyNo'] . '.zip']); } else { return $this->fail('获取失败'); }