|
@@ -5,6 +5,8 @@ namespace app\api\controller\v1\taxiUser;
|
|
|
|
|
|
|
|
|
|
|
|
|
use app\api\controller\ApiController;
|
|
use app\api\controller\ApiController;
|
|
|
|
|
+use app\common\model\Taxi;
|
|
|
|
|
+use app\common\model\TaxiServiceCategory;
|
|
|
use app\common\model\Users;
|
|
use app\common\model\Users;
|
|
|
use app\http\IResponse;
|
|
use app\http\IResponse;
|
|
|
use EasyWeChat\Factory;
|
|
use EasyWeChat\Factory;
|
|
@@ -25,6 +27,11 @@ class Order extends ApiController
|
|
|
$this->taxiUserModel = new \app\api\model\taxi\User();
|
|
$this->taxiUserModel = new \app\api\model\taxi\User();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 接单大厅订单列表
|
|
|
|
|
+ * @return mixed|\think\response\Json
|
|
|
|
|
+ * @throws \Lettered\Support\Exceptions\FailedException
|
|
|
|
|
+ */
|
|
|
public function index()
|
|
public function index()
|
|
|
{
|
|
{
|
|
|
// 1. 传入用户位置
|
|
// 1. 传入用户位置
|
|
@@ -42,12 +49,18 @@ class Order extends ApiController
|
|
|
]);
|
|
]);
|
|
|
// 错误
|
|
// 错误
|
|
|
if (true !== $valid){
|
|
if (true !== $valid){
|
|
|
- return $this->ApiJson(-1,$valid);
|
|
|
|
|
|
|
+ return IResponse::failure($valid);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- $limit = 20;
|
|
|
|
|
|
|
+ $limit = isset($param['pageSize'])? $param['pageSize'] : 20;
|
|
|
$taxiUser = $this->auth->guard('taxi_user')->user();
|
|
$taxiUser = $this->auth->guard('taxi_user')->user();
|
|
|
-// $carType =
|
|
|
|
|
|
|
+ if(!$taxiUser){
|
|
|
|
|
+ return IResponse::failure('用户不存在,或已被冻结');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $categoryIds = Taxi::where(['taxi_user_id'=> $taxiUser['id']])->column('category_id');
|
|
|
|
|
+
|
|
|
|
|
+ $categoryIds = array_unique($categoryIds);
|
|
|
|
|
|
|
|
// 经纬度升序
|
|
// 经纬度升序
|
|
|
$lists = $this->model
|
|
$lists = $this->model
|
|
@@ -61,11 +74,116 @@ class Order extends ApiController
|
|
|
), 2) AS distance")
|
|
), 2) AS distance")
|
|
|
->having('distance < 10')
|
|
->having('distance < 10')
|
|
|
->where(['status' => 2])
|
|
->where(['status' => 2])
|
|
|
- ->where(['status' => 2])
|
|
|
|
|
|
|
+ ->where(function($query) use($categoryIds){
|
|
|
|
|
+ if($categoryIds){
|
|
|
|
|
+ $query->whereIn('category_id', $categoryIds);
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
->order(['distance' => 'ASC'])
|
|
->order(['distance' => 'ASC'])
|
|
|
->limit((($param['page'] - 1) * $limit) . "," . $limit)
|
|
->limit((($param['page'] - 1) * $limit) . "," . $limit)
|
|
|
->select();
|
|
->select();
|
|
|
|
|
|
|
|
- return $this->ApiJson(0,'', $lists);
|
|
|
|
|
|
|
+ return IResponse::success($lists,'获取成功');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 我的订单
|
|
|
|
|
+ * @return mixed
|
|
|
|
|
+ * @throws \Lettered\Support\Exceptions\FailedException
|
|
|
|
|
+ */
|
|
|
|
|
+ public function myOrder()
|
|
|
|
|
+ {
|
|
|
|
|
+ // 1. 传入用户位置
|
|
|
|
|
+ $param = $this->request->param();
|
|
|
|
|
+ $limit = isset($param['pageSize'])? $param['pageSize'] : 20;
|
|
|
|
|
+
|
|
|
|
|
+ $taxiUser = $this->auth->guard('taxi_user')->user();
|
|
|
|
|
+ if(!$taxiUser){
|
|
|
|
|
+ return IResponse::failure('用户不存在,或已被冻结');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 经纬度升序
|
|
|
|
|
+ $lists = $this->model->with(['paylog','user','taxi','taxiUser'])
|
|
|
|
|
+ ->where(['taxi_uid' => $taxiUser['id']])
|
|
|
|
|
+ ->order(['created_at' => 'desc'])
|
|
|
|
|
+ ->limit((($param['page'] - 1) * $limit) . "," . $limit)
|
|
|
|
|
+ ->select();
|
|
|
|
|
+
|
|
|
|
|
+ return IResponse::success($lists,'获取成功');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 等待服务订单
|
|
|
|
|
+ * @return mixed|\think\response\Json
|
|
|
|
|
+ * @throws \Lettered\Support\Exceptions\FailedException
|
|
|
|
|
+ */
|
|
|
|
|
+ public function waitOrder()
|
|
|
|
|
+ {
|
|
|
|
|
+ $taxiUser = $this->auth->guard('taxi_user')->user();
|
|
|
|
|
+ if(!$taxiUser){
|
|
|
|
|
+ return IResponse::failure('用户不存在,或已被冻结');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $info = model('common/TaxiOrder')->with(['paylog','user','taxi','taxiUser'])
|
|
|
|
|
+ ->where(['taxi_uid' => $taxiUser['id']])
|
|
|
|
|
+ ->whereIn('status',[2,3])
|
|
|
|
|
+ ->order('created_at','desc')
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ if($info){
|
|
|
|
|
+ return IResponse::success(!is_null($info)? $info : [],'获取成功');
|
|
|
|
|
+ }else{
|
|
|
|
|
+ return IResponse::failure('获取失败');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 接单
|
|
|
|
|
+ * @return mixed
|
|
|
|
|
+ * @throws \Lettered\Support\Exceptions\FailedException
|
|
|
|
|
+ */
|
|
|
|
|
+ public function receive()
|
|
|
|
|
+ {
|
|
|
|
|
+ $param = $this->request->param();
|
|
|
|
|
+ $id = isset($param['id'])? $param['id'] : 0;
|
|
|
|
|
+ $taxiUser = $this->auth->guard('taxi_user')->user();
|
|
|
|
|
+ if(!$taxiUser){
|
|
|
|
|
+ return IResponse::failure('用户不存在,或已被冻结');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $info = model('common/TaxiOrder')
|
|
|
|
|
+ ->where(['taxi_uid' => $taxiUser['id'],'id'=> $id, 'status'=>3])
|
|
|
|
|
+ ->order('created_at','desc')
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ if(empty($info)){
|
|
|
|
|
+ return IResponse::failure('订单不存在,或已处理');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 已送达
|
|
|
|
|
+ * @return mixed
|
|
|
|
|
+ * @throws \Lettered\Support\Exceptions\FailedException
|
|
|
|
|
+ */
|
|
|
|
|
+ public function delivered()
|
|
|
|
|
+ {
|
|
|
|
|
+ $param = $this->request->param();
|
|
|
|
|
+ $id = isset($param['id'])? $param['id'] : 0;
|
|
|
|
|
+ $taxiUser = $this->auth->guard('taxi_user')->user();
|
|
|
|
|
+ if(!$taxiUser){
|
|
|
|
|
+ return IResponse::failure('用户不存在,或已被冻结');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $info = model('common/TaxiOrder')
|
|
|
|
|
+ ->where(['taxi_uid' => $taxiUser['id'],'id'=> $id, 'status'=>3])
|
|
|
|
|
+ ->order('created_at','desc')
|
|
|
|
|
+ ->find();
|
|
|
|
|
+ if(empty($info)){
|
|
|
|
|
+ return IResponse::failure('订单不存在,或已处理');
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|