|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132 |
- <?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);
- }
- }
|