From 663f2af3bd6ca67d8b89a71f02b971a33c5dc10c Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 11:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E9=AA=91=E6=89=8B=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Constants/v3/ErrorCode.php | 10 +++ app/Constants/v3/SsdbKeys.php | 5 ++ app/Controller/v3/HorsemanController.php | 20 ++++++ .../v3/Implementations/HorsemanService.php | 64 +++++++++++++++++++ .../UserCenterBlockService.php | 2 +- .../Interfaces/HorsemanServiceInterface.php | 3 + config/routes.php | 5 +- 7 files changed, 107 insertions(+), 2 deletions(-) diff --git a/app/Constants/v3/ErrorCode.php b/app/Constants/v3/ErrorCode.php index 11089ab..1f26a59 100644 --- a/app/Constants/v3/ErrorCode.php +++ b/app/Constants/v3/ErrorCode.php @@ -406,4 +406,14 @@ class ErrorCode extends AbstractConstants * @Message("token解析失败") */ const TOKEN_NOT_EXISTS = 1353; + + /************************************/ + /* 骑手相关 1401-1450 */ + /************************************/ + + /** + * 获取骑手坐标失败 + * @Message("获取骑手坐标失败") + */ + const HORSEMAN_COORDINATE_FAIL = 1401; } \ No newline at end of file diff --git a/app/Constants/v3/SsdbKeys.php b/app/Constants/v3/SsdbKeys.php index f153fb1..f02c8ae 100644 --- a/app/Constants/v3/SsdbKeys.php +++ b/app/Constants/v3/SsdbKeys.php @@ -80,4 +80,9 @@ class SsdbKeys extends AbstractConstants */ const PARAMS_TOKEN = 'params_token_v3_'; + /** + * @Message("骑手坐标") + */ + const HORSEMAN_COORDINATE = 'horseman_coordinate_'; + } \ No newline at end of file diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 0eb9a4f..67f7189 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -19,4 +19,24 @@ class HorsemanController extends BaseController { return $this->success($this->horsemanService->getOrderList()); } + + public function setHorsemanCoordinate() + { + $horsemanId = $this->request->input('horseman_id', -1); + $coordinate = $this->request->input('coordinate', -1); + return $this->success($this->horsemanService->setHorsemanCoordinate($horsemanId,$coordinate)); + } + + public function getHorsemanCoordinate() + { + $horsemanId = $this->request->input('horseman_id', -1); + $coordinate = $this->horsemanService->getHorsemanCoordinate($horsemanId); + return $this->success(['coordinate' => $coordinate]); + } + + public function getOrderCoordinate() + { + $globalOrderId = $this->request->input('global_order_id', -1); + return $this->success($this->horsemanService->getOrderCoordinate($globalOrderId)); + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php index 9396315..fd0ae94 100644 --- a/app/Service/v3/Implementations/HorsemanService.php +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -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; + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/UserCenterBlockService.php b/app/Service/v3/Implementations/UserCenterBlockService.php index f2138bf..c7a389c 100644 --- a/app/Service/v3/Implementations/UserCenterBlockService.php +++ b/app/Service/v3/Implementations/UserCenterBlockService.php @@ -72,7 +72,7 @@ class UserCenterBlockService implements UserCenterBlockServiceInterface [ 'name' => '骑手端', 'icon' => $img_host . 'user_icons/service2.png', 'type' => 'page', - 'path' => '/pages/shopList/shopList?personal_id='.$item['data']['id'], + 'path' => '/pages/deliverymanOrders/deliverymanOrders?employees_id='.$item['data']['id'], 'command'=>'sp_login' ] ); diff --git a/app/Service/v3/Interfaces/HorsemanServiceInterface.php b/app/Service/v3/Interfaces/HorsemanServiceInterface.php index f43fcb0..b080f45 100644 --- a/app/Service/v3/Interfaces/HorsemanServiceInterface.php +++ b/app/Service/v3/Interfaces/HorsemanServiceInterface.php @@ -10,4 +10,7 @@ interface HorsemanServiceInterface public function check(); public function undo(); public function getOrderList(); + public function setHorsemanCoordinate($horsemanId,$coordinate); + public function getHorsemanCoordinate($horsemanId); + public function getOrderCoordinate($globalOrderId); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index f93166c..d98feb5 100644 --- a/config/routes.php +++ b/config/routes.php @@ -98,6 +98,10 @@ Router::addGroup('/v3/', function () { Router::post('paramsToken/analyze', 'App\Controller\v3\ParamsTokenController@analyze'); Router::post('goods/getTags', 'App\Controller\v3\GoodsController@getTags'); Router::post('home/market', 'App\Controller\v3\HomeController@marketInfo'); + Router::post('horseman/getOrderList', 'App\Controller\v3\HorsemanController@getOrderList'); + Router::post('horseman/getHorsemanCoordinate', 'App\Controller\v3\HorsemanController@getHorsemanCoordinate'); + Router::post('horseman/getOrderCoordinate', 'App\Controller\v3\HorsemanController@getOrderCoordinate'); + Router::post('horseman/setHorsemanCoordinate', 'App\Controller\v3\HorsemanController@setHorsemanCoordinate'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class]]); // 需要登录的路由 @@ -167,7 +171,6 @@ Router::addGroup('/v3/', function () { Router::post('store/updateIsRest', 'App\Controller\v3\StoreController@updateIsRest'); Router::post('coupon/getAvailableListByNewUser', 'App\Controller\v3\CouponController@getAvailableListByNewUser'); Router::post('coupon/receive', 'App\Controller\v3\CouponController@receive'); - Router::post('horseman/getOrderList', 'App\Controller\v3\HorsemanController@getOrderList'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]); // 微信支付回调