cxgj/modules/api/controllers/BallCartController.php
2023-11-27 09:45:13 +08:00

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']);
}
}