|
|
<?php
|
|
|
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
|
|
|
use app\api\model\RiderOrder;
|
|
|
use app\common\controller\Api;
|
|
|
|
|
|
class Rider extends Api
|
|
|
{
|
|
|
protected $noNeedRight = ['*'];
|
|
|
protected $noNeedLogin = ['*'];
|
|
|
|
|
|
/**
|
|
|
* @ApiTitle (骑手订单页)
|
|
|
* @ApiMethod (POST)
|
|
|
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
|
|
|
* @ApiParams (name=page, type=integer, required=true, description="页数")
|
|
|
* @ApiParams (name=lat, type=integer, required=true, description="骑手纬度")
|
|
|
* @ApiParams (name=lng, type=integer, required=true, description="骑手经度")
|
|
|
* @ApiReturn ({
|
|
|
'code':'1',
|
|
|
'msg':'返回成功'
|
|
|
'data':
|
|
|
"total": 2,
|
|
|
"per_page": 5,
|
|
|
"current_page": 1,
|
|
|
"last_page": 1,
|
|
|
"data": [
|
|
|
{
|
|
|
"id": 1,
|
|
|
"distance": 111.263, 距离
|
|
|
"address": {
|
|
|
"name": "1", 收件人
|
|
|
"phone": "13549059988", 电话号码
|
|
|
"detail": "阿松大", 地址
|
|
|
"address": "阿松大", 门牌号
|
|
|
},
|
|
|
"orderdetail": {
|
|
|
"order_no": "LQ-16420622494781", 订单编号
|
|
|
"createtime_text": ""
|
|
|
}
|
|
|
}
|
|
|
]
|
|
|
})
|
|
|
*/
|
|
|
public function index()
|
|
|
{
|
|
|
$page = $this->request->post('page',1);
|
|
|
$lat = $this->request->post('lat');
|
|
|
$lng = $this->request->post('lng');
|
|
|
if (!is_numeric($page)) $this->error('页数不合法');
|
|
|
if (!is_numeric($lat)) $this->error('纬度不合法');
|
|
|
if (!is_numeric($lng)) $this->error('经度不合法');
|
|
|
$model = new RiderOrder();
|
|
|
$EARTH=6378.137; //地球半径
|
|
|
$PI=3.14; //PI值 圆周率
|
|
|
$list = $model
|
|
|
->with(['address','orderdetail'])
|
|
|
->where('fa_rider_order.user_id',$this->auth->id)
|
|
|
->where('fa_rider_order.status','1')
|
|
|
->field('Round((2 * '.$EARTH.'* ASIN(SQRT(POW(SIN('.$PI.'*('.$lat.'-lat)/360),2)
|
|
|
+COS('.$PI.'*'.$lat.'/180)* COS(lat * '.$PI.'/180)
|
|
|
*POW(SIN('.$PI.'*('.$lng.'-lng)/360),2)))),3) as distance')
|
|
|
->order('distance')
|
|
|
->paginate(5,false,['page'=>$page])
|
|
|
->each(function ($item,$key){
|
|
|
$item->getRelation('orderdetail')->visible(['order_no']);
|
|
|
$item->getRelation('address')->visible(['name','phone','address','detail']);
|
|
|
$item->visible(['orderdetail','address','distance','id']);
|
|
|
});
|
|
|
$this->success('订单列表',$list);
|
|
|
}
|
|
|
} |
|
|
\ No newline at end of file |
...
|
...
|
|