201 lines
7.0 KiB
PHP
201 lines
7.0 KiB
PHP
<?php
|
|
|
|
namespace app\modules\api\controllers;
|
|
|
|
use app\modules\api\behaviors\LoginBehavior;
|
|
use app\modules\api\components\Mqtt;
|
|
use app\modules\api\models\BallArmForm;
|
|
use app\modules\api\models\BallCartForm;
|
|
use app\modules\api\models\BallMarkForm;
|
|
|
|
/**
|
|
* 球杆
|
|
*/
|
|
class BallCartController extends Controller
|
|
{
|
|
public function behaviors()
|
|
{
|
|
return array_merge(parent::behaviors(), [
|
|
'login' => [
|
|
'class' => LoginBehavior::className(),
|
|
'ignore' => [
|
|
'api/ball-cart/get-ball-mark',
|
|
'api/ball-cart/get-ball-cart-list',
|
|
'api/ball-cart/get-ball-cart'
|
|
]
|
|
]
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 球车型号
|
|
* @title 球车型号列表
|
|
* @description 本接口提供球车型号列表
|
|
* @method get
|
|
* @url /api/ball-cart/get-ball-mark
|
|
* @param page 不必选 int 页码
|
|
* @param limit 不必选 int 条数
|
|
* @return {"code":0,"msg":"ok","data":[{"id":"3","name":"10086","desc":null},{"id":"1","name":"1111","desc":"1111"},{"id":"2","name":"222","desc":"222"}],"count":"3"}
|
|
* @return_param name string 型号名称
|
|
* @return_param id int 型号ID
|
|
* @return_param desc text 型号描述(富文本)
|
|
* @remark
|
|
*/
|
|
public function actionGetBallMark()
|
|
{
|
|
$obj = new BallMarkForm();
|
|
$obj->attributes = \Yii::$app->request->get();
|
|
$obj->user_id = \Yii::$app->user->identity->id;
|
|
$obj->cx_mch_id = $this->cx_mch_id;
|
|
$res = $obj->search();
|
|
return $this->responseHandler($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 球车列表
|
|
* @title 球车列表
|
|
* @description 本接口提供球车列表
|
|
* @method get
|
|
* @url /api/ball-cart/get-ball-cart-list
|
|
* @param page 不必选 int 页码
|
|
* @param limit 不必选 int 条数
|
|
* @return {"code":0,"msg":"ok","data":[{"id":"2","mark_name":"1111","mark_id":"1","ball_number":"10086","status":"0","name":"富赛体育高尔夫厦门思明店"}],"count":"1"}
|
|
* @return_param mark_name string 型号名称
|
|
* @return_param ball_number string 编号
|
|
* @return_param status int 0-正常 1-租赁 2-停用
|
|
* @remark
|
|
*/
|
|
public function actionGetBallCartList()
|
|
{
|
|
$obj = new BallCartForm();
|
|
$obj->attributes = \Yii::$app->request->get();
|
|
$obj->user_id = \Yii::$app->user->identity->id ?? 0;
|
|
$obj->user_type = \Yii::$app->user->identity->type;
|
|
$obj->cx_mch_id = $this->cx_mch_id;
|
|
$res = $obj->search();
|
|
return $this->responseHandler($res);
|
|
}
|
|
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 启动球车
|
|
* @title 启动球车
|
|
* @description 本接口提供启动球车
|
|
* @method get
|
|
* @url /api/ball-cart/open-cart
|
|
* @param ball_number 必选 string 球车编号
|
|
* @param ball_number 必选 string 球车编号
|
|
* @param ball_number 必选 string 球车编号
|
|
* @return {"code":0,"msg":"启动成功","data":[]}
|
|
* @remark
|
|
*/
|
|
public function actionOpenCart()
|
|
{
|
|
$mqtt = new Mqtt();
|
|
$number = \Yii::$app->request->get('ball_number');
|
|
$handle_type = 1;
|
|
$pattern = \Yii::$app->request->get('pattern', 0);
|
|
|
|
// 写redis
|
|
$redis_ball_cart_status_name = "api:cxaibc:ball_cart:{$number}";
|
|
\Yii::$app->redis->set($redis_ball_cart_status_name, "{$handle_type}:{$pattern}");
|
|
return $this->responseHandler($mqtt->sendOpen($number, $handle_type, $pattern));
|
|
}
|
|
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 关闭球车
|
|
* @title 关闭球车
|
|
* @description 本接口提供关闭球车
|
|
* @method get
|
|
* @url /api/ball-cart/close-cart
|
|
* @param ball_number 必选 string 球车编号
|
|
* @return {"code":0,"msg":"关闭成功","data":[]}
|
|
* @remark
|
|
*/
|
|
public function actionCloseCart()
|
|
{
|
|
$mqtt = new Mqtt();
|
|
$number = \Yii::$app->request->get('ball_number');
|
|
return $this->responseHandler($mqtt->sendOpen($number, 0, 0));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 球车状态
|
|
* @title 球车状态
|
|
* @description 本接口提供球车状态
|
|
* @method get
|
|
* @url /api/ball-cart/get-ball-cart
|
|
* @param ball_number 必选 string 球车编号
|
|
* @return {"code":0,"msg":"ok","data":{"ball_arr":{"TIMESTAMP":"0000","IMEI":"460115210917473","SIMID":"89860321245926367404","CSQ":31,"OPERATION_ENABLE":0,"OPERATION_LEVEL":0,"MODE":0,"ELEC_PERCENT":100,"RANGE":"0000","RANGE_CURRENT":"0000","RUNTIME":"0000","RUNTIME_CURRENT":"0000","res_data":"u0000u0000u0000u0000460115210917473u0000u0000u0000u0000u000089860321245926367404u001fu0000u0000u0000du0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000u0000C"}}}
|
|
* @return_param ELEC_PERCENT string 剩余电量
|
|
* @return_param RANGE_CURRENT string 本次行驶里程
|
|
* @return_param RUNTIME_CURRENT string 本次运行时常
|
|
* @return_param CSQ string 信号
|
|
* @return_param OPERATION_ENABLE string 操作许可
|
|
* @remark
|
|
*/
|
|
public function actionGetBallCart()
|
|
{
|
|
$obj = new BallCartForm();
|
|
$ball_number = \Yii::$app->request->get('ball_number');
|
|
$init_order = \Yii::$app->request->get('init_order');
|
|
// $json_arr = \Yii::$app->request->get('json_arr');
|
|
$obj->user_id = \Yii::$app->user->identity->id;
|
|
$obj->cx_mch_id = $this->cx_mch_id;
|
|
$obj->user_type = \Yii::$app->user->identity->type;
|
|
$obj->init_order = $init_order;
|
|
$res = $obj->lease($ball_number);
|
|
return $this->responseHandler($res);
|
|
}
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 判断当前用户是否用租赁的车辆
|
|
* @title 判断当前用户是否用租赁的车辆
|
|
* @description 本接口提供判断当前用户是否用租赁的车辆
|
|
* @method get
|
|
* @url /api/ball-cart/get-user-ball-cart
|
|
* @return {"code":0,"msg":"","data":{"id":"2","ball_number":"10086"}}
|
|
* @return_param ball_number string 球车编号
|
|
* @remark
|
|
*/
|
|
public function actionGetUserBallCart()
|
|
{
|
|
$obj = new BallCartForm();
|
|
$obj->user_id = \Yii::$app->user->identity->id;
|
|
$obj->cx_mch_id = $this->cx_mch_id;
|
|
$res = $obj->getUserBallCart();
|
|
return $this->responseHandler($res);
|
|
}
|
|
|
|
/**
|
|
* hidedoc
|
|
* @catalog 获取车辆mqtt状态
|
|
* @title 获取车辆mqtt状态
|
|
* @description 本接口提供获取mqtt状态
|
|
* @method get
|
|
* @url /api/ball-cart/get-mqtt-info
|
|
* @return {"code":0,"msg":"","data":{"id":"2","ball_number":"10086"}}
|
|
* @return_param ball_number string 球车编号
|
|
* @remark
|
|
*/
|
|
public function actionGetMqttInfo(){
|
|
$ball_number = \Yii::$app->request->get('ball_number');
|
|
if(empty($ball_number)){
|
|
return $this->responseHandler(['code'=>0,'msg'=>'ok']);
|
|
}
|
|
$obj = new Mqtt();
|
|
$obj->getInfo($ball_number,1);
|
|
return $this->responseHandler(['code'=>0,'msg'=>'ok']);
|
|
}
|
|
}
|