This commit is contained in:
mkm 2023-09-09 11:42:46 +08:00
parent fe040f1575
commit 26183f80f8
2 changed files with 112 additions and 70 deletions

View File

@ -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);
}
}

View File

@ -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('获取失败');
}