diff --git a/app/api/controller/VehicleController.php b/app/api/controller/VehicleController.php index 972716712..05bce77d7 100644 --- a/app/api/controller/VehicleController.php +++ b/app/api/controller/VehicleController.php @@ -238,7 +238,7 @@ class VehicleController extends BaseApiController return $this->fail('当前镇街公司未签约'); } //判断是否申请过 - $vehicleContract = VehicleContract::where('company_b_id',$this->userInfo['company_id'])->where('type','<>',2)->whereNotIn('status','4,5,6')->find(); + $vehicleContract = VehicleContract::where('company_b_id',$this->userInfo['company_id'])->whereNotIn('type','2,3')->whereNotIn('status','4,5,6')->find(); if(!empty($vehicleContract)){ return $this->fail('请勿重复申请'); } @@ -412,60 +412,31 @@ class VehicleController extends BaseApiController public function villageCompanyIndex() { //获取公司信息 - $company = Company::field('id,company_type,province,city,area,street,village,brigade')->where('id',$this->userInfo['company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']); + $company = Company::field('id,master_name as user_name,master_phone as user_phone,company_name,company_type,province,city,area,street,village,brigade')->where('id',$this->userInfo['company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']); if(empty($company)){ return $this->fail('数据错误'); } if($company['company_type'] != 18 ){ return $this->fail('非小组公司不能访问'); } - //获取申请信息 + //获取签约合同 $vehicleContract = VehicleContract::where('company_b_id',$company['id'])->where('type','<>',2)->order('id desc')->findOrEmpty(); - if($vehicleContract['status'] == 3){ - if(!empty($vehicleContract['cars_info'])){ - $vehicleContract['cars_info'] = json_decode($vehicleContract['cars_info'],true); - if(!empty($vehicleContract['cars_info'])){ - $arr = $vehicleContract['cars_info']; - $arr['mileage'] = 0; - $position = curl_get(env('project.logistic_domain').'/api/getCarLocal?car_id='.$arr['id']); - if($position && $position['code'] == 1){ - $arr['lon'] = $position['data']['lon']; - $arr['lat'] = $position['data']['lat']; - } - $vehicleContract['cars_info'] = $arr; - } - } - $vehicleContract['province'] = $company['province_name']; - $vehicleContract['city'] = $company['city_name']; - $vehicleContract['area'] = $company['area_name']; - $vehicleContract['street'] = $company['street_name']; - $vehicleContract['village'] = $company['village_name']; - $vehicleContract['brigade'] = $company['brigade_name']; - } - //返回数据 return $this->success('请求成功',$vehicleContract->toArray()); } //车辆详情 public function vehicleInfo() { - //获取参数 - $carId = $this->request->get('car_id'); - if(empty($carId)){ - return $this->fail('缺少必要参数'); - } //获取数据 - $data = VehicleRent::where('car_id',$carId)->find(); - if(empty($data)){ - return $this->fail('数据错误'); + $data = VehicleRent::where('rent_company_id',$this->userInfo['company_id'])->where('status',2)->findOrEmpty(); + if($data->isEmpty()){ + return $this->fail('数据不存在'); } $data['mileage'] = 0; - if($data['status'] == 2){ - $data['company'] = Company::field('company_name,master_name as user_name,master_phone as user_phone,province,city,area,street,village,brigade')->where('id',$data['rent_company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']); - //获取合同 - $data['contract'] = VehicleContract::field('id,contract_no,contract_url,file,status,create_time,update_time')->where('id',$data['contract_id'])->findOrEmpty(); - } + $data['company'] = Company::field('company_name,master_name as user_name,master_phone as user_phone,province,city,area,street,village,brigade')->where('id',$data['rent_company_id'])->find()->append(['province_name', 'city_name', 'area_name', 'street_name', 'village_name','brigade_name']); + //获取合同 + $data['contract'] = VehicleContract::field('id,contract_no,contract_url,file,status,create_time,update_time')->where('id',$data['contract_id'])->findOrEmpty(); //当前坐标位置 - $position = curl_get(env('project.logistic_domain').'/api/getCarLocal?car_id='.$carId); + $position = curl_get(env('project.logistic_domain').'/api/getCarLocal?car_id='.$data['car_id']); if($position && $position['code'] == 1){ $data['position'] = $position['data']; }else{ @@ -757,5 +728,32 @@ class VehicleController extends BaseApiController VehicleRent::where('car_id','in',$car_ids)->update(['status'=>1]); return $this->success('合同发起成功,等待审核 from task'); } + //如果有租赁车俩和上传自有车辆,但没有购买镇街公司租赁的车辆 则先向镇街公司发起解约合同 + if(!$xzRentCars->isEmpty() && $zjRentCars->isEmpty()){ + //获取自有车辆或以租赁车辆信息 + //生成本地解约合同 + VehicleContract::create([ + 'contract_no' => time(), + 'contract_logistic_id' => 0, + 'company_a_name' => $zjCompany['company_name'], + 'company_a_code' => $zjCompany['organization_code'], + 'company_a_user' => $zjCompany['master_name'], + 'company_a_phone' => $zjCompany['master_phone'], + 'company_a_email' => $zjCompany['master_email'], + 'company_b_id' => $xzCompany['id'], + 'company_b_name' => $xzCompany['company_name'], + 'company_b_code' => $xzCompany['organization_code'], + 'company_b_user' => $xzCompany['master_name'], + 'company_b_phone' => $xzCompany['master_phone'], + 'company_b_email' => $xzCompany['master_email'], + 'num' =>1, + 'cars_info' => json_encode($cars), + 'type' => 2, + 'status' => 0, + 'create_time' => time(), + 'update_time' => time(), + ]); + return $this->success('合同发起成功,等待审核 from task'); + } } } \ No newline at end of file