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.
305 lines
12 KiB
305 lines
12 KiB
<?php
|
|
defined('IN_IA') or exit('Access Denied');
|
|
|
|
|
|
class Route_WeliamController{
|
|
/**
|
|
* Comment: 路线列表
|
|
* Author: zzw
|
|
* Date: 2021/4/2 9:45
|
|
*/
|
|
public function routeList(){
|
|
global $_W,$_GPC;
|
|
//参数获取
|
|
$page = max(1,intval($_GPC['page']));
|
|
$pageIndex = 10;
|
|
$pageStart = $page * $pageIndex - $pageIndex;
|
|
$nickname = $_GPC['nickname'] ? : '';
|
|
$status = $_GPC['status'] ? : 0;
|
|
$transportType = $_GPC['transport_type'] ? : 0;
|
|
//条件生成
|
|
$where = " where a.uniacid = {$_W['uniacid']} AND a.aid = {$_W['aid']} ";
|
|
if($nickname) $where .= " AND b.nickname LIKE '%{$nickname}%' ";
|
|
if($status > 0) $where .= " AND a.status = {$status} ";
|
|
if($transportType > 0) $where .= " AND a.transport_type = {$transportType} ";
|
|
//列表获取
|
|
$field = "a.id,a.mid,a.transport_type,a.start_time,a.start_address,a.end_address,a.create_time,
|
|
a.contacts,a.contacts_phone,a.status,b.nickname,b.avatar";
|
|
$order = ' ORDER BY a.create_time DESC,a.id DESC ';
|
|
$limit = " LIMIT {$pageStart},{$pageIndex} ";
|
|
$sql = "SELECT {$field} FROM ".tablename(PDO_NAME."vehicle")
|
|
." as a LEFT JOIN ".tablename(PDO_NAME."member")
|
|
." as b ON a.mid = b.id ";
|
|
$list = pdo_fetchall($sql.$where.$order.$limit);
|
|
foreach ($list as &$val){
|
|
//时间处理
|
|
$val['start_time'] = date("Y-m-d H:i",$val['start_time']);
|
|
$val['create_time'] = date("Y-m-d H:i:s",$val['create_time']);
|
|
}
|
|
//分页操作
|
|
$totalSql = str_replace($field,'count(*)',$sql);
|
|
$total = pdo_fetchcolumn($totalSql.$where);
|
|
$pager = wl_pagination($total,$page,$pageIndex);
|
|
|
|
include wl_template('route/index');
|
|
}
|
|
/**
|
|
* Comment: 路线添加/编辑
|
|
* Author: zzw
|
|
* Date: 2021/4/2 9:55
|
|
*/
|
|
public function routeEdit(){
|
|
global $_W,$_GPC;
|
|
//基本参数信息获取
|
|
$id = $_GPC['id'] ? : '';
|
|
//接收信息 并且进行对应的处理
|
|
if($_W['ispost']){
|
|
$data = $_GPC['data'];
|
|
//判断内容是否完善
|
|
if (!$data['mid']) wl_json(0,'请选择发布人');
|
|
if ($data['transport_type'] == 1 && !$data['people']) wl_json(0,'请输入人数');
|
|
if ($data['transport_type'] == 2 && !$data['weight']) wl_json(0,'请输入重量');
|
|
if ($data['transport_type'] == 3 && !$data['people']) wl_json(0,'请输入空位');
|
|
if ($data['transport_type'] == 4 && !$data['weight']) wl_json(0,'请输入载重');
|
|
if (!$data['start_time']) wl_json(0,'请选择出发时间');
|
|
if (!$data['start_address'] || !$data['start_lng'] || !$data['start_lat']) wl_json(0,'请选择出发点详细地址');
|
|
if (!$data['end_address'] || !$data['end_lng'] || !$data['end_lat']) wl_json(0,'请选择终点点详细地址');
|
|
if (!$data['contacts']) wl_json(0,'请输入联系人');
|
|
if (!$data['contacts_phone']) wl_json(0,'请输入联系方式');
|
|
//信息处理
|
|
if(is_array($data['pass_by'])) $data['pass_by'] = implode(',',$data['pass_by']);
|
|
if(is_array($data['label_id'])) $data['label_id'] = implode(',',$data['label_id']);
|
|
$data['start_time'] = strtotime($data['start_time']);
|
|
//根据经纬度获取区域信息
|
|
$startId = Area::getAreaId($data['start_lat'],$data['start_lng']);
|
|
$data['start_province_id'] = $startId['province_id'];
|
|
$data['start_city_id'] = $startId['city_id'];
|
|
$data['start_area_id'] = $startId['area_id'];
|
|
$endId = Area::getAreaId($data['end_lat'],$data['end_lng']);
|
|
$data['end_province_id'] = $endId['province_id'];
|
|
$data['end_city_id'] = $endId['city_id'];
|
|
$data['end_area_id'] = $endId['area_id'];
|
|
//根据是否存在id 判断是添加操作还是修改操作
|
|
if($id){
|
|
pdo_update(PDO_NAME."vehicle",$data,['id'=>$id]);
|
|
|
|
wl_json(1,'编辑成功');
|
|
}else{
|
|
$data['uniacid'] = $_W['uniacid'];
|
|
$data['aid'] = $_W['aid'];
|
|
$data['pv'] = 0;
|
|
$data['create_time'] = time();
|
|
pdo_insert(PDO_NAME."vehicle",$data);
|
|
|
|
wl_json(1,'发布成功');
|
|
}
|
|
}
|
|
//准备信息
|
|
$province = pdo_getall(PDO_NAME."area",['level'=>1,'visible'=>2],['id','name']);//省级列表
|
|
$label = pdo_getall(PDO_NAME."vehicle_label",['uniacid'=>$_W['uniacid'],'aid'=>$_W['aid']]
|
|
,['id','name','is_passenger','is_goods','are_passenger','are_goods'],'','sort DESC');
|
|
//编辑准备信息
|
|
if($id){
|
|
//修改信息准备
|
|
$info = pdo_get(PDO_NAME."vehicle",['id'=>$id]);
|
|
//区域信息获取
|
|
if($info['start_city_id']) $startCity = pdo_getall(PDO_NAME."area",['pid'=>$info['start_province_id']],['id','name']);//出发城市 - 市列表
|
|
if($info['start_area_id']) $startArea = pdo_getall(PDO_NAME."area",['pid'=>$info['start_city_id']],['id','name']);//出发城市 - 区列表
|
|
if($info['end_city_id']) $endCity = pdo_getall(PDO_NAME."area",['pid'=>$info['end_province_id']],['id','name']);//终点 - 市列表
|
|
if($info['end_area_id']) $endArea = pdo_getall(PDO_NAME."area",['pid'=>$info['end_city_id']],['id','name']);//终点 - 区列表
|
|
//获取发布方信息
|
|
$user = pdo_get(PDO_NAME."member",['id'=>$info['mid']],['nickname','avatar']);
|
|
//处理标签信息
|
|
$info['pass_by'] = $info['pass_by'] ? explode(',',$info['pass_by']) : [];
|
|
$info['label_id'] = $info['label_id'] ? explode(',',$info['label_id']) : [];
|
|
//时间信息处理
|
|
$info['start_time'] = date('Y-m-d H:i',$info['start_time']);
|
|
unset($info['id'],$info['uniacid'],$info['aid']);
|
|
}
|
|
|
|
include wl_template('route/edit');
|
|
}
|
|
/**
|
|
* Comment: 删除标签信息
|
|
* Author: zzw
|
|
* Date: 2021/4/2 9:56
|
|
*/
|
|
public function routeDel(){
|
|
global $_W,$_GPC;
|
|
$ids = $_GPC['ids'] ? :[] ;
|
|
pdo_delete(PDO_NAME."vehicle",['id IN'=>$ids]);
|
|
|
|
show_json(1, "删除成功");
|
|
}
|
|
/**
|
|
* Comment: 审核路线信息
|
|
* Author: zzw
|
|
* Date: 2021/4/2 10:05
|
|
*/
|
|
public function routeExamine(){
|
|
global $_W,$_GPC;
|
|
//参数信息获取
|
|
$id = $_GPC['id'] OR show_json(0, "参数错误,请刷新重试!");
|
|
$status = $_GPC['status'] ? : 4;//状态:1=待付款,2=待审核,3=未通过,4=进行中,5=已完成
|
|
$reason = $_GPC['reason'] ? : '';
|
|
if($status == 2 && !$reason) show_json(0, "请输入驳回原因");
|
|
//修改状态
|
|
$data = [
|
|
'status' => $status,
|
|
'reason' => $reason
|
|
];
|
|
pdo_update(PDO_NAME."vehicle",$data,['id'=>$id]);
|
|
//发送模板消息
|
|
Vehicle::sendSuccessfullyPublishedMessage($id,$status);
|
|
|
|
show_json(1, "操作成功");
|
|
}
|
|
|
|
/**
|
|
* Comment: 标签列表
|
|
* Author: zzw
|
|
* Date: 2021/4/1 9:42
|
|
*/
|
|
public function labelList(){
|
|
global $_W,$_GPC;
|
|
//参数获取
|
|
$page = max(1 , intval($_GPC['page']));
|
|
$pageIndex = 10;
|
|
$title = $_GPC['title'] ? : '';//名称
|
|
$type = $_GPC['type'] ? : 0;//类型:1=载客,2=载货,3=找客,4=找货
|
|
//条件生成
|
|
$where = [
|
|
'uniacid' => $_W['uniacid'] ,
|
|
'aid' => $_W['aid']
|
|
];
|
|
if($title) $where['name LIKE'] = "%{$title}%";
|
|
switch ($type){
|
|
case 1: $where['is_passenger'] = 2;break;//是否适用于载客:1=不适用,2=适用
|
|
case 2: $where['is_goods'] = 2;break;//是否适用于载货:1=不适用,2=适用
|
|
case 3: $where['are_passenger'] = 2;break;//是否适用于找客:1=不适用,2=适用
|
|
case 4: $where['are_goods'] = 2;break;//是否适用于找货:1=不适用,2=适用
|
|
}
|
|
//列表获取
|
|
$field = ['id','name','is_passenger','is_goods','are_passenger','are_goods','sort','create_time'];
|
|
$order = 'sort DESC,id DESC';
|
|
$list = pdo_getall(PDO_NAME."vehicle_label",$where,$field,'',$order,[$page,$pageIndex]);
|
|
//分页操作
|
|
$total = pdo_count(PDO_NAME."vehicle_label",$where);
|
|
$pager = wl_pagination($total, $page, $pageIndex);
|
|
|
|
include wl_template('label/index');
|
|
}
|
|
/**
|
|
* Comment: 标签添加/编辑
|
|
* Author: zzw
|
|
* Date: 2021/4/1 9:35
|
|
*/
|
|
public function labelEdit(){
|
|
global $_W,$_GPC;
|
|
//基本参数信息获取
|
|
$id = $_GPC['id'] ? : '';
|
|
//接收信息 并且进行对应的处理
|
|
if($_W['ispost']){
|
|
$data = $_GPC['data'];
|
|
$data['is_passenger'] = $data['is_passenger'] ? : 1;
|
|
$data['is_goods'] = $data['is_goods'] ? : 1;
|
|
$data['are_passenger'] = $data['are_passenger'] ? : 1;
|
|
$data['are_goods'] = $data['are_goods'] ? : 1;
|
|
//判断是否已经存在当前标签
|
|
$where = [
|
|
'uniacid' => $_W['uniacid'] ,
|
|
'aid' => $_W['aid'] ,
|
|
'title' => $data['title']
|
|
];
|
|
if($id > 0) $where['id <>'] = $id;
|
|
$isHave = pdo_get(PDO_NAME."vehicle_label",$where);
|
|
if($isHave) wl_message('标签已经存在',referer(),'error');
|
|
//根据是否存在id 判断是添加操作还是修改操作
|
|
if($id){
|
|
pdo_update(PDO_NAME."vehicle_label",$data,['id'=>$id]);
|
|
|
|
wl_message('修改成功',web_url('vehicle/route/labelList'),'success');
|
|
}else{
|
|
//信息补充 并且进行添加操作
|
|
$data['uniacid'] = $where['uniacid'];
|
|
$data['aid'] = $where['aid'];
|
|
$data['create_time'] = time();
|
|
pdo_insert(PDO_NAME."vehicle_label",$data);
|
|
|
|
wl_message('添加成功',web_url('vehicle/route/labelList'),'success');
|
|
}
|
|
}
|
|
//准备信息
|
|
if($id){
|
|
//修改信息准备
|
|
$info = pdo_get(PDO_NAME."vehicle_label",['id'=>$id],['name','is_passenger','is_goods','are_passenger','are_goods','sort']);
|
|
}else{
|
|
//添加信息准备
|
|
$sort = pdo_fetchcolumn("SELECT MAX(id) FROM ".tablename(PDO_NAME."vehicle_label"));
|
|
$info['sort'] = $sort ? : 0;
|
|
}
|
|
|
|
include wl_template('label/edit');
|
|
}
|
|
/**
|
|
* Comment: 生成默认的标签信息
|
|
* Author: zzw
|
|
* Date: 2021/4/1 10:33
|
|
*/
|
|
public function labelDefaultInfo(){
|
|
global $_W,$_GPC;
|
|
//获取默认行业类别
|
|
$list = Vehicle::defaultLabelList();
|
|
foreach($list as $val){
|
|
//判断是否已经存在当前标签
|
|
$where['uniacid'] = $val['uniacid'] = $_W['uniacid'];
|
|
$where['aid'] = $val['aid'] = $_W['aid'];
|
|
$where['name'] = $val['name'];
|
|
$isHave = pdo_get(PDO_NAME."vehicle_label",$where);
|
|
if(!$isHave){
|
|
//不存在 添加标签信息
|
|
$val['create_time'] = time();
|
|
pdo_insert(PDO_NAME."vehicle_label",$val);
|
|
}
|
|
}
|
|
//修改所有默认信息的排序信息
|
|
pdo_fetchall("update ".tablename(PDO_NAME."vehicle_label")." set `sort` = `id` WHERE `sort` is null ");
|
|
|
|
wl_json(1,'生成成功');
|
|
}
|
|
/**
|
|
* Comment: 删除标签信息
|
|
* Author: zzw
|
|
* Date: 2021/4/1 9:43
|
|
*/
|
|
public function labelDel(){
|
|
global $_W,$_GPC;
|
|
$ids = $_GPC['ids'] ? :[] ;
|
|
pdo_delete(PDO_NAME."vehicle_label",['id IN'=>$ids]);
|
|
|
|
show_json(1, "删除成功");
|
|
}
|
|
|
|
|
|
/**
|
|
* Comment: 顺风车基本设置
|
|
* Author: zzw
|
|
* Date: 2021/4/2 10:07
|
|
*/
|
|
public function vehicleSet(){
|
|
global $_W,$_GPC;
|
|
$name = 'vehicle_set';
|
|
if($_W['ispost']){
|
|
$data = $_GPC['data'];
|
|
|
|
Setting::agentsetting_save($data,$name);
|
|
wl_message('设置成功!' , web_url('vehicle/route/vehicleSet') , 'success');
|
|
}
|
|
//获取已存在的设置信息
|
|
$info = Setting::agentsetting_read($name);
|
|
|
|
include wl_template('vehicleSet');
|
|
}
|
|
|
|
|
|
}
|