diff --git a/app/adminapi/controller/contract/ContractController.php b/app/adminapi/controller/contract/ContractController.php deleted file mode 100644 index 2d3bb766..00000000 --- a/app/adminapi/controller/contract/ContractController.php +++ /dev/null @@ -1,100 +0,0 @@ -dataLists(new ContractLists()); - } - - public function detail(): \think\response\Json - { - $params = $this->request->get(['id']); - $result = ContractLogic::detail($params); - return $this->data($result); - } - - public function wind_control(): \think\response\Json - { - $params = $this->request->param(); - $file = $params['file']; - $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'] = WorkerUser::where('id', $find['party_b'])->field('nickname name,mobile phone')->find()->toArray(); - } - $a = [ - 'mobile' => $find['party_a_info']['master_phone'], - 'name' => $find['party_a_info']['company_name'], - 'scene' => 'WQTZ' - ]; - SmsLogic::contractUrl($a); - $b = [ - 'mobile' => $find['party_b_info']['phone'], - 'name' => $find['party_b_info']['name'], - 'scene' => 'WQTZ' - ]; - SmsLogic::contractUrl($b); - return $this->success('上传成功', [], 1, 1); - } else { - if ($res == 0) { - return $this->success('没有更新', [], 1, 1); - } - return $this->fail('上传失败'); - } - } - - public function postsms() - { - $params = $this->request->param(); - $find = Db::connect('mysql2')->name('la_contract')->where('id', $params['id']) - ->withAttr('contract_type_name', function ($value, $data) { - return Db::connect('mysql2')->name('la_dict_data')->where('id', $data['contract_type'])->value('name'); - }) - ->withAttr('user_info', function ($value, $data) { - if ($data['type'] == 1) { - return Db::connect('mysql2')->name('la_admin')->where('id', $data['party_b'])->field('name,phone')->find(); - } else { - return Db::connect('mysql2')->name('la_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()); - } - } - } - - } diff --git a/app/adminapi/controller/contract/VehicleContractController.php b/app/adminapi/controller/contract/VehicleContractController.php deleted file mode 100644 index b11d0a85..00000000 --- a/app/adminapi/controller/contract/VehicleContractController.php +++ /dev/null @@ -1,300 +0,0 @@ -request->post(['id','file','cars']); - if(empty($params['id']) || empty($params['file'])){ - return $this->fail('缺少必要参数'); - } - //获取合同信息 - $vehicle_contract = VehicleContract::where('id',$params['id'])->findOrEmpty(); - if($vehicle_contract->isEmpty()){ - return $this->fail('合同信息错误'); - } - if($vehicle_contract['type']==0 && $vehicle_contract['contract_logistic_id'] != 0){ - if(empty($params['cars'])){ - return $this->fail('缺少必要参数cars'); - } - $cars = json_decode($params['cars'],true); - if(empty($cars)){ - return $this->fail('参数cars无效'); - } - } - if($vehicle_contract['status'] != 0){ - return $this->fail('合同状态错误'); - } - //更新本地 - try { - $data = [ - 'id' => $vehicle_contract['contract_logistic_id'], - 'file' => $params['file'], - 'status' => 1, - ]; - //判断合同类型 - if($vehicle_contract['type'] == 0 && $vehicle_contract['contract_logistic_id'] != 0){ - $data['cars_info'] = $params['cars']; - } - if(!empty($vehicle_contract['contract_logistic_id'])){ - //更新物流系统 - curl_post(env('project.logistic_domain').'/api/contractUpdate',$data); - } - unset($data['id']); - VehicleContract::where('id', $params['id'])->update($data); - - }catch (\Exception $e){ - return $this->fail($e->getMessage()); - } - return $this->success('上传成功', [], 1, 1); - } - - //风控中心发起合同 - public function initiatingRentCarContract(): Json - { - //获取参数 - $params = $this->request->post(['id']); - if(empty($params['id'])){ - return $this->fail('缺少必要参数'); - } - //获取数据 - $contract = VehicleContract::where('id',$params['id'])->findOrEmpty(); - if($contract->isEmpty()){ - return $this->fail('数据不存在'); - } - if(!($contract['status'] == 1 || ($contract['status'] == 2 && $contract['signing_timer'] != 2))){ - return $this->fail('合同状态错误'); - } - $signData = [ - 'name' => $contract['company_a_name'] . '的合同', - 'signatories' => [ - ['fullName' => $contract['company_a_name'], 'identityType' => 12, 'identityCard' => $contract['company_a_code'], 'email' => $contract['company_a_email'], 'noNeedVerify' => 1, 'signLevel' => 1], - ['fullName' => $contract['company_b_name'], 'identityType' => 12, 'identityCard' => $contract['company_b_code'], 'email' => $contract['company_b_email'], 'noNeedVerify' => 1, 'signLevel' => 1] - ], - 'url' => $contract['file'] - ]; - $notify_url = ''; - if($contract['type'] == 0){ - $smsTitle = '《租赁合同》'; - if(empty($contract['contract_logistic_id'])){ - $notify_url = env('project.website_domain').'/api/notify/systemCarRent'; - }else{ - $notify_url = env('project.website_domain').'/api/notify/townCarRent'; - } - }elseif($contract['type'] == 1){ - $smsTitle = '《自有车辆上传合同》'; - $notify_url = env('project.website_domain').'/api/notify/selfCarRent'; - }elseif($contract['type'] == 2){ - $smsTitle = '《解约合同》'; - $notify_url = env('project.website_domain').'/api/notify/cancelRent'; - }elseif($contract['type'] == 3){ - $smsTitle = '《购买合同》'; - $notify_url = env('project.website_domain').'/api/notify/buyCar'; - } - $signRes = app(JunziqianController::class)->VehicleRentSigning($signData, $params['id'],$notify_url); - if ($signRes->success) { - $contract->save([ - 'id' => $contract['id'], - 'contract_no' => $signRes->data, - 'status' => 2, - 'signing_timer' => 0 - ]); - if(!empty($contract['contract_logistic_id'])){ - curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'contract_no' => $signRes->data, - 'status' => 2, - 'signing_timer' => 0 - ]); - } - $this->sendSms($params['id'],$smsTitle); - return $this->success('合同发送成功'); - } else { - return $this->fail($signRes->msg); - } - } - - public function sendSmsAgain(): Json - { - //获取参数 - $id = $this->request->post('id'); - if(empty($id)){ - return $this->fail('参数错误'); - } - //获取数据 - $contract = VehicleContract::where('id',$id)->find(); - if(empty($contract)){ - return $this->fail('数据错误'); - } - if($contract['type'] == 0){ - $smsTitle = '《租赁合同》'; - }elseif($contract['type'] == 1){ - $smsTitle = '《自有车辆上传合同》'; - }elseif($contract['type'] == 2){ - $smsTitle = '《解约合同》'; - }else{ - $smsTitle = '《购买合同》'; - } - $this->sendSms($id,$smsTitle); - return $this->success('发送成功'); - } - - public function sendSms($id,$title): bool{ - //获取合同数据 - $contract = VehicleContract::where('id',$id)->findOrEmpty(); - if (!$contract->isEmpty() && $contract['file'] != '') { - //发送短信 - $data = [ - //甲方 - [ - "applyNo" => $contract['contract_no'], - "fullName" => $contract['company_a_name'], - "identityCard" => $contract['company_a_code'], - "identityType" => 12, - "master_phone" => $contract['company_a_phone'], - "type"=>"party_a" - ], - //乙方 - [ - "applyNo" => $contract['contract_no'], - "fullName" => $contract['company_b_name'], - "identityCard" => $contract['company_b_code'], - "identityType" => 12, - "master_phone" => $contract['company_b_phone'], - "type"=>"party_b" - - ], - ]; - - $url = []; - foreach ($data as $v) { - $res = app(JunziqianController::class)->SigningLink($v); - if (!$res->success) { - return false; - } - if ($v['type'] == 'party_a') { - $url['party_a'] =$res->data; - } else { - $url['party_b'] =$res->data; - } - //发送短信 - $sms = [ - 'mobile' => $v['master_phone'], - 'name' => $v['fullName'], - 'type' => $title, - 'code' => 'api/Hetong/info?id='.$id.'&type='.$v['type'], - 'scene' => 'WQ' - ]; - $scene = NoticeEnum::getSceneByTag($sms['scene']); - if (empty($scene)) { - throw new \Exception('场景值异常'); - } - //发送短信 - event('Notice', [ - 'scene_id' => $scene, - 'params' => $sms - ]); - } - VehicleContract::where('id', $id)->update(['url' => json_encode($url)]); - return true; - }else{ - return false; - } - } - - public function lists(): Json - { - $param = $this->request->get(); - $where = []; - if(isset($param['company_name'])){ - $where[] = ['company_b_name','like','%'.$param['company_name'].'%']; - } - if(isset($param['contract_no'])){ - $where[] = ['contract_no','like','%'.$param['contract_no'].'%']; - } - if(isset($param['status']) && in_array($param['status'],[0,1])){ - if($param['status'] == 1){ - $where[] = ['status','in', '1,2,3']; - }else{ - $where[] = ['status','=', $param['status']]; - } - }else{ - $where[] = ['status','in', '0,1,2,3']; - } - $pageNo = !empty($param['page_no']) ? $param['page_no'] : 1; - $pageSize = !empty($param['page_size']) ? $param['page_size'] : 15; - $data = VehicleContract::where($where) - ->page($pageNo, $pageSize) - ->order('create_time desc') - ->select()->each(function($item){ - $item['cars_info'] = json_decode($item['cars_info'],true); - }); - return $this->success('success',['lists'=>$data->toArray(),'page_no'=>$pageNo,'page_size'=>$pageSize,'count'=>$data->count()]); - } - - public function detail(): Json - { - $id = $this->request->get('id'); - if(empty($id)){ - $this->fail('参数错误'); - } - $data = VehicleContract::where('id',$id)->findOrEmpty(); - if($data->isEmpty()){ - return $this->fail('未查找到数据'); - } - $cars = json_decode($data['cars_info'],true); - //判断合同类型 - if(!empty($data['contract_logistic_id']) && $data['type'] == 0){ - $carList = curl_get(env('project.logistic_domain').'/api/getAvailableVehicles'); - $data['car_list'] = $carList&&$carList['code']==1 ? $carList['data'] : []; - } - if(!empty($cars)){ - foreach ($cars as $k=>$v) { - if($data['type'] == 0){ - $cars[$k]['type'] = 0; - } - if($data['type'] == 1){ - if(empty($v['id'])){ - $cars[$k]['type'] = 1; - }else{ - $rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); - if($rentInfo->isEmpty()){ - $cars[$k]['type'] = 0; - }else{ - $cars[$k]['type'] = $rentInfo['type']; - } - } - } - if($data['type'] == 2){ - $rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); - if($rentInfo->isEmpty()){ - $cars[$k]['type'] = 0; - }else{ - $cars[$k]['type'] = $rentInfo['type']; - } - } - if($data['type'] == 3){ - $rentInfo = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); - if($rentInfo->isEmpty()){ - $cars[$k]['type'] = 2; - }else{ - $cars[$k]['type'] = $rentInfo['type']; - } - } - $cars[$k]['rent_time'] = $data['update_time']; - } - } - $data['cars_info'] = $cars; - return $this->success('success',$data->toArray()); - } - } \ No newline at end of file diff --git a/app/adminapi/lists/contract/ContractLists.php b/app/adminapi/lists/contract/ContractLists.php deleted file mode 100644 index 62c28425..00000000 --- a/app/adminapi/lists/contract/ContractLists.php +++ /dev/null @@ -1,110 +0,0 @@ - ['contract_type', 'contract_no', 'status'], - ]; - } - - - /** - * @notes 获取列表 - * @return array - * @throws \think\db\exception\DataNotFoundException - * @throws \think\db\exception\DbException - * @throws \think\db\exception\ModelNotFoundException - * @author likeadmin - * @date 2023/07/18 14:28 - */ - public function lists(): array - { - $params=$this->request->param(); - $where=[]; - if(isset($params['company_id']) && $params['company_id']!=''){ - $arr= Company::where('company_name','like','%'.$params['company_id'].'%')->column('id'); - if($arr){ - $where[]=['party_a|party_b','in',$arr]; - } - } - if(isset($params['area_manager']) && $params['area_manager']!=''){ - $arr= WorkerAdmin::where('name','like','%'.$params['area_manager'].'%')->column('id'); - if($arr){ - $where[]=['area_manager','in',$arr]; - } - } - return Contract::where($this->searchWhere)->where($where)->with(['companyName','party_a_info','contractType']) - ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select()->each(function ($item, $key) { - if($item->type==1){ - $item->party_b_name=Db::connect('mysql2')->name('la_company')->where('id',$item->party_b)->value('company_name'); - }else{ - $item->party_b_name=Db::connect('mysql2')->name('la_user')->where('id',$item->party_b)->value('nickname'); - } - if(!empty($item->party_a_info)){ - $area_manager_name=Db::connect('mysql2')->name('la_admin')->where('id',$item->party_a_info->area_manager)->value('name'); - if($area_manager_name){ - $item->area_manager_name=$area_manager_name; - }else{ - $item->area_manager_name='暂无片区经理'; - } - }else{ - $item->area_manager_name='暂无片区经理'; - } - $item->contract_type_name=Db::connect('mysql2')->name('la_dict_data')->where('id',$item->contract_type)->value('name'); - $item->status_name=$item->status==1?'已签约':'未签约'; - }) - ->toArray(); - } - - - /** - * @notes 获取数量 - * @return int - * @author likeadmin - * @date 2023/07/18 14:28 - */ - public function count(): int - { - return Contract::where($this->searchWhere)->count(); - } - - } \ No newline at end of file diff --git a/app/api/controller/HetongController.php b/app/api/controller/HetongController.php deleted file mode 100644 index 392ad6fe..00000000 --- a/app/api/controller/HetongController.php +++ /dev/null @@ -1,92 +0,0 @@ -get('id'); - $type = Request()->get('type'); - $params = Request()->param(); - $msg='合同不存在'; - if(empty($type)){ - $msg='参数错误'; - } - if (isset($params['t']) && $params['t'] == 1) { - $find = Db::name('shop_contract')->where('id', $id)->find(); - if ($find && $find['url']) { - $url = json_decode($find['url'], true); - if(isset($url[$type])){ - return redirect($url[$type]); - } - } - } - if ($id && $type) { - $find = Db::name('contract')->where('id', $id)->find(); - if ($find && $find['url']) { - $url = json_decode($find['url'], true); - if(isset($url[$type])){ - return redirect($url[$type]); - } - } - } - return '

