init: import production code mss.nahaichuan.com (exclude Runtime/Uploads/backups/logs)
这个提交包含在:
@@ -0,0 +1,350 @@
|
||||
<?php
|
||||
namespace RiderApi\Controller;
|
||||
|
||||
/**
|
||||
* 骑手车辆管理控制器
|
||||
*/
|
||||
class VehicleController extends BaseController {
|
||||
|
||||
/**
|
||||
* 获取骑手车辆列表
|
||||
*/
|
||||
public function getList() {
|
||||
try {
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
$list = $vehicleModel->where(array(
|
||||
'rider_id' => $this->riderId
|
||||
))->order('status DESC, add_time DESC')->select();
|
||||
|
||||
// 格式化数据
|
||||
foreach ($list as &$item) {
|
||||
$item['type'] = $item['vehicle_type']; // 前端使用type字段
|
||||
$item['vehicle_photo_url'] = !empty($item['vehicle_photo']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $item['vehicle_photo'] : '';
|
||||
$item['driving_license_url'] = !empty($item['driving_license']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $item['driving_license'] : '';
|
||||
$item['insurance_photo_url'] = !empty($item['insurance_photo']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $item['insurance_photo'] : '';
|
||||
}
|
||||
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '获取成功',
|
||||
'data' => $list ?: array()
|
||||
));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '获取失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加车辆
|
||||
*/
|
||||
public function add() {
|
||||
try {
|
||||
// 获取JSON参数
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
$vehicleType = isset($input['type']) ? trim($input['type']) : '';
|
||||
$plateNumber = isset($input['plate_number']) ? trim($input['plate_number']) : '';
|
||||
$brand = isset($input['brand']) ? trim($input['brand']) : '';
|
||||
$model = isset($input['model']) ? trim($input['model']) : '';
|
||||
$color = isset($input['color']) ? trim($input['color']) : '';
|
||||
|
||||
// 验证必填参数
|
||||
if (empty($vehicleType)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '请选择车辆类型'));
|
||||
}
|
||||
|
||||
// 验证车辆类型
|
||||
$allowedTypes = array('bicycle', 'motorcycle', 'car');
|
||||
if (!in_array($vehicleType, $allowedTypes)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆类型不正确'));
|
||||
}
|
||||
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
// 检查是否已有使用中的车辆,如果没有则设为使用中
|
||||
$currentVehicle = $vehicleModel->where(array(
|
||||
'rider_id' => $this->riderId,
|
||||
'status' => 1
|
||||
))->find();
|
||||
|
||||
$status = $currentVehicle ? 0 : 1; // 如果没有使用中的车辆,新添加的设为使用中
|
||||
|
||||
$data = array(
|
||||
'rider_id' => $this->riderId,
|
||||
'vehicle_type' => $vehicleType,
|
||||
'plate_number' => $plateNumber,
|
||||
'brand' => $brand,
|
||||
'model' => $model,
|
||||
'color' => $color,
|
||||
'status' => $status,
|
||||
'auth_status' => 0, // 待审核
|
||||
'add_time' => date('Y-m-d H:i:s'),
|
||||
'update_time' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
$result = $vehicleModel->add($data);
|
||||
|
||||
if ($result) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '添加成功',
|
||||
'data' => array('id' => $result)
|
||||
));
|
||||
} else {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '添加失败'));
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '添加失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新车辆信息
|
||||
*/
|
||||
public function update() {
|
||||
try {
|
||||
// 获取JSON参数
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
$id = isset($input['id']) ? intval($input['id']) : 0;
|
||||
$vehicleType = isset($input['type']) ? trim($input['type']) : '';
|
||||
$plateNumber = isset($input['plate_number']) ? trim($input['plate_number']) : '';
|
||||
$brand = isset($input['brand']) ? trim($input['brand']) : '';
|
||||
$model = isset($input['model']) ? trim($input['model']) : '';
|
||||
$color = isset($input['color']) ? trim($input['color']) : '';
|
||||
|
||||
// 验证必填参数
|
||||
if (empty($id)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆ID不能为空'));
|
||||
}
|
||||
|
||||
if (empty($vehicleType)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '请选择车辆类型'));
|
||||
}
|
||||
|
||||
// 验证车辆类型
|
||||
$allowedTypes = array('bicycle', 'motorcycle', 'car');
|
||||
if (!in_array($vehicleType, $allowedTypes)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆类型不正确'));
|
||||
}
|
||||
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
// 验证车辆是否属于当前骑手
|
||||
$vehicle = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->find();
|
||||
|
||||
if (!$vehicle) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆不存在'));
|
||||
}
|
||||
|
||||
$data = array(
|
||||
'vehicle_type' => $vehicleType,
|
||||
'plate_number' => $plateNumber,
|
||||
'brand' => $brand,
|
||||
'model' => $model,
|
||||
'color' => $color,
|
||||
'update_time' => date('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
$result = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->save($data);
|
||||
|
||||
if ($result !== false) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '更新成功'
|
||||
));
|
||||
} else {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '更新失败'));
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '更新失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除车辆
|
||||
*/
|
||||
public function delete() {
|
||||
try {
|
||||
// 获取JSON参数
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
$id = isset($input['id']) ? intval($input['id']) : 0;
|
||||
|
||||
// 验证必填参数
|
||||
if (empty($id)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆ID不能为空'));
|
||||
}
|
||||
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
// 验证车辆是否属于当前骑手
|
||||
$vehicle = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->find();
|
||||
|
||||
if (!$vehicle) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆不存在'));
|
||||
}
|
||||
|
||||
// 检查是否为使用中的车辆
|
||||
if ($vehicle['status'] == 1) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '当前使用的车辆不能删除'));
|
||||
}
|
||||
|
||||
$result = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->delete();
|
||||
|
||||
if ($result) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '删除成功'
|
||||
));
|
||||
} else {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '删除失败'));
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '删除失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置当前使用车辆
|
||||
*/
|
||||
public function setCurrent() {
|
||||
try {
|
||||
// 获取JSON参数
|
||||
$input = json_decode(file_get_contents('php://input'), true);
|
||||
$id = isset($input['id']) ? intval($input['id']) : 0;
|
||||
|
||||
// 验证必填参数
|
||||
if (empty($id)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆ID不能为空'));
|
||||
}
|
||||
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
// 验证车辆是否属于当前骑手
|
||||
$vehicle = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->find();
|
||||
|
||||
if (!$vehicle) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆不存在'));
|
||||
}
|
||||
|
||||
// 开启事务
|
||||
$vehicleModel->startTrans();
|
||||
|
||||
try {
|
||||
// 先将该骑手的所有车辆设为未使用
|
||||
$vehicleModel->where(array(
|
||||
'rider_id' => $this->riderId
|
||||
))->save(array(
|
||||
'status' => 0,
|
||||
'update_time' => date('Y-m-d H:i:s')
|
||||
));
|
||||
|
||||
// 设置指定车辆为使用中
|
||||
$vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->save(array(
|
||||
'status' => 1,
|
||||
'update_time' => date('Y-m-d H:i:s')
|
||||
));
|
||||
|
||||
$vehicleModel->commit();
|
||||
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '设置成功'
|
||||
));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$vehicleModel->rollback();
|
||||
throw $e;
|
||||
}
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '设置失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取车辆详情
|
||||
*/
|
||||
public function getDetail() {
|
||||
try {
|
||||
$id = $this->getRequestParam('id', 0, 'intval');
|
||||
|
||||
if (empty($id)) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆ID不能为空'));
|
||||
}
|
||||
|
||||
$vehicleModel = M('rider_vehicle');
|
||||
|
||||
$vehicle = $vehicleModel->where(array(
|
||||
'id' => $id,
|
||||
'rider_id' => $this->riderId
|
||||
))->find();
|
||||
|
||||
if (!$vehicle) {
|
||||
$this->ajaxReturn(array('code' => 0, 'msg' => '车辆不存在'));
|
||||
}
|
||||
|
||||
// 格式化数据
|
||||
$vehicle['type'] = $vehicle['vehicle_type']; // 前端使用type字段
|
||||
$vehicle['vehicle_photo_url'] = !empty($vehicle['vehicle_photo']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $vehicle['vehicle_photo'] : '';
|
||||
$vehicle['driving_license_url'] = !empty($vehicle['driving_license']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $vehicle['driving_license'] : '';
|
||||
$vehicle['insurance_photo_url'] = !empty($vehicle['insurance_photo']) ?
|
||||
'http://' . $_SERVER['HTTP_HOST'] . '/uploads/' . $vehicle['insurance_photo'] : '';
|
||||
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 1,
|
||||
'msg' => '获取成功',
|
||||
'data' => $vehicle
|
||||
));
|
||||
|
||||
} catch (\Exception $e) {
|
||||
$this->ajaxReturn(array(
|
||||
'code' => 0,
|
||||
'msg' => '获取失败:' . $e->getMessage()
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
在新工单中引用
屏蔽一个用户