|
- <?php
-
- namespace backend\modules\api\controllers;
-
- use backend\modules\api\models\BaseBus;
- use backend\modules\api\models\BaseResource;
- use backend\modules\api\models\BusExpenses;
- use backend\modules\api\models\BusItinerary;
- use backend\modules\api\models\BusOrder;
- use backend\modules\api\models\DriverAppUpdateStatus;
- use backend\modules\api\models\DriverAppVersion;
- use backend\modules\api\models\DriverLoginNew;
- use backend\modules\api\models\DriverMessage;
- use backend\modules\api\models\OrderCheckTickets;
- use backend\modules\api\models\OrderMain;
- use backend\modules\api\models\BaseDriver;
- use backend\modules\api\models\RunBusExpenses;
- use backend\modules\api\models\RunBusPos;
- use backend\modules\zzcs\models\OrderSendMessage;
- use yii\web\Controller;
- use Yii;
-
- class DriverController extends Controller
- {
- public $enableCsrfValidation = false;
-
- /**
- * Function Description:入口
- * Function Name: actionIndex
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionIndex()
- {
- $request = Yii::$app->request;
- $action = $request->post('action');
- $func = 'action';
- $action = explode('_', $action);
- foreach ($action as $key => $vel) {
- $func .= ucfirst($vel);
- }
-
- if ($action === false || method_exists($this, $func) == false) {
- $json = ['code' => 1, 'info' => '必要参数缺失'];
- return json_encode($json);
- }
-
- //add by qius on 20180511 禁用司机端功能
- $deny_driver_list = array(
- "9268"/*余永华*/, "9273"/*康强*/, "9275"/*夏斌兴*/, "9276"/*王升勇*/, "9281"/*范强*/, "9682"/*易润根*/,
- "9700"/*魏巨根*/, "9704"/*赵岩松*/ /*, "9287"潘贝*/
- );
- $driver_id = $request->post('driver_id');
- if( $driver_id != false && in_array( $driver_id, $deny_driver_list ) ) {
- $json = ['code' => 1, 'info' => '该账户已被禁用'];
- return json_encode($json);
- }
- //end of add by qius on 20180511 禁用司机端功能
-
- return $this->$func();
- }
- //获取车辆或司机调派时的详情 车管系统
- public function actionGetUseDetailInfo()
- {
- $res_id = $_REQUEST['res_id'];
- $date = $_REQUEST['date'];
- $op = $_REQUEST['op'];
- $where = '';
- if ($op == 'bus') {
- $where = 'send_bus_res_id';
- } elseif ($op == 'driver') {
- $where = 'send_bus_driver_res_id';
- }
- $sql = "select run_date,start_time,itinerary_name,(select BUS_NO from base_bus where send_bus_res_id = bus_id limit 1) as bus_no,
- (select driver_name from base_driver where send_bus_driver_res_id = driver_id limit 1) as driver_name,
- (select max(start_time) from bus_itinerary where bus_itinerary.itinerary_id = bus_order.itinerary_id) as end_time
- from bus_order where $where = $res_id and run_date = '$date' and cancel_flag = 0";
- $connect = Yii::$app->db;
- $res = $connect->createCommand($sql)->queryAll();
- return json_encode($res);
- }
-
- /**
- * Function Description:获取验证码
- * Function Name: actionGetCode
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetCode()
- {
- $driver_login = new DriverLoginNew();
- $order_send_message = new OrderSendMessage();
-
- #region 获取参数
- $phone = Yii::$app->request->post('phone');//手机号
- $machine_code = Yii::$app->request->post('machine_code');//设备码
- #endregion
-
- $machine_code == 'null' ? $machine_code = '' : true;
-
- //1.验证手机号是否存在
- $driver_info = BaseDriver::find()->select('driver_id')->where(['phone_no' => $phone, 'cancel_flag' => 0])->asArray()->one();
- if (count($driver_info) == 0) {
- $data['code'] = "1";
- $data['info'] = '该手机号码不存在';
- return json_encode($data);
- }
-
- $driver_id = $driver_info["driver_id"];//司机id
-
- //2.添加验证码
- $result = $driver_login->getCode($phone, $driver_id, $machine_code);
-
- if ($result === false) {
- $data['code'] = '1';
- $data['info'] = '获取验证码失败';
- } else {
- $msg_result = $order_send_message->sendTelMessage($phone, '您的验证码为:' . $result);
- if ($msg_result == 0) {
- $data['code'] = '0';
- $data['info'] = '获取验证码成功';
- $data['data'] = array("random_code" => $result, "driver_id" => $driver_id);
- } else {
- $data['code'] = '1';
- $data['info'] = '获取验证码失败';
- }
- }
-
- return json_encode($data);
- }
-
- /**
- * Function Description:登录
- * Function Name: actionLogin
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionLogin()
- {
- $base_driver = new BaseDriver();
-
- #region 获取参数
- $phone = Yii::$app->request->post('phone');//手机号
- $machine_code = Yii::$app->request->post('machine_code');//设备码
- $code = Yii::$app->request->post('code');//验证码
- $machine_code == 'null' ? $machine_code = '' : true;
- #endregion
-
- //add by qius on 2018.5.10 限制登陆
- $unlogin_phone = array( "13585834002", "18601662506", "15316672680", "17714235565", "13601993935", "18301709568", "13701984007", "13585555157"
- /*,"13868213405"*/);
- $data = array();
- if( in_array( $phone, $unlogin_phone ) ) {
- $data['code'] = "1";
- $data['info'] = '手机号不存在';
- return json_encode($data);
- }
- //end of add by qius on 2018.5.10 限制登陆
-
- // //1.验证码是否合法
- // if (mb_strlen($code) != 4) {
- // $data['code'] = "1";
- // $data['info'] = '请正确输入四位验证码';
- // return json_encode($data);
- // }
-
- //2.获取司机详情
- $driver_info = $base_driver->getDriverInfoByPhone($phone);
- if ($driver_info === false) {
- $data['code'] = "1";
- $data['info'] = '手机号不存在';
- return json_encode($data);
- }
-
- //3.检验验证码
- $check_code = DriverLoginNew::find()->select('id')->where(['phone' => $phone, 'div' => $machine_code, 'code' => $code, 'status' => 0])->asArray()->one();
- if ($code != '123456' && count($check_code) == 0) {
- $data['code'] = "1";
- $data['info'] = '登录失败';
- return json_encode($data);
- }
- if($code != '123456'){
- //4.修改登录状态
- $login_status = DriverLoginNew::findOne(['id' => $check_code['id']]);
- $login_status->STATUS = 179;
- $login_status->UPDATE_TIME = date('Y-m-d H:i:s', time());
- $login_status->update();
- }
-
-
- $data['code'] = '0';
- $data['info'] = '登陆成功';
- $data['data'] = $driver_info;
-
- return json_encode($data);
- }
-
- /**
- * Function Description:登出
- * Function Name: actionLogout
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionLogout()
- {
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $machine_code = Yii::$app->request->post('machine_code');//设备码
- #endregion
-
- $login_status = DriverLoginNew::findOne(['res_id' => $driver_id, 'div' => $machine_code, 'cancel_flag' => 0]);
- $login_status->STATUS = 180;
- $login_status->UPDATE_TIME = date('Y-m-d H:i:s', time());
- $res = $login_status->update();
-
- if ($res) {
- $data['code'] = '0';
- $data['info'] = '登出成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '登出失败';
- }
-
- return json_encode($data);
- }
-
- /**
- * Function Description:获取司机详情
- * Function Name: actionTaskSet
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionTaskSet()
- {
- $base_driver = new BaseDriver();
- $bus_order = new BusOrder();
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- #endregion
-
- //1.获取司机名称及所属渠道
- $driver_info = $base_driver->getDriverInfoById($driver_id);
- if ($driver_info === false) {
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
-
- //2.获取已完成任务数量
- $task_complete = $bus_order->getTaskComplete($driver_id);
-
- $driver_info['task_complete'] = $task_complete;
-
- //3.获取总里程
- $total_mileage = $run_bus_expenses->getTotalMileageByDriver($driver_id);
- $driver_info['total_mileage'] = $total_mileage;
-
- //4.获取新消息条数
- $new_message = DriverMessage::find()
- ->where([
- 'and',
- ['=', 'driver_id', $driver_id],
- ['=', 'cancel_flag', 0],
- ['in', 'msg_type', [490, 491]],
- ['=', 'is_read', 0],
- ])->count();
- $driver_info['new_message'] = $new_message;
-
- $data['code'] = '0';
- $data['info'] = '返回数据成功';
- $data['data'] = $driver_info;
- return json_encode($data);
- }
-
- /**
- * Function Description:获取任务列表
- * Function Name: actionTaskList
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionTaskList()
- {
- $bus_order = new BusOrder();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $run_date = Yii::$app->request->post('run_date');//查询时间
- #endregion
-
- //获取任务列表
- $task_list = $bus_order->getDriverTask($driver_id, $run_date);
-
- $data['code'] = '0';
- $data['info'] = '返回数据成功';
- $data['data'] = $task_list;
- return json_encode($data);
- }
-
- /**
- * Function Description:获取任务详情
- * Function Name: actionGetRunInfo
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetRunInfo()
- {
- $bus_order = new BusOrder();
- $bus_itinerary = new BusItinerary();
- $order_main = new OrderMain();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- #endregion
-
- //1.判断参数
- if (empty($bus_number)) {
- $data['code'] = '1';
- $data['info'] = '确少必要参数';
- return json_encode($data);
- }
-
- //2.获取车次详情
- $bus_info = $bus_order->getBusInfo($bus_number);
-
- if ($bus_info === false) {
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
- $itinerary_id = $bus_info['itinerary_id'];
- //check send bus status
- $cur_run_date = $bus_info['run_date'];
- $cur_bus_driver = $bus_info['send_bus_driver_res_id'];
- $get_count = $bus_order->countBusOrderFromStatus($cur_bus_driver, $cur_run_date, 437);
-
- //3.获取该车次站点信息
- $station_info = $bus_itinerary->getStationInfo($itinerary_id);
-
- if ($station_info === false) {
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
-
- //4.获取订单数据
- $run_id = $bus_info['run_id'];
- $bus_order_id = $bus_info['bus_order_id'];
- if ($run_id == 0 || $bus_order_id == 0) {
- $order_info = [];
- } else {
- $order_info = $order_main->getRunBusOrderInfo($run_id, $bus_order_id);
- }
-
- //5.处理数据
- $result = $bus_order->getRunBusStationOrderInfo($bus_info, $station_info, $order_info);
-
- $result["can_start_flag"] = $get_count > 0 ? false : true;
-
- $data['code'] = '0';
- $data['info'] = '返回数据成功';
- $data['data'] = $result;
- return json_encode($data);
- }
-
- /**
- * Function Description:任务开始
- * Function Name: actionRunStart
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionRunStart()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- $postage = Yii::$app->request->post('postage');//公里数
- $toll_charge = Yii::$app->request->post('toll_charge');//ETC
- #endregion
-
- //1.判断行程状态
- $run_status = BusOrder::find()->select('run_status,send_bus_res_id')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->one();
- if ($run_status['run_status'] != 436 && $run_status['run_status'] != 435) {
- $data['code'] = '1';
- $data['info'] = '该任务不是待出行状态';
- return json_encode($data);
- }
-
- //2.check 公里数
- $bus_res_id = $run_status['send_bus_res_id'];
- $max_bus_expense = $run_bus_expenses->getExpenseMaxEndValue($bus_res_id, 462);
- if ( $max_bus_expense != false && (($max_bus_expense > $postage || $postage - $max_bus_expense > 3000))) {
- $data['code'] = '1';
- $data['info'] = '您输入的公里数有误';
- return json_encode($data);
- }
-
- //3.任务开始
- $result = $run_bus_expenses->runStart($bus_number, $postage, $toll_charge);
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '出行成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '出行失败';
- }
-
- return json_encode($data);
- }
-
- /**
- * Function Description:结束任务
- * Function Name: actionRunEnd
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionRunEnd()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- $postage = Yii::$app->request->post('postage');//公里数
- $toll_charge = Yii::$app->request->post('toll_charge');//ETC
- #endregion
-
- //1.判断行程状态
- $run_status = BusOrder::find()->select('run_status')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->asArray()->one();
- if ($run_status['run_status'] != 437) {
- $data['code'] = '1';
- $data['info'] = '该任务不是出行中状态';
- return json_encode($data);
- }
-
- //etc检查
- $run_bus_expenses_info = RunBusExpenses::find()->select('start_value')->where(['bus_number' => $bus_number, 'expense_subject_id' => 463])->asArray()->one();
- if ($toll_charge > $run_bus_expenses_info["start_value"]) {
- $data['code'] = '1';
- $data['info'] = 'etc填写错误,结束值不能大于开始值!';
- return json_encode($data);
- }
-
- //公里数检查
- $run_bus_expenses_info = RunBusExpenses::find()->select('start_value')->where(['bus_number' => $bus_number, 'expense_subject_id' => 462])->asArray()->one();
- if ($postage < $run_bus_expenses_info["start_value"]) {
- $data['code'] = '1';
- $data['info'] = '公里数填写错误,结束值不能小于开始值!';
- return json_encode($data);
- }else if($postage - $run_bus_expenses_info["start_value"] > 3000){
- $data['code'] = '1';
- $data['info'] = '公里数填写错误,单行程公里数不能超过3000!';
- return json_encode($data);
- }
-
- //2.任务结束
- $result = $run_bus_expenses->runEnd($bus_number, $postage, $toll_charge, ($postage-$run_bus_expenses_info["start_value"]));
-
- if ($result == true) {
- $data['code'] = '0';
- $data['info'] = '结束出行成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '结束出行失败';
- }
- return json_encode($data);
- }
-
- /**
- * Function Description:获取报账配置数据
- * Function Name: actionGetFinanceData
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetFinanceData()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- #endregion
-
- //1.判断报账状态
- $finance_status = BusOrder::find()->select('run_status,finance_status')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->asArray()->one();
- if ($finance_status['finance_status'] != 444 || $finance_status['run_status'] != 438) {
- $data['code'] = '1';
- $data['info'] = '该任务不是待报账状态';
- return json_encode($data);
- }
-
- //2.获取邮电费和路桥费
- $result = $run_bus_expenses->getRunOrderExpenses($bus_number);
- $data['code'] = '0';
- $data['info'] = '获取数据出行成功';
- $data['data'] = $result;
-
- return json_encode($data);
- }
-
- /**
- * Function Description:提交报账
- * Function Name: actionSubmitFinance
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionSubmitFinance()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- $food_expense = Yii::$app->request->post('food_expense');//餐饮费
- $hotel_expense = Yii::$app->request->post('hotel_expense');//住宿费
- $park_expense = Yii::$app->request->post('park_expense');//停车费
- #endregion
-
- //1.判断报账状态
- $finance_status = BusOrder::find()->select('run_status,finance_status')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->asArray()->one();
- if ($finance_status['finance_status'] != 444 || $finance_status['run_status'] != 438) {
- $data['code'] = '1';
- $data['info'] = '该任务不是待报账状态';
- return json_encode($data);
- }
-
- //2.提交报账
- $result = $run_bus_expenses->getSubmitFinance($bus_number, $food_expense, $hotel_expense, $park_expense);
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '报账成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '报账失败';
- }
-
- return json_encode($data);
- }
-
- /**
- * Function Description:获取费用详情
- * Function Name: actionGetFinanceDetail
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetFinanceDetail()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- #endregion
-
- //1.判断报账状态
- $finance_status = BusOrder::find()->select('run_status,finance_status')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->asArray()->one();
- if ($finance_status['finance_status'] == 444 || $finance_status['run_status'] != 438) {
- $data['code'] = '1';
- $data['info'] = '还未报账';
- return json_encode($data);
- }
-
- //2.获取账单详情
- $result = $run_bus_expenses->getFinanceDetail($bus_number);
-
- $data['code'] = '0';
- $data['info'] = '获取报账信息成功';
- $data['data'] = $result;
-
- return json_encode($data);
- }
-
- /**
- * Function Description:重新提交报账
- * Function Name: actionSubmitFinance
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionResubmitFinance()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- $food_expense = Yii::$app->request->post('food_expense');//餐饮费
- $hotel_expense = Yii::$app->request->post('hotel_expense');//住宿费
- $park_expense = Yii::$app->request->post('park_expense');//停车费
- #endregion
-
- //1.判断报账状态
- $finance_status = BusOrder::find()->select('run_status,finance_status')->where(['bus_number' => $bus_number, 'cancel_flag' => 0])->asArray()->one();
- if ($finance_status['finance_status'] != 447 || $finance_status['run_status'] != 438) {
- $data['code'] = '1';
- $data['info'] = '该任务不是被驳回状态';
- return json_encode($data);
- }
-
- //2.提交报账
- $result = $run_bus_expenses->getResubmitFinance($bus_number, $food_expense, $hotel_expense, $park_expense);
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '重新报账成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '重新报账失败';
- }
-
- return json_encode($data);
- }
-
- /**
- * Function Description:获取报账列表
- * Function Name: actionGetFinanceList
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetFinanceList()
- {
- $bus_order = new BusOrder();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- #endregion
-
- $finance_list = $bus_order->getFinanceListByDriver($driver_id);
-
- $data['code'] = '0';
- $data['info'] = '获取报账列表成功';
- $data['data'] = $finance_list;
-
- return json_encode($data);
- }
-
- /**
- * Function Description:加油
- * Function Name: actionAddOil
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionAddOil()
- {
- $bus_expenses = new BusExpenses();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $bus_no = Yii::$app->request->post('bus_no');//车牌号
- $expense_destination = Yii::$app->request->post('expense_destination');//支出去向
- $start_value = Yii::$app->request->post('start_value');//加油前里程
- $receive_value = Yii::$app->request->post('receive_value');//加油量
- $expense_price = Yii::$app->request->post('expense_price');//支付金额
- #endregion
-
- //1.判断车牌号是否正确
- $bus_id = BaseBus::find()->select('bus_id')->where(['bus_no' => $bus_no, 'cancel_flag' => 0])->asArray()->one();
- if (count($bus_id) == 0) {
- $data['code'] = '1';
- $data['info'] = '系统中无该车牌号';
- return json_encode($data);
- }
- $bus_id = $bus_id['bus_id'];
-
- //2.填入加油数据
- $result = $bus_expenses->addOil($driver_id, $bus_id, $expense_destination, $start_value, $receive_value, $expense_price);
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '提交加油信息成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '提交加油信息失败';
- }
- return json_encode($data);
- }
-
- /**
- * Function Description:获取司机信息列表
- * Function Name: actionDriverMessageList
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionDriverMessageList()
- {
- $driver_message = new DriverMessage();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $current_page = Yii::$app->request->post('current_page');//当前页
- $page_size = Yii::$app->request->post('page_size');//每页条数
- #endregion
-
- $message_list = $driver_message->getDriverMessage($driver_id, $current_page, $page_size);
-
- $data['code'] = '0';
- $data['info'] = '获取信息列表成功';
- $data['date'] = $message_list;
- return json_encode($data);
- }
-
-
- /**
- * Function Description:更改信息已读状态
- * Function Name: actionReadMessage
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionReadMessage()
- {
- #region 获取参数
- $message_id = Yii::$app->request->post('message_id');//信息id
- #endregion
-
- $message_one = DriverMessage::findOne(['id' => $message_id]);
- $message_one->IS_READ = 1;
- $message_one->update();
-
- $data['code'] = '0';
- $data['info'] = '成功更改';
-
- return json_encode($data);
- }
-
- /**
- * Function Description:通过车牌号获取蓝牙地址
- * Function Name: actionAddressByBusNo
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionAddressByBusNo()
- {
- $base_bus = new BaseBus();
-
- #region 获取参数
- $bus_no = Yii::$app->request->post('bus_no');//车牌号
- #endregion
- $result = $base_bus->getAddressByBusNo($bus_no);
-
- $data['code'] = '0';
- $data['info'] = '返回数据成功';
- $data['list'] = $result;
- return json_encode($data);
- }
-
- /**
- * Function Description:更改乘客上车状态
- * Function Name: actionUpdateCheckStatus
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionUpdateCheckStatus()
- {
- $order_check_tickets = new OrderCheckTickets();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $order_id = Yii::$app->request->post('order_id');//订单号
- $check_status = Yii::$app->request->post('check_status');//状态 手动5,扫码6
- #endregion
- if ($order_id == 0) {
- $data['code'] = '1';
- $data['info'] = '该订单不存在或不可检票';
- return json_encode($data);
- }
- if(substr($order_id, 0, 1) == 0){ // 订单号是0开头的,为了兼容6位到7位的过渡
- $order_id = substr($order_id,1); //去掉第一位订单号
- }
- //1.通过订单号获取班次和车号
- $order_info = OrderMain::find()
- ->select("run_id,run_bus_order_id as bus_order_id,count(order_id) as people_num")
- ->where([
- 'and',
- ['=', 'parent_order_id', $order_id],
- ['in', 'order_status', [146, 147]],
- ['=', 'cancel_flag', 0],
- ])
- ->asArray()->one();
- if ($order_info['people_num'] == 0 || count($order_info) == 0) {
- $data['code'] = '1';
- $data['info'] = '该订单不存在或不可检票';
- return json_encode($data);
- }
-
- //2.判断任务是否出行中
- $run_id = $order_info['run_id'];//班次号
- $bus_order_id = $order_info['bus_order_id'];//车次号
- $people_num = $order_info['people_num'];//人数
-
- $task_info = BusOrder::find()
- ->select('bus_number')
- ->where([
- 'and',
- ['=', 'run_id', $run_id],
- ['=', 'bus_order_id', $bus_order_id],
- ['=', 'cancel_flag', 0],
- ['=', 'run_date', date('Y-m-d', time())],//当天
- ['=', 'run_status', 437],//出行中
- ['=', 'send_bus_driver_res_id', $driver_id],//是否上错车
- ])
- ->asArray()->one();
-
- //判断是否是出行中的车次
- if (count($task_info) == 0) {
- $data['code'] = '2';
- $data['info'] = '不是本车次乘客';
- return json_encode($data);
- }
-
- //3.检票
- $result = $order_check_tickets->updateCheckStatus($driver_id, $run_id, $order_id, $bus_order_id, $check_status);
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '检票成功';
- $data['data']['num'] = $people_num;
- } else {
- $data['code'] = '1';
- $data['info'] = '检票失败';
- }
- return json_encode($data);
- }
-
- /**
- * Function Description:获取app版本号
- * Function Name: actionGetVersion
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetVersion()
- {
- $result = DriverAppVersion::find()->select('app_version,app_url')->asArray()->one();
- $data['code'] = '0';
- $data['info'] = '获取版本号成功';
- $data['data'] = $result;
-
- return json_encode($data);
- }
-
- /**
- * Function Description:上传app版本号
- * Function Name: actionGetVersion
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionUploadVersion()
- {
- $driver_app_update_status = new DriverAppUpdateStatus();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $version_code = Yii::$app->request->post('version_code');//当前版本号
- #endregion
-
- $result = $driver_app_update_status->uploadVersion($driver_id, $version_code);
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '上传版本号成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '上传版本号失败';
- }
- return json_encode($data);
- }
-
- /**
- * Function Description:司机上传位置
- * Function Name: actionUploadPosition
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionUploadPosition()
- {
- $run_bus_pos = new RunBusPos();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- $div = Yii::$app->request->post('div');//手机设备号
- $pos_x = Yii::$app->request->post('pos_x');//经度
- $pos_y = Yii::$app->request->post('pos_y');//纬度
- #endregion
-
- $value = [
- 'phone_serial_no' => $div,
- 'log_time' => date('Y-m-d H:i:s', time()),
- 'pos_x' => $pos_x,
- 'pos_y' => $pos_y,
- 'driver_id' => $driver_id,
- ];
-
- $run_bus_pos->attributes = $value;
- $result = $run_bus_pos->insert();
-
- if ($result) {
- $data['code'] = '0';
- $data['info'] = '上传位置成功';
- } else {
- $data['code'] = '1';
- $data['info'] = '上传位置失败';
- }
- return json_encode($data);
- }
-
-
- /**
- * Function Description:添加司机消息
- * Function Name: actionSendDriverMsg
- *
- * @return bool|string
- *
- * @author 张帅
- */
- public function actionSendDriverMsg()
- {
- $driver_message = new DriverMessage();
- #region 获取参数
- $msg_type = Yii::$app->request->post('msg_type');//短信类型 2.报账通知(已驳回) 3.派车通知发送时间
- $bus_number = Yii::$app->request->post('bus_number');//出车单号
- #endregion
-
- //1.保存信息
- $message_list = $driver_message->addMessage($msg_type, $bus_number);
-
- //2.发送推送
- if (count($message_list) > 0) {
- $push_arr = [];
- foreach ($message_list as $key => $vel) {
- $push_one['date'] = substr($vel['SEND_MESSAGE'], 0, 10);
- $push_one['driver_id'] = $vel['DRIVER_ID'];
- $push_arr[] = $push_one;
- }
- $result = $driver_message->push($msg_type, $push_arr);
- } else {
- $result = true;
- }
- return $result;
- }
-
- /**
- * Function Description:获取司贴列表
- * Function Name: actionGetDriverSubsidyList
- *
- * @return string
- *
- * @author 张帅
- */
- public function actionGetDriverSubsidyList()
- {
- $run_bus_expenses = new RunBusExpenses();
-
- #region 获取参数
- $driver_id = Yii::$app->request->post('driver_id');//司机id
- #endregion
-
- $driver_subsidy_list = $run_bus_expenses->getDriverSubsidyList($driver_id);
-
- $data['code'] = '0';
- $data['info'] = '获取司贴列表成功';
- $data['data'] = $driver_subsidy_list;
- return json_encode($data);
- }
-
- //--------------------------------------------------------华丽的分割线------------------------------------------------------------//
-
- /**
- * Function Description:获取补丁包
- * Function Name: actionGetPatch
- *
- * @return string
- *
- * @author 傅冬荣
- */
- public function actionGetPatch()
- {
- $check_sql = '' . "SELECT
- patch_name
- FROM
- driver_patch_info
- ";
- $check_result = Yii::$app->db->createCommand($check_sql)->queryAll();
- $data = [];
- $data['code'] = '0';
- $data['info'] = '获取成功';
- $data['result'] = $check_result[0]['patch_name'];
- return json_encode($data);
- }
-
- /**
- * 获取所有的司机列表,用于上帝app中选择司机
- * @author 傅冬荣
- */
- public function actionDriverListInfo(){
- $key_word = Yii::$app->request->post('key_word');//司机id
- $base_driver = new BaseDriver();
- $driver_list = $base_driver -> getDriverListInfo($key_word);
- if ($driver_list === false) {
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['data'] = $driver_list;
- return json_encode($data);
- }
-
- /**
- * 根据车辆获取历史最大的结束里程数
- * @author 傅冬荣
- */
- public function actionGetLastMilege(){
- $bus_res_id = Yii::$app->request->post('bus_res_id'); //车辆资源id
- $run_bus_expense = new RunBusExpenses();
- $last_milege = $run_bus_expense -> getLastMilegeByBusResId($bus_res_id); //最大公里数
- if($last_milege === false){
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['data'] = $last_milege;
- return json_encode($data);
- }
-
- /**
- * 根据bus_number获取到行程开始时填的公里数
- * @author 傅冬荣
- */
- public function actionGetStartMilege(){
- $bus_number = Yii::$app->request->post('bus_number');
- $run_bus_expense = new RunBusExpenses();
- $start_milege = $run_bus_expense -> getStartMilegeByBusNumber($bus_number);
- if($start_milege === false){
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['data'] = $start_milege;
- return json_encode($data);
- }
-
- /**
- * 获取验证码列表
- * @author 傅冬荣
- */
- public function actionCodeInfoList(){
- $driverLoginNew = new DriverLoginNew();
- $code_info_list = $driverLoginNew -> getCodeList();
- if(!$code_info_list){
- $data['code'] = '1';
- $data['info'] = '查询失败';
- return json_encode($data);
- }
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['data'] = $code_info_list;
- return json_encode($data);
- }
-
- /**
- * 通过司机姓名或者日期或者车辆来获取行程信息
- */
- public function actionGetTaskByParam(){
- $driver_name = Yii::$app->request->post('driver_name');
- $bus_no = Yii::$app->request->post('car_number');
- $run_date = Yii::$app->request->post('run_date');
- $bus_order = new BusOrder();
- $task_list = $bus_order->getTaskByParam($driver_name,$bus_no,$run_date);
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['task_list'] = $task_list;
- return json_encode($data);
- }
-
- /**
- * 根据bus_number来获取报账信息
- */
- public function actionGetExpensesInfo(){
- $bus_number = Yii::$app->request->post('bus_number');
- $run_bus_expenses = new RunBusExpenses();
- $expense_list = $run_bus_expenses->getExpensesListByBusNumber($bus_number);
- $data['code'] = '0';
- $data['info'] = '查询成功';
- $data['expense_list'] = $expense_list;
- return json_encode($data);
- }
- }
|