This commit is contained in:
unknown 2023-08-31 01:19:57 +08:00
parent 636fb51c03
commit fc96a26498
6 changed files with 72 additions and 49 deletions

View File

@ -10,6 +10,8 @@ use app\common\model\platform\Platform;
class ContractController extends BaseAdminController
{
private $domain = 'https://worker-task.lihaink.cn';
// private $domain = 'http://www.task.local';
public function initiatingContract() {
//获取参数
$params = $this->request->post(['id']);
@ -18,18 +20,16 @@ class ContractController extends BaseAdminController
}
//获取数据
$contract = Contract::where('id',$params['id'])->find();
if(!$contract || $contract->isEmpty()){
if(empty($contract)){
return $this->fail('数据不存在');
}
if($contract['status'] != 1){
return $this->fail('合同状态错误');
}
//获取平台公司
$platform = Platform::find(1);
$signData = [
'name' => $platform['company_name'] . '的合同',
'name' => $contract['company_a_name'] . '的合同',
'signatories' => [
['fullName' => $platform['company_name'], 'identityType' => 12, 'identityCard' => $platform['company_organization_code'], 'email' => $platform['company_email'], 'noNeedVerify' => 1, 'signLevel' => 1],
['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']
@ -43,7 +43,7 @@ class ContractController extends BaseAdminController
]);
$this->sendSms($params['id']);
$newData = Contract::where('id', $params['id'])->find();
curl_post('https://worker-task.lihaink.cn/api/index/notifyVehicleContractUpdate',[],[
curl_post($this->domain.'/api/index/notifyVehicleContractUpdate',[],[
'contract_logistic_id' => $contract['id'],
'contract_no' => $signRes->data,
'url' => $newData['url'],
@ -58,7 +58,7 @@ class ContractController extends BaseAdminController
public function sendSms($id) {
//获取合同数据
$contract = Contract::where('id',$id)->find();
if ($contract && !$contract->isEmpty() && $contract['file'] != '') {
if (!empty($contract) && $contract['file'] != '') {
//发送短信
$data = [
//甲方
@ -134,16 +134,22 @@ class ContractController extends BaseAdminController
$data = Contract::where($where)
->page($pageNo, $pageSize)
->order('create_time desc')
->select();
->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() {
//获取参数
$id = $this->request->get('id');
if(empty($id)){
$this->fail('参数错误');
if(empty($id)) {
return $this->fail('参数错误');
}
$data = Contract::where('id',$id)->find();
if(empty($data)){
return $this->fail('没找到数据');
}
$data['cars_info'] = json_decode($data['cars_info'],true);
return $this->success('success',$data->toArray());
}

View File

@ -5,6 +5,7 @@ namespace app\api\controller;
use app\common\model\contract\Contract;
use app\common\model\platform\Platform;
use app\common\model\vehicle\Vehicle;
use think\facade\Db;
class ContractController extends BaseApiController
{
@ -23,9 +24,8 @@ class ContractController extends BaseApiController
}
//获取车辆数据
$cars = Vehicle::field('id,license')->where([
['type','=',1],
['status','=',1],
['is_del','=',1],
['type','=',0],
['status','=',0],
])->limit($params['num'])->select();
if($cars->isEmpty() || $cars->count() < $params['num']){
return $this->fail('车辆数量不足');
@ -50,17 +50,23 @@ class ContractController extends BaseApiController
'create_time' => time(),
'update_time' => time(),
];
//写入数据
$result = Contract::create($data);
//更改车辆状态
$carStatus = Vehicle::where('id','in',array_column($cars->toArray(),'id'))->update(['status'=>2,'update_time'=>time()]);
//返回
if($result->id && $carStatus) {
$data['contract_logistic_id'] = $result->id;
$data['type'] = 0;
return $this->success('合同发起成功,等待审核',$data);
}else{
return $this->fail('请求失败');
Db::startTrans();
try {
$res1 = Contract::create($data);
$res2 = Vehicle::where('id','in',array_column($cars->toArray(),'id'))->update(['status'=>1,'update_time'=>time()]);
if($res1->id && $res2){
$data['contract_logistic_id'] = $res1->id;
$data['type'] = 0;
Db::commit();
return $this->success('合同发起成功,等待审核',$data);
}else{
Db::rollback();
return $this->fail('合同发起失败,请稍后重试');
}
} catch (\Exception $e) {
// 回滚事务
Db::rollback();
return $this->fail($e->getMessage());
}
}

View File

@ -10,19 +10,15 @@ class HetongController extends BaseApiController
public function url()
{
$id = Request()->get('id');
$type = Request()->get('type');
$msg='合同不存在';
if(empty($type) || empty($id)){
$msg='参数错误';
$params = $this->request->get(['id','type']);
if(empty($params['id']) || empty($params['type'])){
return $this->fail('缺少必要参数');
}
if ($id && $type) {
$find = Contract::where('id', $id)->find();
if ($find && $find['url']) {
$url = json_decode($find['url'], true);
if(isset($url[$type])){
return redirect($url[$type]);
}
$find = Contract::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 '<style type="text/css"> * { padding: 0; margin: 0; } div { padding: 4px 48px; } a { color: #2E5CD5; cursor: pointer; text-decoration: none } a:hover { text-decoration: underline; } body { background: #fff; font-family: "Century Gothic", "Microsoft yahei"; color: #333; font-size: 18px; } h1 { font-size: 100px; font-weight: normal; margin-bottom: 12px; } p { line-height: 1.6em; font-size: 42px } </style> <div style="padding: 24px 48px;"> <h1>:) </h1> <p>'.$msg.'</p> </div>';

View File

@ -33,6 +33,9 @@ class IndexController extends BaseApiController
public array $notNeedLogin = ['index', 'config', 'policy', 'decorate','notifyUrl'];
private $domain = 'https://worker-task.lihaink.cn';
// private $domain = 'http://www.task.local';
/**
* @notes 首页数据
@ -101,22 +104,28 @@ class IndexController extends BaseApiController
}
//获取合同数据
$contract = Contract::where('id',$params['id'])->find();
if(!$contract || $contract->isEmpty()){
if(empty($contract)){
return json(['success' => false, 'msg' => '参数错误']);
}
$carIds = implode(',',array_column(json_decode($contract['cars_info']),'id'));
if($contract['status'] != 2){
return json(['success' => false, 'msg' => '合同状态错误']);
}
$vehicle = json_decode($contract['cars_info'],true);
if ($contract['signing_timer'] == 0) {
Contract::where('id',$params['id'])->update(['signing_timer'=>1]);
curl_post('https://worker-task.lihaink.cn/api/index/notifyVehicleContractUpdate',[],[
//更新本地合同状态
Contract::where('id',$contract['id'])->update(['signing_timer'=>1]);
//更新远程
curl_post($this->domain.'/api/index/notifyVehicleContractUpdate',[],[
'contract_logistic_id' => $contract['id'],
'signing_timer' => 1,
]);
}else if($contract['signing_timer'] == 1) {
//更新本地合同状态
Contract::where('id',$params['id'])->update(['signing_timer'=>2,'status'=>3]);
Vehicle::where('id','in',$carIds)->update(['status'=>3]);
$cars = json_decode($contract['cars_info'],true);
//更新远程
Vehicle::where('id','in',array_column($vehicle,'id'))->update(['status'=>3]);
$data = [];
foreach($cars as $v){
foreach($vehicle as $v){
$data[] = [
'car_id' => $v['id'],
'company_id' => $contract['company_b_id'],
@ -125,15 +134,16 @@ class IndexController extends BaseApiController
'company_phone' => $contract['company_b_phone'],
];
}
VehicleRent::saveAll($data);
curl_post('https://worker-task.lihaink.cn/api/index/notifyVehicleContractUpdate',[],[
$vehicleRent = new VehicleRent();
$vehicleRent -> saveAll($data);
curl_post($this->domain.'/api/index/notifyVehicleContractUpdate',[],[
'contract_logistic_id' => $contract['id'],
'signing_timer' => 2,
'status' => 3
]);
curl_post('https://worker-task.lihaink.cn/v1/notify_property',[],[
curl_post($this->domain.'/api/v1/notify_property',[],[
'company_id' => $contract['company_b_id'],
'object_id' => $carIds
'object_id' => implode(',',array_column($vehicle,'id'))
]);
}
return json(['success' => true, 'msg' => '成功']);

View File

@ -26,6 +26,9 @@ class JunziqianController extends BaseApiController
private $encryMethod;
/**默认ts单位:1毫秒,2秒*/
private $tsType;
private $domain = 'http://logistics.lihaink.cn';
/**
* 填充签名数据
* @param $req array
@ -135,7 +138,7 @@ class JunziqianController extends BaseApiController
$request->serverCa = 1; //是否需要服务端云证书
$request->fileType = 1; //合同上传方式 url
$request->url = $data['url'];
$request->notifyUrl = 'http://logistics.lihaink.cn/api/index/notifyUrl?id='.$id;
$request->notifyUrl = $this->domain.'/api/index/notifyUrl?id='.$id;
$request->needQifengSign = 1;
//发起PING请求
// halt($request);

View File

@ -32,4 +32,6 @@ Route::rule('createRentCarUser','Contract/createRentCarUser','post');
/*-------------------------------------------------------------------------------------------*/
Route::rule('signContract','Contract/signContract','post');
Route::rule('updateContract','Contract/updateContract','post');
Route::rule('updateContract','Contract/updateContract','post');
Route::rule('hetong/url','Hetong/url','get');