|
|
|
@ -2,8 +2,15 @@ |
|
|
|
|
|
|
|
|
|
|
|
namespace App\Service\v3\Implementations; |
|
|
|
use App\Model\v3\Market; |
|
|
|
use App\Model\v3\OrderMain; |
|
|
|
use Hyperf\Di\Annotation\Inject; |
|
|
|
use App\Service\v3\Interfaces\HorsemanServiceInterface; |
|
|
|
use Hyperf\Utils\ApplicationContext; |
|
|
|
use App\Constants\v3\SsdbKeys; |
|
|
|
use App\TaskWorker\SSDBTask; |
|
|
|
use App\Constants\v3\ErrorCode; |
|
|
|
use App\Exception\ErrorCodeException; |
|
|
|
class HorsemanService implements HorsemanServiceInterface |
|
|
|
{ |
|
|
|
public function do() |
|
|
|
@ -24,4 +31,61 @@ class HorsemanService implements HorsemanServiceInterface |
|
|
|
{ |
|
|
|
return '接入成功'; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 记录骑手坐标 |
|
|
|
*/ |
|
|
|
public function setHorsemanCoordinate($horsemanId,$coordinate){ |
|
|
|
$ssdb = ApplicationContext::getContainer()->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; |
|
|
|
} |
|
|
|
} |