:)

'.$msg.'

'; - } - - public function info(){ - $params = $this->request->get(['id','type']); - if(empty($params['id']) || empty($params['type'])){ - return $this->fail('缺少必要参数'); - } - $find = VehicleContract::where('id', $params['id'])->find(); - if (!empty($find) && $find['url']) { - $url = json_decode($find['url'], true); - if(isset($url[$params['type']])){ - return redirect($url[$params['type']]); - } - } - return '

:)

'; - } - - // 用户做人脸识别时,作跳板的短信链接 - public function toFaceCreate(): string|\think\response\Redirect - { - $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.'

'; - } - - public function notifyOrganizationFaceCreate(): string - { - $parmas = Request()->param(); - Log::info(['人脸识别采集校验回调:',$parmas]); - $result = json_decode($parmas['data'], true); - $msg = '人脸采集成功'; - if (isset($result['status']) && $result['status'] == 1) { - // 修改人脸采集状态 - Company::where(['organization_code'=>$result['organizationRegNo']])->update(['face_create_status'=>1]); - } else { - $msg = '采集失败,原因:'.$result['msg']; - // 记录错误日志 - Db::name('company_authentication_fail_log')->insert(['company_id'=>$result['orderNo'], 'log_type'=>2,'fail_reason'=>$msg, 'create_time'=>time()]); - } - return '

:)

'.$msg.'

