TaskSystem/app/common/logic/vehicle/VehicleLogic.php
2023-08-31 01:24:26 +08:00

89 lines
3.8 KiB
PHP

<?php
namespace app\common\logic\vehicle;
use app\common\logic\BaseLogic;
use app\common\model\Company;
use app\common\model\contract\VehicleContract;
use app\common\model\vehicle\VehicleRent;
use app\common\model\vehicle\VehicleVillageApply;
class VehicleLogic extends BaseLogic
{
public static string $url = 'http://logistics.lihaink.cn';
// public static string $url = 'http://www.lst.local';
public static function initiate_contract_logistic($params):array|bool {
//查找乙方公司信息
$party_b = Company::field('id,company_name,organization_code,master_name,master_phone,master_email,company_type')->where('id',$params['party_b'])->find();
//镇街公司
if(!$party_b || $party_b->isEmpty() || $party_b['company_type'] != 16){
return ['code'=>0,'msg'=>'非镇街公司不能签约'];
}
//生成合同
$result = curl_post(self::$url.'/api/signContract',[],[
'num' => $data['num'],
'company_id' => $party_b['id'],
'company_name' => $party_b['company_name'],
'company_code' => $party_b['organization_code'],
'company_user' => $party_b['master_name'],
'company_phone' => $party_b['master_phone'],
'company_email' => $party_b['master_email'],
]);
if($result && $result['code'] == 1){
VehicleContract::create($result['data']);
}
return $result ?? false;
}
public static function initiate_contract_town($params):array|bool {
//获取申请信息
$apply = VehicleVillageApply::where('id',$params['apply_id'])->find();
if($apply['type'] == 0){
//获取车辆信息
$car = VehicleRent::where('car_id',$params['car_id'])->find();
if($car->isEmpty() || $car['status'] == 1){
return ['code'=>0,'msg'=>'车辆信息错误'];
}
//生成合同
$carJson = json_encode(['id'=>$car['id'],'license'=>$car['car_license']]);
}else{
$carJson = json_encode(['license'=>$apply['car_license']]);
}
//获取甲方公司
if($params['party_a'] != $apply['town_company_id']){
return ['code'=>0,'msg'=>'镇街公司信息错误'];
}
$party_a = Company::field('id,company_name,organization_code,master_name,master_phone,master_email')->where('id',$params['company_id'])->find();
//获取乙方公司
$party_b = Company::field('id,company_name,organization_code,master_name,master_phone,master_email,company_type')->where('id',$apply['village_company_id'])->find();
$data = [
'contract_no' => time(),
'company_a_name' => $party_a['company_name'],
'company_a_code' => $party_a['company_organization_code'],
'company_a_user' => $party_a['company_user'],
'company_a_phone' => $party_a['company_phone'],
'company_a_email' => $party_a['company_email'],
'company_b_id' => $party_b['company_id'],
'company_b_name' => $party_b['company_name'],
'company_b_code' => $party_b['company_code'],
'company_b_user' => $party_b['company_user'],
'company_b_phone' => $party_b['company_phone'],
'company_b_email' => $party_b['company_email'],
'num' => 1,
'cars_info' => $carJson,
'type' => $apply['type'] == 0 ? 0 : 1,
'status' => 0,
'create_time' => time(),
'update_time' => time(),
];
$result = VehicleContract::create($data);
//返回
if($result->id){
return ['code'=>1,'msg'=>'合同发起成功,等待审核'];
}else{
return ['code'=>0,'msg'=>'合同发起失败,请稍后重试'];
}
}
}