get(SSDBTask::class); if(false === $ssdb->exec('set', SsdbKeys::HORSEMAN_COORDINATE.$horsemanId,$coordinate)) { return false; } return true; } /** * 获取骑手坐标 */ public function getHorsemanCoordinate($horsemanId){ $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); $params = $ssdb->exec('get', SsdbKeys::HORSEMAN_COORDINATE.$horsemanId); if ((false === $params) || empty($params)) { throw new ErrorCodeException(ErrorCode::HORSEMAN_COORDINATE_FAIL, '获取骑手坐标失败'); } return $params; } /** * 获取订单起止坐标 */ public function getOrderCoordinate($globalOrderId){ //获取订单信息 $order = OrderMain::where('global_order_id',$globalOrderId) ->select( 'lat as origi_lat', 'lng as origi_lng', 'state', 'market_id' ) ->first(); if($order->state != 3) { return false; } //获取市场信息 $market = Market::where('id',$order->market_id) ->select( 'lat as destination_lat', 'lng as destination_lng' ) ->first(); $res = [ 'origi_lat' => $order->origi_lat, 'origi_lng' => $order->origi_lng, 'destination_lat' => $market->destination_lat, 'destination_lng' => $market->destination_lng ]; return $res; } }