diff --git a/app/adminapi/controller/contract/VehicleContractController.php b/app/adminapi/controller/contract/VehicleContractController.php index 6bd5e9ace..8e5181937 100644 --- a/app/adminapi/controller/contract/VehicleContractController.php +++ b/app/adminapi/controller/contract/VehicleContractController.php @@ -172,11 +172,13 @@ class VehicleContractController extends BaseAdminController 'contract_no' => $signRes->data, 'status' => 2 ]); - curl_post(env('project.logistic_domain').'/api/contractUpdate',[],[ - 'id' => $contract['contract_logistic_id'], - 'contract_no' => $signRes->data, - 'status' => 2, - ]); + 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, + ]); + } $this->sendSms($params['id'],$smsTitle); return $this->success('合同发送成功'); } else { diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index 0e4c4e59d..e0c128272 100755 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -21,6 +21,7 @@ use app\common\model\contract\Contract; use app\common\model\contract\ShopContract; use app\common\model\contract\VehicleContract; use app\common\model\ShopMerchant; +use app\common\model\vehicle\VehicleBuyRecord; use app\common\model\vehicle\VehicleRent; use Symfony\Component\HttpClient\HttpClient; use think\cache\driver\Redis; @@ -428,23 +429,72 @@ class IndexController extends BaseApiController '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]); - //更改租赁列表车辆状态 - $vehicle = json_decode($contract['cars_info'], true); - //获取租赁车辆信息 - $vehicleRentInfo = VehicleRent::where('car_id', $vehicle['id'])->find(); - //更新原始合同类型 - VehicleContract::where('id', $vehicleRentInfo['contract_id'])->update(['status' => 6]); - VehicleRent::where('car_id', $vehicle['id'])->update([ - 'status' => 3, - ]); - //通知物流系统跟新 - curl_post(env('project.logistic_domain').'/api/cancelRent', [], [ - 'car_id' => $vehicle['id'], - 'status' => 1 - ]); - return json(['success' => true, 'msg' => '成功']); + 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){} + //镇街公司与平台公司解约 + if($vehicleBuyRecord['status'] == 2){ + //删除本地租赁信息 + 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'=>3]); + return json(['success' => true, 'msg' => '成功']); + } + }else{ + //更改租赁列表车辆状态 + $vehicle = json_decode($contract['cars_info'], true); + //获取租赁车辆信息 + $vehicleRentInfo = VehicleRent::where('car_id', $vehicle['id'])->find(); + //更新原始合同类型 + VehicleContract::where('id', $vehicleRentInfo['contract_id'])->update(['status' => 6]); + VehicleRent::where('car_id', $vehicle['id'])->update([ + 'status' => 3, + ]); + //通知物流系统跟新 + curl_post(env('project.logistic_domain').'/api/cancelRent', [], [ + 'car_id' => $vehicle['id'], + 'status' => 1 + ]); + return json(['success' => true, 'msg' => '成功']); + } } else { return json(['success' => true, 'msg' => '成功']); } diff --git a/app/api/controller/VehicleController.php b/app/api/controller/VehicleController.php index 954e8e706..972716712 100644 --- a/app/api/controller/VehicleController.php +++ b/app/api/controller/VehicleController.php @@ -741,12 +741,12 @@ class VehicleController extends BaseApiController $res = VehicleContract::create($curl_result['data']); //生成关联记录 VehicleBuyRecord::create([ - 'company_id' => $zjCompanyInfo['id'], - 'company_name' => $zjCompanyInfo['company_name'], - 'company_code' => $zjCompanyInfo['organization_code'], - 'company_user' => $zjCompanyInfo['master_name'], - 'company_phone' => $zjCompanyInfo['master_phone'], - 'company_email' => $zjCompanyInfo['master_email'], + 'company_id' => $xzCompany['id'], + 'company_name' => $xzCompany['company_name'], + 'company_code' => $xzCompany['organization_code'], + 'company_user' => $xzCompany['master_name'], + 'company_phone' => $xzCompany['master_phone'], + 'company_email' => $xzCompany['master_email'], 'cars_info' => json_encode($cars), 'num' => count($cars), 'status' => 2,