data($result); } /** * @notes 全局配置 * @return Json * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author 段誉 * @date 2022/9/21 19:41 */ public function config() { $parmas = $this->request->param(); $group_id = $this->userInfo ? $this->userInfo['group_id'] : 1; $result = IndexLogic::getConfigData($group_id, $parmas); return $this->data($result); } /** * @notes 政策协议 * @return Json * @author 段誉 * @date 2022/9/20 20:00 */ public function policy() { $type = $this->request->get('type/s', ''); $result = IndexLogic::getPolicyByType($type); return $this->data($result); } /** * @notes 装修信息 * @return Json * @author 段誉 * @date 2022/9/21 18:37 */ public function decorate() { $id = $this->request->get('id/d'); $result = IndexLogic::getDecorate($id); return $this->data($result); } /**签约回调 */ public function notifyUrl() { $a = Request()->get(); if ($a) { $find = Db::name('contract')->where('id', $a['id'])->find(); if ($find) { if ($find['signing_timer'] == 0) { Db::name('contract')->where('id', $a['id'])->update(['signing_timer' => 1]); return json(['success' => true, 'msg' => '成功']); } else if ($find['signing_timer'] == 1) { Db::name('contract')->where('id', $a['id'])->update(['status' => 1, 'signing_timer' => 2]); if ($find['type'] == 1) { Db::name('company')->where('id', $find['party_a'])->update(['status' => 1, 'is_contract' => 1]); Db::name('company')->where('id', $find['party_b'])->update(['status' => 1, 'is_contract' => 1]); } else { Db::name('company')->where('id', $find['party_a'])->update(['status' => 1, 'is_contract' => 1]); Db::name('user')->where('id', $find['party_b'])->update(['is_contract' => 1]); } } } } return json(['success' => true, 'msg' => '成功']); } /**商户合同签约回调 */ public function shopContractNotifyUrl() { $a = Request()->param(); Log::info(['商户合同签约回调', $a]); // 获取合同详情 if ($a) { $find = Db::name('shop_contract')->where('id', $a['id'])->find(); if ($find) { // 合同一方已签约 if ($find['signing_timer'] == 0) { Db::name('shop_contract')->where('id', $a['id'])->update(['signing_timer' => 1]); return json(['success' => true, 'msg' => '成功']); } else if ($find['signing_timer'] == 1) { // 合同另一方已签约,修改合同状态,修改公司状态 Db::name('shop_contract')->where('id', $a['id'])->update(['status' => 1, 'signing_timer' => 2]); Db::name('shop_merchant')->where('id', $find['party_a'])->update(['status' => 1, 'is_contract' => 1]); Db::name('shop_merchant')->where('id', $find['party_b'])->update(['status' => 1, 'is_contract' => 1]); // 通知商城,商户签约完成 $shopMerchant = ShopMerchant::find(['id' => $find['party_b']]); $requestUtil = HttpClient::create()->request('POST', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchant['mer_intention_id'], [ 'body' => ['status' => 1] ]); Log::info(['商户合同签约回调-商城响应', env('url.shop_prefix') . '/api/merchant/syncStatus/'.$shopMerchant['mer_intention_id']]); Log::info(['商户合同签约回调-商城响应', $requestUtil->getContent()]); } } } return json(['success' => true, 'msg' => '成功']); } //镇街车辆租赁回调 public function townCarRent() { $id = Request()->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, 'update_time' => time() ]); 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, 'update_time' => time() ]); if(!$updateLocalRes || $updateSverRes['code']==0){ return json(['success' => false, 'msg' => '更新失败']); }else{ return json(['success' => true, 'msg' => '更新成功']); } } return json(['success' => true, 'msg' => '更新成功@']); } //系统车辆租赁回来 public function systemCarRent() { //获取参数 $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() { //获取参数 $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, 'update_time' => time() ]); } //判断合同是否存在购买记录表中 $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() { //获取参数 $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'], 'update_time' => time() ]); if(!$updateLocalRes || $updateSverRes['code']==0){ return json(['success' => false, 'msg' => '更新失败']); }else{ return json(['success' => true, 'msg' => '更新成功']); } }else{ return json(['success' => true, 'msg' => '成功']); } } //车辆租赁签约合同状态更改 public function notifyVehicleContractUpdate() { if (!$this->request->isPost()) { return $this->fail('请求方式错误'); } $param = $this->request->post(); if (empty($param['contract_logistic_id'])) { return $this->fail('缺少必要参数'); } $model = VehicleContract::where('contract_logistic_id', $param['contract_logistic_id'])->find(); if (empty($model)) { return $this->fail('数据不存在'); } $cars = json_decode($model['cars_info'], true); $result = $model->where('id', $model['id'])->save($param); if ($result && isset($param['status']) && $param['status'] == 3) { $data = []; foreach ($cars as $k => $v) { $hasCar = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); if($hasCar->isEmpty()) { $data[$k]['car_id'] = $v['id']; $data[$k]['car_license'] = $v['license']; $data[$k]['type'] = 0; $data[$k]['status'] = 0; $data[$k]['company_id'] = $model['company_b_id']; $data[$k]['rent_time'] = 0; $data[$k]['rent_company_id'] = 0; $data[$k]['contract_id'] = $model['id']; $data[$k]['create_time'] = strtotime($model['create_time']); } } $vehicleRent = new VehicleRent(); $vehicleRent->saveAll($data); } //返回 return $result ? $this->success('更新成功') : $this->fail('更新失败'); } /** * 资产回调 */ public function notifyProperty() { $parmas = Request()->post(); if ($parmas) { if (!isset($parmas['company_id']) || $parmas['company_id'] < 0) { return json(['success' => false, 'msg' => '公司id不能为空']); } if (!isset($parmas['object_id'])) { return json(['success' => false, 'msg' => '对象id不能为空']); } $data = []; $object_id = explode(',', $parmas['object_id']); foreach ($object_id as $k => $v) { if ($v > 0) { $data[$k]['company_id'] = $parmas['company_id']; $data[$k]['object_id'] = $v; $data[$k]['type'] = 1; } } if (count($data) <= 0) { return json(['success' => false, 'msg' => '失败']); } $res = CompanyProperty::insertAll($data); if ($res) { return json(['success' => true, 'msg' => '成功']); } else { return json(['success' => false, 'msg' => '失败']); } } return json(['success' => false, 'msg' => '失败,没有参数']); } /** * 认证回调 */ public function notifyAuthentication() { $parmas = Request()->param(); Log::info(['认证回调:',$parmas]); try { $data=json_decode($parmas['data'],true); if($data['status']==2){ return json(['success' => false, 'msg' => '失败']); } if ($parmas) { // 商城系统商户入驻 if (isset($parmas['type']) && $parmas['type'] == 'shop_merchant') { Db::name('company_form')->where('master_email',$data['emailOrMobile'])->update(['type' => 1]); $this->shopMerchantCall($parmas); return json(['success' => true, 'msg' => '成功']); } else { $data=json_decode($parmas['data'],true); // 成功回调标记 $redis = RedisLogic::getInstance(); $cache = $redis->get('authentication_company_id_'.$parmas['id']); if (!empty($cache)) { $cacheData = json_decode($cache, true); $cacheData['is_callback'] = 1; $redis->set('authentication_company_id_'.$parmas['id'], json_encode($cacheData)); } if($data['status']==1){ Company::where('id', $parmas['id'])->update(['is_authentication' => 1]); } if($data['status']==2){ // 记录认证失败原因 Db::name('company_authentication_fail_log')->insert(['company_id'=>$parmas['id'],'fail_reason'=>$data['msg'],'create_time'=>time()]); Company::where('id', $parmas['id'])->update([ 'is_contract'=>0]); } return json(['success' => true, 'msg' => '成功']); } } } catch (\Exception $e) { Log::error('认证回调错误569:'.$e->getMessage()); } return json(['success' => false, 'msg' => '失败,没有参数']); } private function shopMerchantCall($parmas) { $shopMerchant = ShopMerchant::find(['id', $parmas['id']]); Log::error($shopMerchant); if($shopMerchant==null){ // Log::error(['没有商户580:',$parmas]); return json(['success' => false, 'msg' => '认证回调错误']); } $data=json_decode($parmas['data'],true); if($data['status']==1){ if($data['organizationRegNo']!=$shopMerchant['organization_code']){ Log::error(['认证回调错误586:',$parmas]); return json(['success' => false, 'msg' => '认证回调错误']); } $shopMerchant->save(['is_authentication' => 1]); // 生成合同 $createContractData = [ 'id' => $parmas['id'], 'party_a' => 1, 'party_a_name' => '泸州市海之农科技有限公司', 'party_b' => $parmas['id'], 'party_b_name' => $shopMerchant->company_name, 'contract_type' => 22, ]; $model = new ShopContract(); $model->contract_no = time(); $model->create_time = time(); $model->check_status = 1; $model->update_time = time(); $model->setAttrs($createContractData); $res = $model->save($createContractData); } if($data['status']==2){ // 记录认证失败原因 Db::name('company_authentication_fail_log')->insert(['company_id'=>$parmas['id'], 'log_type'=>3, 'fail_reason'=>$data['msg'], 'create_time'=>time()]); } } public function addVillagerInfo() { $params = $this->request->post(); $params['house_rent_info'] = json_encode($params['house_rent_info']); $params['land_rent_info'] = json_encode($params['land_rent_info']); $params['product_info'] = json_encode($params['product_info']); $params['idle_asset_rent_info'] = json_encode($params['idle_asset_rent_info']); $params['house_decoration_construction'] = json_encode($params['house_decoration_construction']); $params['create_time'] = time(); $params['update_time'] = time(); $model = Db::name('villager_information')->insertGetId($params); return $this->success('添加成功'); } public function getVillagerInfo() { $shopUserId = $this->request->get('shop_user_id'); $detail = Db::name('villager_information')->where('shop_user_id', $shopUserId)->findOrEmpty(); return $this->success('成功', $detail); } public function editVillagerInfo() { $params = $this->request->post(); $params['house_rent_info'] = json_encode($params['house_rent_info']); $params['land_rent_info'] = json_encode($params['land_rent_info']); $params['product_info'] = json_encode($params['product_info']); $params['idle_asset_rent_info'] = json_encode($params['idle_asset_rent_info']); $params['house_decoration_construction'] = json_encode($params['house_decoration_construction']); Db::name('villager_information')->where('shop_user_id', $params['shop_user_id'])->update($params); return $this->success('更新成功'); } }