From 40121a460384b91a1ce5940413e1eb42ac26fd28 Mon Sep 17 00:00:00 2001 From: chenbo <709206448@qq.com> Date: Thu, 7 Sep 2023 15:18:57 +0800 Subject: [PATCH] =?UTF-8?q?add:1.=E4=BC=81=E4=B8=9A=E5=AE=9E=E5=90=8D?= =?UTF-8?q?=E8=AE=A4=E8=AF=81=E6=97=B6=E5=8A=A0=E4=B8=8A=E6=B3=95=E4=BA=BA?= =?UTF-8?q?=E8=BA=AB=E4=BB=BD=E8=AF=81=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=90=8E?= =?UTF-8?q?=E7=BB=AD=E7=AD=BE=E7=BA=A6=E6=97=B6=E5=8F=AF=E7=94=A8=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E8=AF=86=E5=88=AB=EF=BC=8C=E9=A2=84=E7=95=99=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7=E5=90=8E=E7=BB=AD=E5=8F=AF=E8=83=BD=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=9F=AD=E4=BF=A1=E9=AA=8C=E8=AF=81=E3=80=822.?= =?UTF-8?q?=E5=85=AC=E5=8F=B8=E5=88=9B=E5=BB=BA=E6=97=B6=E5=8D=B3=E7=9F=AD?= =?UTF-8?q?=E4=BF=A1=E5=91=8A=E7=9F=A5=E5=85=AC=E5=8F=B8=E6=B3=95=E4=BA=BA?= =?UTF-8?q?=E4=BD=9C=E4=BA=BA=E8=84=B8=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/adminapi/controller/CompanyController.php | 7 +- app/api/controller/HetongController.php | 18 ++++- app/api/controller/JunziqianController.php | 5 +- app/common/enum/notice/NoticeEnum.php | 4 ++ app/common/logic/CompanyLogic.php | 66 ++++++++++++++++++- 5 files changed, 92 insertions(+), 8 deletions(-) diff --git a/app/adminapi/controller/CompanyController.php b/app/adminapi/controller/CompanyController.php index cf526a44b..7b3afb172 100644 --- a/app/adminapi/controller/CompanyController.php +++ b/app/adminapi/controller/CompanyController.php @@ -193,6 +193,8 @@ class CompanyController extends BaseAdminController 'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png', //$qualification['business_license'], 'master_name' => $company['master_name'], 'master_email' => $company['master_email'], + 'master_phone' => $company['master_phone'], + 'master_id_card' => $company['master_id_card'], 'id' => $company['id'], ]; $res = app(JunziqianController::class)->EnterpriseCertification($data); @@ -220,6 +222,8 @@ class CompanyController extends BaseAdminController 'business_license' => 'https://lihai001.oss-cn-chengdu.aliyuncs.com/def/561f8202305171526091317.png', //$qualification['business_license'], 'master_name' => $company['master_name'], 'master_email' => $company['master_email'], + 'master_phone' => $company['master_phone'], + 'master_id_card' => $company['master_id_card'], ]; $res = app(JunziqianController::class)->organizationReapply($data); if ($res->success == true) { @@ -260,9 +264,6 @@ class CompanyController extends BaseAdminController if (empty($company)) { return $this->fail("公司不存在"); } - if (empty($company['master_face'])) { - return $this->fail("未上传主联系人头像信息,无法上传企业人脸"); - } if(empty($company['master_id_card'])) { return $this->fail("主联系人证件号为空,无法上传企业人脸"); } diff --git a/app/api/controller/HetongController.php b/app/api/controller/HetongController.php index 2edb83109..15f4354a5 100644 --- a/app/api/controller/HetongController.php +++ b/app/api/controller/HetongController.php @@ -19,7 +19,7 @@ class HetongController extends BaseApiController { - public array $notNeedLogin = ['url','info']; + public array $notNeedLogin = ['url','info', 'toFaceCreate']; public function url() { @@ -55,4 +55,20 @@ class HetongController extends BaseApiController } return '

:)

'; } + + // 用户做人脸识别时,作跳板的短信链接 + public function toFaceCreate() + { + $id = Request()->get('id'); + $msg='地址不存在'; + if ($id) { + $find = Db::name('company')->where('id', $id)->find(); + if ($find && $find['face_create_url']) { + return redirect($find['face_create_url']); + } else { + $msg='参数错误'; + } + } + return '

:)

'.$msg.'

