test
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

225 lines
9.3 KiB

<?php
defined('IN_IA') or exit('Access Denied');
class Vehicle {
/**
* Comment: 默认标签列表
* Author: zzw
* Date: 2021/4/1 10:10
* @return array[]
*/
public static function defaultLabelList(){
//is_passenger 是否适用于载客:1=不适用,2=适用
//is_goods 是否适用于载货:1=不适用,2=适用
//are_passenger 是否适用于找客:1=不适用,2=适用
//are_goods 是否适用于找货:1=不适用,2=适用
$list = [
['name' => '干净整洁','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '消毒','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '限男性','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '限女性','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '男女不限','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '可带宠物','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '禁止宠物','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '上门接送','is_passenger' => 2,'is_goods' => 2,'are_passenger' => 2,'are_goods' => 2],
['name' => '可包车','is_passenger' => 2,'is_goods' => 2,'are_passenger' => 2,'are_goods' => 2],
['name' => '走高速','is_passenger' => 2,'is_goods' => 2,'are_passenger' => 2,'are_goods' => 2],
['name' => '需后备箱','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 1,'are_goods' => 1],
['name' => '有小孩','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '无小孩','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '多件行李','is_passenger' => 2,'is_goods' => 1,'are_passenger' => 2,'are_goods' => 1],
['name' => '赶时间','is_passenger' => 2,'is_goods' => 2,'are_passenger' => 2,'are_goods' => 2],
['name' => '准时发车','is_passenger' => 2,'is_goods' => 2,'are_passenger' => 2,'are_goods' => 2],
['name' => '免费搬货','is_passenger' => 1,'is_goods' => 2,'are_passenger' => 1,'are_goods' => 2],
['name' => '付费搬货','is_passenger' => 1,'is_goods' => 2,'are_passenger' => 1,'are_goods' => 2],
['name' => '货物代运','is_passenger' => 1,'is_goods' => 1,'are_passenger' => 1,'are_goods' => 2],
['name' => '搬家','is_passenger' => 1,'is_goods' => 2,'are_passenger' => 1,'are_goods' => 2]
];
return $list;
}
/**
* Comment: 记录用户浏览历史
* Author: zzw
* Date: 2021/4/7 15:30
* @param $id
* @param $mid
*/
public static function recordHistory($id,$mid){
global $_W,$_GPC;
$data = [
'vehicle_id' => $id,
'mid' => $mid,
'uniacid' => $_W['uniacid']
];
$isHave = pdo_get(PDO_NAME."vehicle_history",$data);
if($isHave){
//存在浏览历史 修改最近浏览时间
pdo_update(PDO_NAME."vehicle_history",['update_time'=>time()],['id'=>$isHave['id']]);
}else{
//不存在浏览历史 添加浏览历史
$data['create_time'] = $data['update_time'] = time();
pdo_insert(PDO_NAME."vehicle_history",$data);
}
}
/**
* Comment: 发布成功模板消息通知
* Author: zzw
* Date: 2021/4/25 9:33
* @param $id
* @param $status
* @throws \GuzzleHttp\Exception\GuzzleException
*/
public static function sendSuccessfullyPublishedMessage($id,$status){
$vehicle = pdo_get(PDO_NAME."vehicle",['id'=>$id]);
//根据状态获取发送内容 状态:1=待付款,2=待审核,3=未通过,4=进行中,5=已完成
if($status == 3) $statusText = "未通过";
else $statusText = "已通过";
//生成模板消息
$modelData = [
'first' => "您发布的出行路线已审核",
'type' => '路线审核',
'content' => '您于'.date("Y-m-d H:s",$vehicle['create_time']).'发布的路线已审核完毕!',
'status' => $statusText,
'time' => date("Y-m-d H:i:s",time()),
'remark' => "点击查看"
];
$url = h5_url('pages/subPages2/hitchRide/hitchRideDetails/hitchRideDetails',['id'=>$id]);
TempModel::sendInit('service',$vehicle['mid'],$modelData,$vehicle['source'],$url);
}
/**
* Comment: 发送消息通知代理商员工进行路线审核
* Author: zzw
* Date: 2021/4/25 9:41
* @param $id
*/
public static function sendAgentStaffTipMessage($id){
//获取基本信息
$vehicle = pdo_get(PDO_NAME."vehicle",['id'=>$id]);
$nickname = pdo_getcolumn(PDO_NAME."member",['id'=>$vehicle['mid']],'nickname');
//生成模板消息
$first = '有新的顺风车路线需要进行审核!';//消息头部
$content = "您好,用户[{$nickname}]发布了一条顺风车路线,[{$vehicle['start_address']} ~ {$vehicle['end_address']}],请尽快进行审核!";//业务内容
$type = "路线审核";//业务类型
$status = "待审核";//处理结果
$remark = "请尽快处理!";//备注信息
$time = time();//操作时间
News::noticeAgent('vehicle_examine',$vehicle['aid'],$first,$type,$content,$status,$remark,$time);
}
/**
* Comment: 处理出发时间
* Author: zzw
* Date: 2021/4/7 10:50
* @param $time
* @return false|string
*/
public static function handleStartTime($time){
$toDayStart = strtotime(date("Y-m-d 00:00:00",time()));//今天 - 开始时间
$toDayEnd = strtotime(date("Y-m-d 23:59:59",time()));//今天 - 结束时间
$dayStart = strtotime(date("Y-m-d 00:00:00",strtotime("+1 Day")));//明天 - 开始时间
$dayEnd = strtotime(date("Y-m-d 23:59:59",strtotime("+1 Day")));//明天 - 结束时间
//判断
if ($time > $toDayStart && $time <= $toDayEnd) $text = '今天 '.date("H:i",$time);
else if ($time > $dayStart && $time <= $dayEnd) $text = '明天 '.date("H:i",$time);
else $text = date("Y-m-d H:i",$time);
return $text;
}
/**
* Comment: 距离处理
* Author: zzw
* Date: 2021/4/7 10:52
* @param $distance
* @return string
*/
public static function handleDistance($distance){
if($distance){
if($distance < 0) $text = $distance.'m';
else $text = sprintf("%.2f",$distance / 1000).'km';
}
return $text;
}
/**
* Comment: 处理运输类型 1=载客,2=载货,3=找客,4=找货
* Author: zzw
* Date: 2021/4/7 10:54
* @param $transportType
* @return string
*/
public static function handleTransport($transportType){
switch ($transportType){
case 1:$text = '载客';break;
case 2:$text = '载货';break;
case 3:$text = '找客';break;
case 4:$text = '找货';break;
}
return $text;
}
/**
* Comment: 获取城市名称
* Author: zzw
* Date: 2021/4/7 11:08
* @param $id
* @return false|mixed
*/
public static function handleArea($id){
$name = pdo_getcolumn(PDO_NAME."area",['id'=>$id],'name');
return $name;
}
/**
* Comment: 获取标签列表
* Author: zzw
* Date: 2021/4/7 11:19
* @param $ids
* @return array
*/
public static function handleLabel($ids){
if($ids){
//如果为字符串 则转换为数组
if(is_string($ids)) $ids = explode(',',$ids);
$list = pdo_getall(PDO_NAME."vehicle_label",['id IN'=>$ids],['name']);
$list = array_column($list,'name');
return $list ? : [];
}
return [];
}
/**
* Comment: 发布回调
* Author: zzw
* Date: 2021/4/21 17:58
* @param $params
*/
public static function payVehicleOrderNotify($params) {
global $_W;
$order = pdo_get(PDO_NAME."order",['orderno' => $params['tid']],['plugin','uniacid','aid','id','fkid','fightstatus','num']);
$_W['uniacid'] = $order['uniacid'];
$_W['aid'] = $order['aid'];
//更新订单
$data = ['status' => $params['result'] == 'success' ? 3 : 0];
$data['paytype'] = $params['type'];
if ($params['tag']['transaction_id']) $data['transid'] = $params['tag']['transaction_id'];
$data['paytime'] = TIMESTAMP;
pdo_update(PDO_NAME.'order',$data,['id' => $order['id']]);
//修改路线状态
$set = Setting::agentsetting_read('vehicle_set');
//状态:1=待付款,2=待审核,3=未通过,4=进行中,5=已完成
$status = $set['is_examine'] == 1 ? 2 : 4;//是否需要审核 1=需要审核,2=免审核
pdo_update(PDO_NAME."vehicle",['status'=>$status],['id'=>$order['fkid']]);
//发送代理商员工审核通知模板
if($status == 2) self::sendAgentStaffTipMessage($order['fkid']);
}
}