'; - } - } \ No newline at end of file diff --git a/app/api/controller/NotifyController.php b/app/api/controller/NotifyController.php deleted file mode 100644 index 58240b67..00000000 --- a/app/api/controller/NotifyController.php +++ /dev/null @@ -1,516 +0,0 @@ -get('id'); - if(empty($id)){ - return json(['success' => false, 'msg' => '缺少参数']); - } - //获取合同数据 - $contract = VehicleContract::where('id', $id)->find(); - if (empty($contract)) { - return json(['success' => false, 'msg' => '获取数据失败']); - } - if($contract['status'] != 2){ - return json(['success' => false, 'msg' => '合同状态错误']); - } - if ($contract['signing_timer'] == 0) { - //更新本地合同状态 - $updateLocalRes = VehicleContract::where('id',$contract['id'])->update(['signing_timer'=>1]); - //更新远程 - $updateSverRes =curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'signing_timer' => 1, - ]); - if(!$updateLocalRes || $updateSverRes['code']==0){ - return json(['success' => false, 'msg' => '更新失败']); - } - return json(['success' => true, 'msg' => '成功']); - }else if($contract['signing_timer'] == 1){ - //获取签约后的合同 - $signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']); - $signContractFile = $signContractFile ?? ''; - //获取签约后的证据 - $signContractEvidenceToPartyA = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_a_name'],$contract['company_a_code']); - $signContractEvidenceToPartyA = $signContractEvidenceToPartyA ?? ''; - $signContractEvidenceToPartyB = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_b_name'],$contract['company_b_code']); - $signContractEvidenceToPartyB = $signContractEvidenceToPartyB ?? ''; - $contractEvidence = json_encode([ - 'party_a' => $signContractEvidenceToPartyA, - 'party_b' => $signContractEvidenceToPartyB - ]); - //更新本地合同状态 - $updateLocalRes = VehicleContract::where('id',$contract['id'])->update(['signing_timer'=>2,'status' => 3,'contract_url'=>$signContractFile,'contract_evidence'=>$contractEvidence]); - //将车辆加入到本地租赁列表 - $cars = json_decode($contract['cars_info'], true); - $data = []; - foreach ($cars as $k => $v) { - $hasCar = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); - if($hasCar->isEmpty()){ - $data[$k]['contract_id'] = $contract['id']; - $data[$k]['company_id'] = $contract['company_b_id']; - $data[$k]['car_id'] = $v['id']; - $data[$k]['car_license'] = $v['license']; - $data[$k]['type'] = 0; - $data[$k]['status'] = 0; - $data[$k]['rent_contract_id'] = 0; - $data[$k]['rent_company_id'] = 0; - $data[$k]['rent_time'] = 0; - $data[$k]['create_time'] = strtotime($contract['create_time']); - } - } - $vehicleRent = new VehicleRent(); - $vehicleRent->saveAll($data); - //更新远程 - $updateSverRes = curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'signing_timer' => 2, - 'status' => 3, - 'contract_url'=>$signContractFile, - 'contract_evidence'=>$contractEvidence - ]); - if(!$updateLocalRes || $updateSverRes['code']==0){ - return json(['success' => false, 'msg' => '更新失败']); - }else{ - return json(['success' => true, 'msg' => '更新成功']); - } - } - return json(['success' => true, 'msg' => '更新成功@']); - } - - //系统车辆租赁回来 - public function systemCarRent(): Json - { - //获取参数 - $id = $this->request->get('id'); - if (empty($id)) { - return json(['success' => false, 'msg' => '失败1.1']); - } - //获取合同数据 - $contract = VehicleContract::where('id', $id)->find(); - if (empty($contract)) { - return json(['success' => false, 'msg' => '失败1.2']); - } - if ($contract['type'] != 0) { - return json(['success' => false, 'msg' => '失败1.3']); - } - if ($contract['status'] != 2) { - return json(['success' => false, 'msg' => '失败1.4']); - } - //判断签约方 - if ($contract['signing_timer'] == 0) { - //更新合同的签约次数 - $res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]); - if (!$res) { - return json(['success' => false, 'msg' => '失败1.5']); - } - return json(['success' => true, 'msg' => '成功']); - } else if ($contract['signing_timer'] == 1) { - //获取签约后的合同 - $signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']); - $signContractFile = $signContractFile ?? ''; - //获取签约后的证据 - $signContractEvidenceToPartyA = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_a_name'],$contract['company_a_code']); - $signContractEvidenceToPartyA = $signContractEvidenceToPartyA ?? ''; - $signContractEvidenceToPartyB = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_b_name'],$contract['company_b_code']); - $signContractEvidenceToPartyB = $signContractEvidenceToPartyB ?? ''; - $contractEvidence = json_encode([ - 'party_a' => $signContractEvidenceToPartyA, - 'party_b' => $signContractEvidenceToPartyB - ]); - //更改合同状态 - VehicleContract::where('id', $id)->update(['signing_timer' => 2, 'status' => 3,'contract_url'=>$signContractFile,'contract_evidence'=>$contractEvidence]); - //添加车辆到租赁列表 - $vehicle = json_decode($contract['cars_info'], true); - VehicleRent::where('car_id', $vehicle[0]['id'])->update([ - 'status' => 2, - 'rent_contract_id' => $contract['id'], - 'rent_company_id' => $contract['company_b_id'], - 'rent_time' => time(), - ]); - $party_b = Company::where('id', $contract['company_b_id'])->find(); - //通知物流系统跟新 - curl_post(env('project.logistic_domain').'/api/updateVehicleRent', [], [ - 'car_id' => $vehicle[0]['id'], - 'use_user_id' => $party_b['user_id'], - 'use_user_name' => $party_b['master_name'], - 'use_user_phone' => $party_b['master_phone'] - ]); - return json(['success' => true, 'msg' => '成功']); - } else { - return json(['success' => true, 'msg' => '成功']); - } - } - - //自有车辆租赁回答 - public function selfCarRent(): Json - { - //获取参数 - $id = $this->request->get('id'); - if (empty($id)) { - return json(['success' => false, 'msg' => '失败2.1']); - } - //获取合同数据 - $contract = VehicleContract::where('id', $id)->find(); - if (empty($contract)) { - return json(['success' => false, 'msg' => '失败2.2']); - } - if ($contract['type'] != 1) { - return json(['success' => false, 'msg' => '失败2.3']); - } - if ($contract['status'] != 2) { - return json(['success' => false, 'msg' => '失败2.4']); - } - //判断签约方 - if ($contract['signing_timer'] == 0) { - $res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]); - if (!$res) { - return json(['success' => false, 'msg' => '失败2.5']); - } - return json(['success' => true, 'msg' => '成功']); - } else if ($contract['signing_timer'] == 1) { - //添加车辆到物流系统 - $vehicle = json_decode($contract['cars_info'], true); - $curl_res = curl_post(env('project.logistic_domain').'/api/addSelfCar', [], [ - 'license' => $vehicle[0]['license'], - 'pic' => $vehicle[0]['pic'], - 'company_id' => $contract['company_a_id'], - 'company_name' => $contract['company_a_name'], - 'company_user' => $contract['company_a_user'], - 'company_phone' => $contract['company_a_phone'], - ]); - if (!$curl_res || $curl_res['code'] == 0) { - return json(['success' => false, 'msg' => '失败2.6']); - } - $cars_info = json_encode([['id' => $curl_res['data']['car_id'], 'license' => $vehicle[0]['license']]]); - //获取签约后的合同 - $signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']); - $signContractFile = $signContractFile ?? ''; - //获取签约后的证据 - $signContractEvidenceToPartyA = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_a_name'],$contract['company_a_code']); - $signContractEvidenceToPartyA = $signContractEvidenceToPartyA ?? ''; - $signContractEvidenceToPartyB = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_b_name'],$contract['company_b_code']); - $signContractEvidenceToPartyB = $signContractEvidenceToPartyB ?? ''; - $contractEvidence = json_encode([ - 'party_a' => $signContractEvidenceToPartyA, - 'party_b' => $signContractEvidenceToPartyB - ]); - VehicleContract::where('id', $id)->update(['cars_info'=>$cars_info,'update_time'=>time(),'signing_timer'=>2,'status'=>3,'contract_url'=>$signContractFile,'contract_evidence'=>$contractEvidence]); - VehicleRent::create([ - 'car_id' => $curl_res['data']['car_id'], - 'contract_id' => $contract['id'], - 'company_id' => $contract['company_a_id'], - 'car_license' => $vehicle[0]['license'], - 'status' => 2, - 'rent_time' => time(), - 'rent_contract_id' => $contract['id'], - 'rent_company_id' => $contract['company_b_id'], - 'create_time' => time(), - 'type' => 1 - ]); - $car_id = $curl_res['data']['car_id']; - $party_b = Company::where('id', $contract['company_b_id'])->find(); - //通知物流系统跟新 - curl_post(env('project.logistic_domain').'/api/updateVehicleRent', [], [ - 'car_id' => $car_id, - 'use_user_id' => $party_b['user_id'], - 'use_user_name' => $party_b['master_name'], - 'use_user_phone' => $party_b['master_phone'] - ]); - return json(['success' => true, 'msg' => '成功']); - } else { - return json(['success' => true, 'msg' => '成功']); - } - } - - //解除合同回调 - public function cancelRent() - { - //获取参数 - $id = $this->request->get('id'); - if (empty($id)) { - return json(['success' => false, 'msg' => '失败3.1']); - } - //获取合同数据 - $contract = VehicleContract::where('id', $id)->find(); - if (empty($contract)) { - return json(['success' => false, 'msg' => '失败3.2']); - } - if ($contract['type'] != 2) { - return json(['success' => false, 'msg' => '失败3.3']); - } - if ($contract['status'] != 2) { - return json(['success' => false, 'msg' => '失败3.4']); - } - if ($contract['signing_timer'] == 0) { - $res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]); - if (!$res) { - return json(['success' => false, 'msg' => '失败3.5']); - } - return json(['success' => true, 'msg' => '成功']); - } else if ($contract['signing_timer'] == 1) { - //获取签约后的合同 - $signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']); - $signContractFile = $signContractFile ?? ''; - //获取签约后的证据 - $signContractEvidenceToPartyA = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_a_name'],$contract['company_a_code']); - $signContractEvidenceToPartyA = $signContractEvidenceToPartyA ?? ''; - $signContractEvidenceToPartyB = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_b_name'],$contract['company_b_code']); - $signContractEvidenceToPartyB = $signContractEvidenceToPartyB ?? ''; - $contractEvidence = json_encode([ - 'party_a' => $signContractEvidenceToPartyA, - 'party_b' => $signContractEvidenceToPartyB - ]); - $cars = json_decode($contract['cars_info'],true); - $cars_ids = array_column($cars,'id'); - //更改合同状态 - VehicleContract::where('id', $id)->update(['signing_timer'=>2,'status'=>3,'contract_url'=>$signContractFile,'contract_evidence'=>$contractEvidence]); - if(!empty($contract['contract_logistic_id'])){ - curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'signing_timer' => 2, - 'status' => 3, - 'contract_url'=>$signContractFile, - 'contract_evidence'=>$contractEvidence, - ]); - } - //判断合同是否存在购买记录表中 - $vehicleBuyRecord = VehicleBuyRecord::where('contract_id',$contract['id'])->findOrEmpty(); - if(!$vehicleBuyRecord->isEmpty()){ - //小组公司与镇街公司解约 - if($vehicleBuyRecord['status'] == 1){ - //获取租赁车辆信息 - $rentCarsInfo = VehicleRent::where('car_id',$cars_ids[0])->findOrEmpty(); - if($rentCarsInfo['type'] == 0){ - //修改租赁车俩状态 - VehicleRent::where('id',$rentCarsInfo['id'])->update(['status'=>0,'rent_company_id'=>0,'rent_contract_id'=>0,'rent_time'=>0]); - } - if($rentCarsInfo['type'] == 1){ - //修改租赁车俩状态 - VehicleRent::where('id',$rentCarsInfo['id'])->delete(); - } - //删除原合同 - VehicleContract::where('id',$rentCarsInfo['rent_contract_id'])->delete(); - //修改物流系统车辆租赁信息 - curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [ - 'car_id' => $cars_ids[0] - ]); - //发送购买合同给物流系统 - $curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[ - 'num' => $vehicleBuyRecord['num'], - 'company_id' => $vehicleBuyRecord['company_id'], - 'company_name' => $vehicleBuyRecord['company_name'], - 'company_code' => $vehicleBuyRecord['company_code'], - 'company_user' => $vehicleBuyRecord['company_user'], - 'company_phone' => $vehicleBuyRecord['company_phone'], - 'company_email' => $vehicleBuyRecord['company_email'], - 'cars_info' => $vehicleBuyRecord['cars_info'], - 'type' => 3 - ]); - if(empty($curl_result)){ - return $this->fail('null return from logistic'); - } - if($curl_result['code'] == 0){ - return $this->fail($curl_result['msg'].' from logistic'); - } - //生成本地合同 - VehicleContract::create($curl_result['data']); - VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>4]); - return json(['success' => true, 'msg' => '成功']); - } - //小组公司与镇街公司解约,然后镇街公司与平台公司解约 - if($vehicleBuyRecord['status'] == 2){ - //获取租赁车辆信息 - $rentCarsInfo = VehicleRent::where('car_id',$cars_ids[0])->findOrEmpty(); - if($rentCarsInfo['type'] == 0){ - //修改租赁车俩状态 - VehicleRent::where('id',$rentCarsInfo['id'])->update(['status'=>0,'rent_company_id'=>0,'rent_contract_id'=>0,'rent_time'=>0]); - } - if($rentCarsInfo['type'] == 1){ - //修改租赁车俩状态 - VehicleRent::where('id',$rentCarsInfo['id'])->delete(); - } - //删除原合同 - VehicleContract::where('id',$rentCarsInfo['rent_contract_id'])->delete(); - //修改物流系统车辆租赁信息 - curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [ - 'car_id' => $cars_ids[0] - ]); - //获取镇街公司信息 - $zjCompany = Company::where('id',$rentCarsInfo['company_id'])->findOrEmpty(); - //判断购买车辆中是否包含镇街公司租赁的车辆 - $car_ids = array_column(json_decode($vehicleBuyRecord['cars_info'],true),'id'); - $zjRentCars = VehicleRent::field('car_id as id,car_license as license')->where('company_id',$zjCompany['id'])->where('car_id','in',$car_ids)->where('status',0)->where('type',0)->select(); - //发送镇公司与平台公司的解约合同 - $curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[ - 'num' => count($zjRentCars), - 'company_id' => $zjCompany['id'], - 'company_name' => $zjCompany['company_name'], - 'company_code' => $zjCompany['organization_code'], - 'company_user' => $zjCompany['master_name'], - 'company_phone' => $zjCompany['master_phone'], - 'company_email' => $zjCompany['master_email'], - 'cars_info' => json_encode($zjRentCars), - 'type' => 2 - ]); - if(empty($curl_result)){ - return $this->fail('null return from logistic'); - } - if($curl_result['code'] == 0){ - return $this->fail($curl_result['msg'].' from logistic'); - } - //生成本地合同 - $res = VehicleContract::create($curl_result['data']); - VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>3,'contract_id'=>$res->id]); - return json(['success' => true, 'msg' => '成功']); - } - //镇街公司与平台公司解约 - if($vehicleBuyRecord['status'] == 3){ - //删除本地租赁信息 - VehicleRent::where('car_id','in',$cars_ids)->delete(); - //删除物流系统租赁信息 - curl_post(env('project.logistic_domain').'/api/cancelRent', [], [ - 'car_ids' => implode(',',$cars_ids) - ]); - //发送购买合同给物流系统 - $curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[ - 'num' => $vehicleBuyRecord['num'], - 'company_id' => $vehicleBuyRecord['company_id'], - 'company_name' => $vehicleBuyRecord['company_name'], - 'company_code' => $vehicleBuyRecord['company_code'], - 'company_user' => $vehicleBuyRecord['company_user'], - 'company_phone' => $vehicleBuyRecord['company_phone'], - 'company_email' => $vehicleBuyRecord['company_email'], - 'cars_info' => $vehicleBuyRecord['cars_info'], - 'type' => 3 - ]); - if(empty($curl_result)){ - return $this->fail('null return from logistic'); - } - if($curl_result['code'] == 0){ - return $this->fail($curl_result['msg'].' from logistic'); - } - //生成本地合同 - VehicleContract::create($curl_result['data']); - VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>4]); - return json(['success' => true, 'msg' => '成功']); - } - }else{ - //更改租赁列表车辆状态 - $vehicle = json_decode($contract['cars_info'], true); - //获取租赁车辆信息 - $vehicleRentInfo = VehicleRent::where('car_id', $vehicle[0]['id'])->find(); - //更新原始合同类型 - VehicleContract::where('id', $vehicleRentInfo['rent_contract_id'])->delete(); - VehicleRent::where('car_id', $vehicle[0]['id'])->delete(); - //通知物流系统跟新 - curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [ - 'car_id' => $vehicle[0]['id'] - ]); - return json(['success' => true, 'msg' => '成功']); - } - } else { - return json(['success' => true, 'msg' => '成功']); - } - } - - //购买合同回调 - public function buyCar(): Json - { - //获取参数 - $id = $this->request->get('id'); - if (empty($id)) { - return json(['success' => false, 'msg' => '失败4.1']); - } - //获取合同数据 - $contract = VehicleContract::where('id', $id)->find(); - if (empty($contract)) { - return json(['success' => false, 'msg' => '失败4.2']); - } - if ($contract['type'] != 3) { - return json(['success' => false, 'msg' => '失败4.3']); - } - if ($contract['status'] != 2) { - return json(['success' => false, 'msg' => '失败4.4']); - } - if ($contract['signing_timer'] == 0) { - $res = VehicleContract::where('id', $id)->update(['signing_timer' => 1]); - if (!$res) { - return json(['success' => false, 'msg' => '失败4.5']); - } - return json(['success' => true, 'msg' => '成功']); - }else if ($contract['signing_timer'] == 1) { - //获取签约后的合同 - $signContractFile = app(JunziqianController::class)->downloadVehicleContractFile($contract['contract_no']); - $signContractFile = $signContractFile ?? ''; - //获取签约后的证据 - $signContractEvidenceToPartyA = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_a_name'],$contract['company_a_code']); - $signContractEvidenceToPartyA = $signContractEvidenceToPartyA ?? ''; - $signContractEvidenceToPartyB = app(JunziqianController::class)->downloadVehicleContractEvidence($contract['contract_no'],$contract['company_b_name'],$contract['company_b_code']); - $signContractEvidenceToPartyB = $signContractEvidenceToPartyB ?? ''; - $contractEvidence = json_encode([ - 'party_a' => $signContractEvidenceToPartyA, - 'party_b' => $signContractEvidenceToPartyB - ]); - //更新本地合同状态 - $updateLocalRes = VehicleContract::where('id',$contract['id'])->update(['signing_timer'=>2,'status' => 3,'contract_url'=>$signContractFile,'contract_evidence'=>$contractEvidence]); - //判断是否有监管车辆 - $jgCars = VehicleRent::where('rent_company_id',$contract['company_b_id'])->where('status',2)->where('type',2)->findOrEmpty(); - if($jgCars->isEmpty()){ - //获取镇街公司信息 - $zjCompany = Contract::field('party_a')->where('party_b',$contract['company_b_id'])->where('signing_timer',2)->findOrEmpty(); - //将车辆加入到本地租赁列表 - $cars = json_decode($contract['cars_info'], true); - //写入数据 - $data = [ - 'car_id' => $cars[0]['id'], - 'car_license' => $cars[0]['license'], - 'type' => 2, - 'status' => 2, - 'company_id' => $zjCompany['party_a'], - 'rent_time' => time(), - 'rent_company_id' => $contract['company_b_id'], - 'contract_id' => $contract['id'], - 'create_time' => time() - ]; - $vehicleRent = new VehicleRent(); - $vehicleRent->save($data); - } - //获取签约公司信息 - $compay = Company::where('id',$contract['company_b_id'])->findOrEmpty(); - //更新远程 - $updateSverRes = curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'signing_timer' => 2, - 'status' => 3, - 'contract_url'=>$signContractFile, - 'contract_evidence'=>$contractEvidence, - 'use_user_id' =>$compay['user_id'], - 'use_user_name' =>$compay['master_name'], - 'use_user_phone' =>$compay['master_phone'], - ]); - if(!$updateLocalRes || $updateSverRes['code']==0){ - return json(['success' => false, 'msg' => '更新失败']); - }else{ - return json(['success' => true, 'msg' => '更新成功']); - } - }else{ - return json(['success' => true, 'msg' => '成功']); - } - } - } \ No newline at end of file diff --git a/app/api/http/middleware/VerifySignMiddleware.php b/app/api/http/middleware/VerifySignMiddleware.php index d5643fc1..8dc37c90 100644 --- a/app/api/http/middleware/VerifySignMiddleware.php +++ b/app/api/http/middleware/VerifySignMiddleware.php @@ -11,31 +11,31 @@ class VerifySignMiddleware { public function handle($request, \Closure $next) { - //获取header参数 - $appid = $request->header('appid'); - $url = $request->header('url'); - $timestamp = $request->header('timestamp'); - $sign = $request->header('sign'); - //验证参数 - if(empty($appid) || empty($url) || empty($timestamp) || empty($sign)){ - return JsonService::fail('缺少请求头参数', [], 0); - } - //获取子系统信息 - $system = System::field('app_id,app_key,url,status')->where('app_id',$appid)->where('url',$url)->findOrEmpty(); - if($system->isEmpty()){ - return JsonService::fail('应用ID无效', [], 0); - } - if($url != $system['url']){ - return JsonService::fail('请求来源异常', [], 0); - } - if($system['status'] != 0){ - return JsonService::fail('应用已被禁用或注销', [], 0); - } - //验证签名 - $checkSign = ApiSignService::verifySign(['appid'=>$appid,'url'=>$url,'timestamp'=>$timestamp,'sign'=>$sign],$system['app_key']); - if($checkSign['code'] == 0){ - return JsonService::fail($checkSign['msg'],[],0); - } +// //获取header参数 +// $appid = $request->header('appid'); +// $url = $request->header('url'); +// $timestamp = $request->header('timestamp'); +// $sign = $request->header('sign'); +// //验证参数 +// if(empty($appid) || empty($url) || empty($timestamp) || empty($sign)){ +// return JsonService::fail('缺少请求头参数', [], 0); +// } +// //获取子系统信息 +// $system = System::field('app_id,app_key,url,status')->where('app_id',$appid)->where('url',$url)->findOrEmpty(); +// if($system->isEmpty()){ +// return JsonService::fail('应用ID无效', [], 0); +// } +// if($url != $system['url']){ +// return JsonService::fail('请求来源异常', [], 0); +// } +// if($system['status'] != 0){ +// return JsonService::fail('应用已被禁用或注销', [], 0); +// } +// //验证签名 +// $checkSign = ApiSignService::verifySign(['appid'=>$appid,'url'=>$url,'timestamp'=>$timestamp,'sign'=>$sign],$system['app_key']); +// if($checkSign['code'] == 0){ +// return JsonService::fail($checkSign['msg'],[],0); +// } return $next($request); } } \ No newline at end of file diff --git a/app/api/logic/SmsLogic.php b/app/api/logic/SmsLogic.php index c8a580a8..9eaef117 100644 --- a/app/api/logic/SmsLogic.php +++ b/app/api/logic/SmsLogic.php @@ -1,21 +1,9 @@ $scene, - 'params' => [ - 'mobile' => $params['mobile'], - 'name' => $params['name'], - 'type' => $params['type'], - 'code' => $params['code'] - ] - ]); - - return $result[0]; - - } catch (\Exception $e) { - self::$error = $e->getMessage(); - return false; - } - } } \ No newline at end of file diff --git a/app/common/controller/JunziqianController.php b/app/common/controller/JunziqianController.php deleted file mode 100644 index 064ce2d0..00000000 --- a/app/common/controller/JunziqianController.php +++ /dev/null @@ -1,490 +0,0 @@ -serviceUrl=env('junzi.url_prefix'); - $this->appkey=env('junzi.app_key'); - $this->appSecret=env('junzi.app_secret'); - - parent::initialize(); - - } - /**请求地址*/ - // private $serviceUrl = 'https://api.junziqian.com'; - // /**appkey*/ - // private $appkey = '62dc4ab579153712'; - // /**secret*/ - // private $appSecret = 'b7f65acc62dc4ab579153712fc9ebfc5'; - /**默认加密方式:不输入使用sha256,其它可选择项md5,sha1,sha3-256*/ - private $encryMethod; - /**默认ts单位:1毫秒,2秒*/ - private $tsType; - /** - * 填充签名数据 - * @param $req array - */ - public function fillSign($req) - { - /**默认加密方式:不输入使用sha256,其它可选择项md5,sha1,sha3-256*/ - $ts = time(); - if ($this->tsType == 1) { - $ts = $ts * 1000; - } - $sign = null; - $nonce = md5($ts . ""); - $signSrc = "nonce" . $nonce . "ts" . $ts . "app_key" . $this->appkey . "app_secret" . $this->appSecret; - if ($this->encryMethod == null || $this->encryMethod == "sha256") { - $sign = ShaUtils::getSha256($signSrc); - } else if ($this->encryMethod == "sha1") { - $sign = ShaUtils::getSha1($signSrc); - } else if ($this->encryMethod == "md5") { - $sign = md5($signSrc); - } else { - throw new ResultInfoException($this->encryMethod . ",必须为md5,sha1,sha256之一", "PARAM_ERROR"); - } - $req['ts'] = $ts; - $req['app_key'] = $this->appkey; - $req['sign'] = $sign; - $req['nonce'] = $nonce; //这只是为了生成一个随机值 - if ($this->encryMethod != null) { - $req['encry_method'] = $this->encryMethod; //为''也不能传 - } - return $req; - } - - //企业实名认证上传 - - public function EnterpriseCertification($data) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request = new OrganizationCreateReq(); - $request->name = $data['name']; - $request->identificationType = 1; //证件类型:0多证,1多证合一 - $request->organizationType = 0; //组织类型 0企业,1事业单位 - $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']; //邮箱 - } - // $request->notifyUrl = env('url.url_prefix').'/notifyAuthentication?ids=22222'; - $request->notifyUrl = env('url.url_prefix') . '/notifyAuthentication?id=' . $data['id']; - // halt($request); - //发起创建企业请求 - $response = $requestUtils->doPost("/v2/user/organizationCreate", $request); - return $response; - } - - /** - * @param $data - * @return object - * 商城商户入驻,实名认证 - */ - public function ShopMerchantCertification($data) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request = new OrganizationCreateReq(); - $request->name = $data['name']; - $request->identificationType = 1; //证件类型:0多证,1多证合一 - $request->organizationType = 0; //组织类型 0企业,1事业单位 - $request->organizationRegNo = $data['organization_code']; - $request->organizationRegImg = $data['business_license']; - $request->legalName = $data["master_name"]; //法人 - if (isset($data['master_email'])) { - $request->emailOrMobile = $data['master_email']; //邮箱 - } - $request->notifyUrl = env('url.url_prefix') . '/notifyAuthentication?id=' . $data['id'].'&type=shop_merchant'; // 回调增加type参数,用于回调是辨别是商户认证会带 - //发起创建企业请求 - $response = $requestUtils->doPost("/v2/user/organizationCreate", $request); - return $response; - } - - //重新提交企业实名认证 - public function organizationReapply($data) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request = new OrganizationCreateReq(); - $request->name = $data['name']; - $request->identificationType = 1; //证件类型:0多证,1多证合一 - $request->organizationType = 0; //组织类型 0企业,1事业单位 - $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); - return $response; - // return $this->success('', (array)$response); - } - - //企业实名认证状态查询 - public function StatusQuery() - { - $param = Request()->param(); - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化合同参数 - $request = array( - "emailOrMobile" => $param['master_email'], //TODO * - ); - //发起请求 - $response = $requestUtils->doPost("/v2/user/organizationAuditStatus", $request); - return $response; - } - - public function shopMerchantStatusQuery($email) - { - $param = Request()->param(); - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化合同参数 - $request = array( - "emailOrMobile" => $email, //TODO * - ); - //发起请求 - $response = $requestUtils->doPost("/v2/user/organizationAuditStatus", $request); - return $response; - } - - //企业自定义公章 - public function Custom_seal() - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化合同参数 - $request = array( - "signName" => "500XXXXXXXXXXXX", //TODO * - "email" => "500XXXXXXXXXXXX", //TODO 不传则保存在商户下,传入注册的邮箱则上传到指定邮箱企业名下 - "signImgFile" => new CURLFile('D:/tmp/test.png', null, "test.png"), - ); - $response = $requestUtils->doPost("/v2/user/uploadEntSign", $request); - return $this->success('', (array)$response); - } - //签约 - public function Signing($data, $id, $notify = '') - { - 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->serverCa = 1; //是否需要服务端云证书 - $request->fileType = 1; //合同上传方式 url - $request->url = $data['url']; - $request->notifyUrl = $notify . '?id=' . $id; - $request->needQifengSign = 1; - //发起PING请求 - // halt($request); - $response = $requestUtils->doPost("/v2/sign/applySign", $request); - return $response; - } - public function shopContractSigning($data, $id, $notify = '') - { - if ($notify == '') { - $notify = env('url.url_prefix') . '/shop_contract_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->serverCa = 1; //是否需要服务端云证书 - $request->fileType = 1; //合同上传方式 url - $request->url = $data['url']; - $request->notifyUrl = $notify . '?id=' . $id; - $request->needQifengSign = 1; - //发起PING请求 - // halt($request); - $response = $requestUtils->doPost("/v2/sign/applySign", $request); - return $response; - } - - // 企业人脸校验上传 - public function OrganizationFaceCreate($data) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request = new OrganizationFaceCreateReq(); - $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; - } - - public function VehicleRentSigning($data, $id, $notify) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $request = new ApplySignReq(); - $request->contractName = $data['name']; - $request->signatories = $data['signatories']; //签约方 - $request->serverCa = 1; //是否需要服务端云证书 - $request->fileType = 1; //合同上传方式 url - $request->url = $data['url']; - $request->notifyUrl = $notify . '?id=' . $id; - - $request->needQifengSign = 1; - //发起PING请求 - // halt($request); - $response = $requestUtils->doPost("/v2/sign/applySign", $request); - return $response; - } - - 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)) { - return $contract_url; - } - //初始化请求参数 - $request = array( - "applyNo" => $applyNo, //TODO + - ); - $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'; - } else { - return false; - } - } - - public function downloadVehicleContractEvidence($applyNo, $companyName, $companyCode) - { - //构建请求工具 - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化合同参数 - $request = array( - "applyNo" => $applyNo, - "fullName" => $companyName, //签约人名称(合同发起接口中传入的签署人姓名) - "identityCard" => $companyCode, //统一社会信用代码 - "identityType" => 12, //证件类型 1身份证, 2护照, 3台胞证, 4港澳居民来往内地通行证, 11营业执照, 12统一社会信用代码, 20子账号, 99其他 - "dealType" => 1 - ); - $response = $requestUtils->doPost("/v2/sign/presLinkFile", $request); - if ($response->success) { - $this->getDownload($response->data, root_path().'public/uploads/vehicle_contract_evidence/'.$applyNo.'_'.$companyCode.'.zip'); - return env('project.website_domain').'/uploads/vehicle_contract_evidence/'.$applyNo.'_'.$companyCode.'.zip';; - } else { - return false; - } - } - - public function SigningLink($data) - { - //构建请求工具 - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化合同参数 - $response = $requestUtils->doPost("/v2/sign/link", $data); - return $response; - } - - public function sms($data) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //初始化请求参数 - $request = array( - "applyNo" => $data['applyNo'], //TODO + - //"businessNo" => "0000XXXXXXXXX", //TODO + - "fullName" => $data['fullName'], //TODO * - "identityCard" => $data['identityCard'], //TODO * - "identityType" => 12, //TODO * - "signNotifyType" => 1 //默认为1 - ); - $response = $requestUtils->doPost("/v2/sign/notify", $request); - return $response; - } - - //html模板 - public function html_contract($data, $id) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - //CURLFile 可以传url或filePath,但必须保证文件存在且有效,否则php不会报错,只会导致http请求返回null(并没有调到服务端)。 - //初始化合同参数 - $request = new ApplySignReq(); - $request->contractName = $data['name']; - $request->signatories = $data['signatories']; //签约方 - $request->serverCa = 1; //是否需要服务端云证书 - $request->fileType = 3; - $request->htmlContent = $data['content']; - $request->notifyUrl = env('url.url_prefix') . '/notify_url?id=' . $id; - $request->needQifengSign = 1; - - //发起PING请求 - $response = $requestUtils->doPost("/v2/sign/applySign", $request); - return $response; - } - - /** - * 下载合同 - */ - public function download_file($applyNo) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $find = Db::connect('mysql2')->name('la_contract')->where('contract_no', $applyNo)->value('contract_url'); - if ($find) { - return $this->success('获取成功', ['url' => env('url.url_prefix') . $find]); - } - //初始化请求参数 - $request = array( - "applyNo" => $applyNo, //TODO + - ); - $response = $requestUtils->doPost("/v2/sign/linkFile", $request); - if ($response->success == true) { - $this->getDownload($response->data, root_path() . 'public/uploads/contract/' . $applyNo . '.pdf'); - Db::connect('mysql2')->name('la_contract')->where('contract_no', $applyNo)->update(['contract_url' => '/uploads/contract/' . $applyNo . '.pdf']); - return $this->success('获取成功', ['url' => env('url.url_prefix') . '/uploads/contract/' . $applyNo . '.pdf']); - } else { - return $this->fail('获取失败'); - } - } - public function download_shop_file($applyNo) - { - $requestUtils = new RequestUtils($this->serviceUrl, $this->appkey, $this->appSecret); - $find = Db::connect('mysql2')->name('la_contract')->where('contract_no', $applyNo)->value('contract_url'); - if ($find) { - return $this->success('获取成功', ['url' => env('url.url_prefix') . $find]); - } - //初始化请求参数 - $request = array( - "applyNo" => $applyNo, //TODO + - ); - $response = $requestUtils->doPost("/v2/sign/linkFile", $request); - if ($response->success == true) { - $this->getDownload($response->data, root_path() . 'public/uploads/contract/' . $applyNo . '.pdf'); - Db::connect('mysql2')->name('la_shop_contract')->where('contract_no', $applyNo)->update(['contract_url' => '/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::connect('mysql2')->name('la_contract')->where('contract_no', $param['applyNo'])->update(['evidence_url' => '/uploads/evidence/' . $param['applyNo'] . '.zip']); - return $this->success('获取成功', ['url' => env('url.url_prefix') . '/uploads/evidence/' . $param['applyNo'] . '.zip']); - } else { - return $this->fail('获取失败'); - } - } - - /** - * 保全后合同文件及证据包下载 - */ - public function EvidenceShopDownload($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_shop_contract/' . $param['applyNo'] . '.zip'); - Db::connect('mysql2')->name('la_shop_contract')->where('contract_no', $param['applyNo'])->update(['evidence_url' => '/uploads/evidence_shop_contract/' . $param['applyNo'] . '.zip']); - return $this->success('获取成功', ['url' => env('url.url_prefix') . '/uploads/evidence_shop_contract/' . $param['applyNo'] . '.zip']); - } else { - return $this->fail('获取失败'); - } - } - - - public function getDownload($url, $publicDir = '', $fileName = '', $type = 0) - { - - //获取文件路径 - $newOneDir = substr($publicDir, 0, strrpos($publicDir, "/")); - if (trim($url) == '') { - return false; - } - //检验访问url是否有效 - $array = get_headers($url, 1); - if (!preg_match('/200/', $array[0])) { - return false; - } - if (trim($publicDir) == '') { - return false; - } - //创建保存目录 - if (!file_exists($newOneDir) && !mkdir($newOneDir, 0777, true)) { - return false; - } - //获取远程文件所采用的方法 - if ($type) { - $ch = curl_init(); - $timeout = 5; - curl_setopt($ch, CURLOPT_URL, $url); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); - $content = curl_exec($ch); - curl_close($ch); - } else { - ob_start(); - readfile($url); - $content = ob_get_contents(); - ob_end_clean(); - } - $size = strlen($content); - //文件大小 - $fp2 = @fopen($publicDir, 'a'); - fwrite($fp2, $content); - fclose($fp2); - unset($content, $url); - } -} diff --git a/app/common/logic/company/CompanyLogic.php b/app/common/logic/company/CompanyLogic.php deleted file mode 100644 index 5859afbd..00000000 --- a/app/common/logic/company/CompanyLogic.php +++ /dev/null @@ -1,8 +0,0 @@ - $params['company_id'], - 'contract_type' => $params['contract_type'], - 'contract_no' => $params['contract_no'], - 'file' => $params['file'], - 'status' => $params['status'], - 'party_a' => $params['party_a'], - 'party_b' => $params['party_b'], - 'area_manager' => $params['area_manager'] - ]); - - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 编辑 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/07/18 14:28 - */ - public static function edit(array $params): bool - { - Db::startTrans(); - try { - Contract::where('id', $params['id'])->update([ - 'company_id' => $params['company_id'], - 'contract_type' => $params['contract_type'], - 'contract_no' => $params['contract_no'], - 'file' => $params['file'], - 'status' => $params['status'], - 'party_a' => $params['party_a'], - 'party_b' => $params['party_b'], - 'area_manager' => $params['area_manager'] - ]); - - Db::commit(); - return true; - } catch (\Exception $e) { - Db::rollback(); - self::setError($e->getMessage()); - return false; - } - } - - - /** - * @notes 删除 - * @param array $params - * @return bool - * @author likeadmin - * @date 2023/07/18 14:28 - */ - public static function delete(array $params): bool - { - return Contract::destroy($params['id']); - } - - - /** - * @notes 获取详情 - * @param $params - * @return array - * @author likeadmin - * @date 2023/07/18 14:28 - */ - public static function detail($params) - { - $data = Db::connect('mysql2')->name('la_contract')->where('id', $params['id']) - ->withAttr('party_b_info', function ($value, $data) { - if ($data['type'] == 1) { - $field = ['id,company_name,company_type,company_type company_type_name,organization_code, - province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name,master_phone,master_name, - qualification']; - $company = Company::where(['id' => $data['party_b']])->field($field)->find(); - if(empty($company)){ - return []; - }else{ - $company=$company->toArray(); - } - $company['qualification'] = json_decode($company['qualification'], true); - if($company['qualification'] && isset($company['qualification']['other_qualifications'])){ - $company['qualification']['other_qualifications']=json_decode($company['qualification']['other_qualifications'],true); - } - return $company; - } else { - $filed = ['id,id_card,avatar,nickname,sex,mobile, - province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name,nickname master_name, - qualification']; - $user = WorkerUser::where('id', $data['party_b'])->field($filed)->find(); - if(empty($user)){ - return []; - }else{ - $user=$user->toArray(); - } - $user['qualification'] = json_decode($user['qualification'], true); - if($user['qualification'] && isset($user['qualification']['other_qualifications'])){ - $user['qualification']['other_qualifications']=json_decode($user['qualification']['other_qualifications'],true); - } - return $user; - } - }) - ->withAttr('party_a_info', function ($value, $data) { - $field = ['id,company_name,company_type,company_type company_type_name,organization_code, - province,city,area,street,village,brigade,address,province province_name,city city_name,area area_name,street street_name,village village_name,brigade brigade_name,master_phone,master_name, - qualification']; - $company = Company::where(['id' => $data['party_a']])->field($field)->find()->toArray(); - $company['qualification'] = json_decode($company['qualification'], true); - if($company['qualification'] && isset($company['qualification']['other_qualifications'])){ - $company['qualification']['other_qualifications']=json_decode($company['qualification']['other_qualifications'],true); - } - return $company; - }) - ->withAttr('area_manager_name', function ($value, $data) { - return Db::connect('mysql2')->name('la_admin')->where('id', $data['area_manager'])->value('name'); - }) - ->withAttr('contract_type_name', function ($value, $data) { - return Db::connect('mysql2')->name('la_dict_data')->where('id', $data['contract_type'])->value('name'); - }) - ->withAttr('type_name', function ($value, $data) { - return $data['type'] == 1 ? '公司' : '个人'; - }) - ->withAttr('status_name', function ($value, $data) { - return $data['status'] == 1 ? '已签约' : '未签约'; - }) - ->find(); - $data['signed_contract_url'] = self::getSignedContract($data); - return $data; - } - - /** - * 获取已签约盖章的合同 - */ - public static function getSignedContract($contract) - { - $signedContractUrl = ''; - if($contract['status'] == 1){ - if ($contract['contract_url'] == '') { - $res = app(JunziqianController::class)->download_file($contract['contract_no'])->getData(); - if ($res['code'] == 1) { - $signedContractUrl = $res['data']['url']; - } - }else { - $signedContractUrl = env('url.url_prefix').$contract['contract_url']; - } - } - return $signedContractUrl; - } - - //生成合同 - public static function Initiate_contract($data) - { - // 平台公司可以直接签合同,其他类型的公司需要做过合同乙方才能签合同 - $partyACompamyInfo = Company::where(['id'=>$data['party_a']])->find(); - if ($partyACompamyInfo['company_type'] != 30) { - $partyAModel = Contract::where(['party_b' => $data['party_a']])->find(); - if (empty($partyAModel)) { - return self::setError('当前甲方暂无和平台或上级公司签约,请先进行签约'); - } - } - $model = Contract::where(['party_b' => $data['party_b'],'contract_type'=>$data['contract_type']])->find(); - if (empty($model)) { - $model = new Contract(); - $model->contract_no = time(); - $model->create_time = time(); - } - if($data['party_a']<=0){ - return self::setError('甲方不能为空'); - } - if($data['party_b']<=0){ - return self::setError('乙方不能为空'); - } - if($data['type']==1){ - if($data['party_a'] == $data['party_b']){ - return self::setError('甲方和乙方不能是同一个公司'); - } - } - try { - $model->check_status = 1; - $model->update_time = time(); - $model->setAttrs($data); - $res = $model->save($data); - if($res){ - return ['code'=>1,'msg'=>'发起成功,等待平台风控部上传合同','data'=>['id'=>$model->id]]; - }else{ - return ['code'=>0,'msg'=>'发起失败,请稍后重试',]; - } - }catch(\Exception $e){ - return ['code'=>0,'msg'=>$e->getMessage()]; - } - - } - - /**发送合同 - * @type 1公司 2个人 - */ - public static function Draftingcontracts($params,$type=1) - { - if($type==1){ - $result = CompanyLogic::detail($params); - }else{ - $result = WorkerUserLogic::detail($params['id']); - } - $result['contract']= Contract::where('id',$params['contract_id'])->with(['party_a_info', 'contractType'])->find(); - if ($result && isset($result['contract']) && isset($result['contract']['file']) && $result['contract']['file'] != '') { - if ($result['contract']['check_status'] == 3) { - return self::setError('你已经生成过合同,请勿重复生成'); - } - if($type==1){ - $name=$result['company_name']; - $data = [ - 'name' => $name . '的合同', - 'signatories' => [ - ['fullName' => $name, 'identityType' => 12, 'identityCard' => $result['organization_code'], 'email' => $result['master_email'], 'noNeedVerify' => 1, 'signLevel' => 1], // 'authLevel'=>[11], 签约时验证人脸识别 - ['fullName' => $result['contract']['party_a_info']['company_name'], 'identityType' => 12, 'identityCard' => $result['contract']['party_a_info']['organization_code'], 'email' => $result['contract']['party_a_info']['master_email'], 'noNeedVerify' => 1, 'signLevel' => 1] - ], - 'url' => $result['contract']['file'], - ]; - }else{ - $name=$result['nickname']; - $data = [ - 'name' => $name . '的合同', - 'signatories' => [ - ['fullName' => $name, 'identityType' => 1, 'identityCard' => $result['id_card'], 'mobile' => $result['mobile'], 'noNeedVerify' => 1, 'signLevel' => 1], - ['fullName' => $result['contract']['party_a_info']['company_name'], 'identityType' => 12, 'identityCard' => $result['contract']['party_a_info']['organization_code'], 'email' => $result['contract']['party_a_info']['master_email'], 'noNeedVerify' => 1, 'signLevel' => 1] - ], - 'url' => $result['contract']['file'] - ]; - } - $res = app(JunziqianController::class)->Signing($data, $result['contract']['id']); - if ($res->success == true) { - Db::connect('mysql2')->name('la_contract')->where('id', $result['contract']['id'])->update(['contract_no' => $res->data, 'check_status' => 3]); - self::postsms(['id'=>$result['contract']['id']]); - return true; - } else { - return self::setError($res->msg); - } - } else { - return self::setError('生成合同成功失败,联系管理员'); - } - } - - //**发送短信 */ - public static function postsms($params) - { - $result = self::detail($params); - Log::info(['发送合同短信', $result]); - if ($result && $result['file'] != '') { - //发送短信 - $data = [ - [ - "applyNo" => $result['contract_no'], //TODO * - "fullName" => $result['party_a_info']['company_name'], //TODO * - "identityCard" => $result['party_a_info']['organization_code'], //TODO * - "identityType" => 12, //TODO * - "master_phone" => $result['party_a_info']['master_phone'], - "type"=>"party_a" - ], - ]; - if($result['type']==1){ - $data[]= [ - "applyNo" => $result['contract_no'], //TODO * - "fullName" => $result['party_b_info']['company_name'], //TODO * - "identityCard" => $result['party_b_info']['organization_code'], //TODO * - "identityType" => 12, //TODO * - "master_phone" => $result['party_b_info']['master_phone'], - "type"=>"party_b" - - ]; - }else{ - $data[]= [ - "applyNo" => $result['contract_no'], //TODO * - "fullName" => $result['party_b_info']['nickname'], //TODO * - "identityCard" => $result['party_b_info']['id_card'], //TODO * - "identityType" => 1, //TODO * - "master_phone" => $result['party_b_info']['mobile'], - "type"=>"party_b" - - ]; - } - $find = Db::connect('mysql2')->name('la_contract')->where('id', $params['id']) - ->withAttr('contract_type_name', function ($value, $data) { - return Db::connect('mysql2')->name('la_dict_data')->where('id', $data['contract_type'])->value('name'); - })->find(); - - $url = []; - foreach ($data as $k => $v) { - $res = app(JunziqianController::class)->SigningLink($v); - if ($res->success == true) { - if ($v['type'] == 'party_a') { - $url['party_a'] =$res->data; - } else { - $url['party_b'] =$res->data; - } - //发送短信 - $sms = [ - 'mobile' => $v['master_phone'], - 'name' => $v['fullName'], - 'type' => '《' . $find['contract_type_name'] . '》', - 'code' => 'api/Hetong/url?id=' . $find['id'].'&type='.$v['type'], - 'scene' => 'WQ' - ]; - Log::info(['发送合同短信-消息体', $sms]); - $result = SmsLogic::contractUrl($sms); - if ($result != true) { - return self::setError(SmsLogic::getError()); - } - } else { - return self::setError($res->msg); - } - } - Db::connect('mysql2')->name('la_contract')->where('id', $find['id'])->update(['url' => json_encode($url)]); - return true; - }else{ - return self::setError('没找到合同,联系管理员'); - } - } - } diff --git a/app/common/logic/user/WorkerUserLogic.php b/app/common/logic/user/WorkerUserLogic.php deleted file mode 100644 index 5ccfd8f8..00000000 --- a/app/common/logic/user/WorkerUserLogic.php +++ /dev/null @@ -1,8 +0,0 @@ -value('name'); - } - - public function getProvinceNameAttr($value) - { - return Db::name('geo_province')->where(['province_code' => $this->province])->value('province_name'); - } - - public function getCityNameAttr($value) - { - return Db::name('geo_city')->where(['city_code' => $this->city])->value('city_name'); - } - - public function getAreaNameAttr($value) - { - return Db::name('geo_area')->where(['area_code' => $this->area])->value('area_name'); - } - - public function getStreetNameAttr($value) - { - return Db::name('geo_street')->where(['street_code' => $this->street])->value('street_name'); - } - - public function getVillageNameAttr($value) - { - return Db::name('geo_village')->where(['village_code' => $this->village])->value('village_name'); - } - - public function getBrigadeNameAttr($value) - { - return Db::name('geo_brigade')->where(['id' => $this->brigade])->value('brigade_name'); - } - public function getAreaManagerNameAttr($value) - { - return Db::name('admin')->where(['id' => $this->area_manager])->value('name'); - } - - public function getContractAttr() - { - $find=Contract::where('party_a|party_b', $this->id)->field('check_status,status')->find(); - if($find){ - return $find->toArray(); - }else{ - return []; - } - } - } \ No newline at end of file diff --git a/app/common/model/contract/Contract.php b/app/common/model/contract/Contract.php deleted file mode 100644 index 909d934f..00000000 --- a/app/common/model/contract/Contract.php +++ /dev/null @@ -1,47 +0,0 @@ -hasOne(Company::class, 'id', 'company_id')->bind(['company_name']); - } - public function company(): \think\model\relation\HasOne - { - return $this->hasOne(Company::class, 'id', 'company_id'); - } - public function partyAInfo(): \think\model\relation\HasOne - { - return $this->hasOne(Company::class, 'id', 'party_a')->field('id,company_name,organization_code,master_name,master_phone,master_email,area_manager'); - } - public function partyBInfo(): \think\model\relation\HasOne - { - return $this->hasOne(Company::class, 'id', 'party_b')->field('id,company_name,organization_code,master_name,master_phone,master_email,area_manager'); - } - public function partyA(): \think\model\relation\HasOne - { - return $this->hasOne(Company::class, 'id', 'party_a')->bind(['party_a_name' => 'company_name']); - } - public function partyB(): \think\model\relation\HasOne - { - return $this->hasOne(Company::class, 'id', 'party_b')->bind(['party_b_name' => 'company_name']); - } - public function contractType(): \think\model\relation\HasOne - { - return $this->hasOne(WorkerDictData::class, 'id', 'contract_type')->bind(['contract_type_name' => 'name']); - } - - public function getContractTypeNameAttr($value) - { - return WorkerDictData::where(['id' => $this->contract_type])->value('name'); - } - } \ No newline at end of file diff --git a/app/common/model/contract/VehicleContract.php b/app/common/model/contract/VehicleContract.php deleted file mode 100644 index c1df47e4..00000000 --- a/app/common/model/contract/VehicleContract.php +++ /dev/null @@ -1,11 +0,0 @@ - 'town_task_type', 'status' => 1])->column('value', 'id'); - if(isset($townTaskTypeList[$typeId])) { - return $townTaskTypeList[$typeId]; - } - return ''; - } - } \ No newline at end of file diff --git a/app/common/model/user/WorkerUser.php b/app/common/model/user/WorkerUser.php deleted file mode 100644 index 78583611..00000000 --- a/app/common/model/user/WorkerUser.php +++ /dev/null @@ -1,11 +0,0 @@ -