'; + } } diff --git a/app/api/controller/JunziqianController.php b/app/api/controller/JunziqianController.php index f913747a2..e8f4a3fcc 100644 --- a/app/api/controller/JunziqianController.php +++ b/app/api/controller/JunziqianController.php @@ -77,6 +77,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"]; // 法人手机号 预留 签约时短信验证需要 if (isset($data['master_email'])) { $request->emailOrMobile = $data['master_email']; //邮箱 } @@ -99,6 +101,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->emailOrMobile = $data['master_email']; //邮箱 //发起创建企业请求 $response = $requestUtils->doPost("/v2/user/organizationReapply", $request); @@ -167,7 +171,6 @@ class JunziqianController extends BaseApiController $request-> legalPersonName = $data['master_name']; $request-> legalIdentityCard = $data['master_id_card'];//法人证件号 $request-> legalMobile = $data['master_phone']; - $request-> facePerType = 1; // 1代理人 $request-> faceAgantIdenName = $data['master_name']; $request-> faceAgantIdenCard = $data['master_id_card']; $request-> backUrl = env('url.url_prefix').'/mobile'; // 做完人脸识别后,指定跳转到供销系统mobile首页 diff --git a/app/common/enum/notice/NoticeEnum.php b/app/common/enum/notice/NoticeEnum.php index 646d37451..7f8069370 100755 --- a/app/common/enum/notice/NoticeEnum.php +++ b/app/common/enum/notice/NoticeEnum.php @@ -40,6 +40,8 @@ class NoticeEnum const FCHT = 106; const WQTZ = 107; + const FACE_CREATE = 108; + /** * 验证码场景 @@ -95,6 +97,7 @@ class NoticeEnum self::WQ => '网签短信', self::FCHT => '废除合同', self::WQTZ => '网签通知', + self::FACE_CREATE => '人脸识别上传通知', ]; if ($flag) { @@ -129,6 +132,7 @@ class NoticeEnum 'FCHT'=>self::FCHT, 'WQTZ'=>self::WQTZ, + 'FACE_CREATE'=>self::FACE_CREATE, ]; return $scene[$tag] ?? ''; } diff --git a/app/common/logic/CompanyLogic.php b/app/common/logic/CompanyLogic.php index 3904e3691..c204eedc3 100644 --- a/app/common/logic/CompanyLogic.php +++ b/app/common/logic/CompanyLogic.php @@ -59,7 +59,6 @@ class CompanyLogic extends BaseLogic // 手机号不能重复 $companyInfo = Company::where(['master_phone'=>$params['master_phone']])->find(); if (!empty($companyInfo)) { - Db::rollback(); throw new Exception('手机号已存在'); } $arr=[ @@ -74,7 +73,7 @@ class CompanyLogic extends BaseLogic 'address' => $params['address'], 'company_type' => $params['company_type'], 'master_name' => $params['master_name'], - 'master_id_card' => $params['id_card'], // 主联系人证件号 + 'master_id_card' => $params['id_card'], // 主联系人证件号 todo DDL 新增字段 'master_position' => $params['master_position'], 'master_phone' => $params['master_phone'], 'master_email' => $params['master_email'], @@ -132,6 +131,9 @@ class CompanyLogic extends BaseLogic 'company_type'=>$params['company_type'], ]; TaskScheduling::create($scheduling); + + // 企业人脸校验上传 + self::originationFaceCreate($data); Db::commit(); return true; } catch (\Exception $e) { @@ -141,6 +143,64 @@ class CompanyLogic extends BaseLogic } } + public static function originationFaceCreate($data) + { + // 人脸识别校验上传 + $organizationFaceCreateData = [ + 'company_name' => $data['company_name'], + 'organization_code' => $data['organization_code'], + 'master_name' => $data['master_name'], + 'master_id_card' => $data['master_id_card'], + 'master_email' => $data['master_email'], + 'master_phone' => $data['master_phone'], + 'id' => $data['id'], + ]; + $sms = [ + 'mobile' => $data['master_phone'], + 'name' => $data['master_name'], + 'code' => 'api/Hetong/toFaceCreate?id=' . $data['id'], + 'scene' => 'FACE_CREATE', + 'type' => '' + ]; + $smsRes = SmsLogic::contractUrl($sms); + // 公司数据合法性校验 + $checkCompany = self::companyCheck($organizationFaceCreateData); + if ($checkCompany !== true){ + throw new Exception($checkCompany); + } + + $res = app(JunziqianController::class)->organizationFaceCreate($data); + if ($res->success == true && !empty($res->data)) { + // 保存人脸识别地址 todo 新增字段的DDL + Company::where('id',$data['id'])->update(['face_create_url'=>$res->data]); + // 发送短信给法人 + $sms = [ + 'mobile' => $data['master_phone'], + 'name' => $data['master_name'], + 'code' => 'api/Hetong/toFaceCreate?id=' . $data['id'], + 'scene' => 'FACE_CREATE', + 'type' => '' + ]; + $smsRes = SmsLogic::contractUrl($sms); + if ($smsRes != true) { + throw new Exception(SmsLogic::getError()); + } + } else { + throw new Exception($res->msg); + } + } + private static function companyCheck($company) { + if (empty($company)) { + return self::setError("公司不存在"); + } + if(empty($company['master_id_card'])) { + return self::setError("主联系人身份证为空,无法进行人脸识别"); + } + if(empty($company['master_email'])) { + return self::setError("主联系人邮箱为空,无法进行人脸识别"); + } + return true; + } /** * @notes 编辑 @@ -154,7 +214,7 @@ class CompanyLogic extends BaseLogic Db::startTrans(); try { // 手机号不能重复 - $companyInfo = Company::where(['master_phone'=>$params['master_phone']])->find(); + $companyInfo = Company::where(['master_phone'=>$params['master_phone']])->where('id','<>',$params['id'])->find(); if (!empty($companyInfo)) { Db::rollback(); throw new Exception('手机号已存在');