From 4b6e4113c16a0740f6ca6381ddd47ce4c5d903c8 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 10:00:16 +0800 Subject: [PATCH 01/34] =?UTF-8?q?=E9=AA=91=E6=89=8B=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=20=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=20=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E4=B8=93=E5=91=98=E6=A0=8F=E4=B8=8B=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E9=AA=91=E6=89=8B=E5=85=A5=E5=8F=A3=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E4=B8=93=E5=91=98=E4=BF=A1=E6=81=AF=E6=94=B9?= =?UTF-8?q?=E6=9F=A5employees=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HomeController.php | 8 ++--- app/Controller/v3/HorsemanController.php | 22 ++++++++++++ app/Model/v3/Employees.php | 22 ++++++++++++ .../v3/Implementations/HorsemanService.php | 27 ++++++++++++++ .../UserCenterBlockService.php | 36 +++++++++++++++---- .../v3/Implementations/UserInfoService.php | 9 +++-- .../Interfaces/HorsemanServiceInterface.php | 13 +++++++ .../Interfaces/UserInfoServiceInterface.php | 2 +- config/autoload/dependencies.php | 1 + config/routes.php | 1 + 10 files changed, 126 insertions(+), 15 deletions(-) create mode 100644 app/Controller/v3/HorsemanController.php create mode 100644 app/Model/v3/Employees.php create mode 100644 app/Service/v3/Implementations/HorsemanService.php create mode 100644 app/Service/v3/Interfaces/HorsemanServiceInterface.php diff --git a/app/Controller/v3/HomeController.php b/app/Controller/v3/HomeController.php index 0224d59..03281c6 100644 --- a/app/Controller/v3/HomeController.php +++ b/app/Controller/v3/HomeController.php @@ -160,10 +160,10 @@ class HomeController extends BaseController $params = $request->validated(); $data['user'] = $this->userInfoService->detail($params['user_id']); $store_info = $this->userInfoService->getStoreByUID($params['user_id']); - $sp_info = $this->userInfoService->getServicePersonnelByUID($params['user_id']); + $employees = $this->userInfoService->getEmployeesByUID($params['user_id']); $data['user']['store_info'] = $store_info; - $data['user']['sp_info'] = $sp_info; + $data['user']['sp_info'] = $employees; $roles = []; @@ -177,12 +177,12 @@ class HomeController extends BaseController ]; } - if($sp_info){ + if($employees){ $roles[] = [ 'key'=>'sp', 'title'=>'服务', 'color'=>'#0091FF', - 'data'=>$sp_info, + 'data'=>$employees, ]; } diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php new file mode 100644 index 0000000..0eb9a4f --- /dev/null +++ b/app/Controller/v3/HorsemanController.php @@ -0,0 +1,22 @@ +success($this->horsemanService->getOrderList()); + } +} \ No newline at end of file diff --git a/app/Model/v3/Employees.php b/app/Model/v3/Employees.php new file mode 100644 index 0000000..feae515 --- /dev/null +++ b/app/Model/v3/Employees.php @@ -0,0 +1,22 @@ + 'array' + ]; + + protected function boot(): void + { + parent::boot(); + self::addGlobalScope('normal', function (Builder $builder) { + $builder->where([$this->getTable().'.status' => 1]); + }); + } +} \ No newline at end of file diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php new file mode 100644 index 0000000..9396315 --- /dev/null +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -0,0 +1,27 @@ + 'sp_user', - 'title' => '服务专员', - 'items' => [ - ['name' => '评价', 'icon' => $img_host . 'user_icons/service2.png', 'type' => 'page', 'path' => '/zh_cjdianc/pages/appraise/index?service_personnel_id='.$item['data']['id'],'command'=>'sp_login'], + $tags = []; + if(in_array(29,$item['data']['position'])){ + array_push($tags, [ - 'name' => '商品管理', 'icon' => $img_host . 'user_icons/service2.png', + 'name' => '骑手端', 'icon' => $img_host . 'user_icons/service2.png', 'type' => 'page', 'path' => '/pages/shopList/shopList?personal_id='.$item['data']['id'], 'command'=>'sp_login' ] - ] + ); + } + + if(in_array(30,$item['data']['position'])){ + $personalId = ServicePersonnel::query()->where('user_id',$item['data']['user_id'])->value('id'); + array_push($tags, + [ + 'name' => '评价', + 'icon' => $img_host . 'user_icons/service2.png', + 'type' => 'page', + 'path' => '/zh_cjdianc/pages/appraise/index?service_personnel_id='.$personalId,'command'=>'sp_login' + ], + [ + 'name' => '商品管理', 'icon' => $img_host . 'user_icons/service2.png', + 'type' => 'page', + 'path' => '/pages/shopList/shopList?personal_id='.$personalId, + 'command'=>'sp_login' + ] + ); + } + $blocks[] = [ + 'type' => 'sp_user', + 'title' => '服务专员', + 'items' => $tags ]; } diff --git a/app/Service/v3/Implementations/UserInfoService.php b/app/Service/v3/Implementations/UserInfoService.php index 0b08a39..8e2e401 100644 --- a/app/Service/v3/Implementations/UserInfoService.php +++ b/app/Service/v3/Implementations/UserInfoService.php @@ -5,6 +5,7 @@ namespace App\Service\v3\Implementations; use App\Constants\v3\ErrorCode; use App\Constants\v3\SsdbKeys; use App\Exception\ErrorCodeException; +use App\Model\v3\Employees; use App\Model\v3\User; use App\Model\v3\ServicePersonnel; use App\Model\v3\Store; @@ -94,10 +95,12 @@ class UserInfoService implements UserInfoServiceInterface return $store; } - public function getServicePersonnelByUID($userId) + public function getEmployeesByUID($userId) { - $sp = ServicePersonnel::where('user_id',$userId)->select('id','user_id')->first(); - return $sp; + $employees = Employees::where('user_id',$userId)->where(function ($query){ + $query->whereJsonContains('position', '29')->orWhereJsonContains('position', '30'); + })->first(); + return $employees; } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/HorsemanServiceInterface.php b/app/Service/v3/Interfaces/HorsemanServiceInterface.php new file mode 100644 index 0000000..f43fcb0 --- /dev/null +++ b/app/Service/v3/Interfaces/HorsemanServiceInterface.php @@ -0,0 +1,13 @@ + \App\Service\v3\Implementations\ServiceEvaluateService::class, \App\Service\v3\Interfaces\ParamsTokenServiceInterface::class => \App\Service\v3\Implementations\ParamsTokenSsdbService::class, \App\Service\v3\Interfaces\GoodsInventoryServiceInterface::class => \App\Service\v3\Implementations\GoodsInventoryService::class, + \App\Service\v3\Interfaces\HorsemanServiceInterface::class => \App\Service\v3\Implementations\HorsemanService::class, ]; diff --git a/config/routes.php b/config/routes.php index 3a80997..f93166c 100644 --- a/config/routes.php +++ b/config/routes.php @@ -167,6 +167,7 @@ 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]]); // 微信支付回调 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 02/34] =?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]]); // 微信支付回调 From 8bdf094ef1c2cc44eeb41adf5bf8449f7b9aa3ca Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 11:52:42 +0800 Subject: [PATCH 03/34] =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Constants/v3/ErrorCode.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Constants/v3/ErrorCode.php b/app/Constants/v3/ErrorCode.php index 1f26a59..7e6a60d 100644 --- a/app/Constants/v3/ErrorCode.php +++ b/app/Constants/v3/ErrorCode.php @@ -408,12 +408,12 @@ class ErrorCode extends AbstractConstants const TOKEN_NOT_EXISTS = 1353; /************************************/ - /* 骑手相关 1401-1450 */ + /* 骑手相关 1451-1500 */ /************************************/ /** * 获取骑手坐标失败 * @Message("获取骑手坐标失败") */ - const HORSEMAN_COORDINATE_FAIL = 1401; + const HORSEMAN_COORDINATE_FAIL = 1451; } \ No newline at end of file From 8468c88ad2ba95890edc3b2c6729304cc21913be Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 14:33:25 +0800 Subject: [PATCH 04/34] =?UTF-8?q?horseman=E5=AD=97=E6=AE=B5=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E6=94=B9=E4=B8=BAemployees=20=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=9C=8D=E9=85=8D=E9=80=81=E8=B4=B9=E6=94=B9=E4=B8=BA0.01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 8 ++++---- .../v3/Implementations/DistributionPriceService.php | 4 +++- app/Service/v3/Implementations/HorsemanService.php | 10 +++++----- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 67f7189..977aa32 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -22,15 +22,15 @@ class HorsemanController extends BaseController public function setHorsemanCoordinate() { - $horsemanId = $this->request->input('horseman_id', -1); + $employeesId = $this->request->input('employees_id', -1); $coordinate = $this->request->input('coordinate', -1); - return $this->success($this->horsemanService->setHorsemanCoordinate($horsemanId,$coordinate)); + return $this->success($this->horsemanService->setHorsemanCoordinate($employeesId,$coordinate)); } public function getHorsemanCoordinate() { - $horsemanId = $this->request->input('horseman_id', -1); - $coordinate = $this->horsemanService->getHorsemanCoordinate($horsemanId); + $employeesId = $this->request->input('employees_id', -1); + $coordinate = $this->horsemanService->getHorsemanCoordinate($employeesId); return $this->success(['coordinate' => $coordinate]); } diff --git a/app/Service/v3/Implementations/DistributionPriceService.php b/app/Service/v3/Implementations/DistributionPriceService.php index 78ff942..b6e41f1 100644 --- a/app/Service/v3/Implementations/DistributionPriceService.php +++ b/app/Service/v3/Implementations/DistributionPriceService.php @@ -11,7 +11,9 @@ class DistributionPriceService implements DistributionPriceServiceInterface { public function do($distance) { - + if (env('APP_ENV') === 'dev') { + return 0.01; + } $deliveryDistance = config('distance.delivery_distance'); $deliveryDistance = ceil($deliveryDistance/1000); $km = ceil($distance/1000); diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php index fd0ae94..94aa008 100644 --- a/app/Service/v3/Implementations/HorsemanService.php +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -29,15 +29,15 @@ class HorsemanService implements HorsemanServiceInterface } public function getOrderList() { - return '接入成功'; + return OrderMain::query()->where('state',3)->limit(5)->get(); } /** * 记录骑手坐标 */ - public function setHorsemanCoordinate($horsemanId,$coordinate){ + public function setHorsemanCoordinate($employeesId,$coordinate){ $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); - if(false === $ssdb->exec('set', SsdbKeys::HORSEMAN_COORDINATE.$horsemanId,$coordinate)) { + if(false === $ssdb->exec('set', SsdbKeys::HORSEMAN_COORDINATE.$employeesId,$coordinate)) { return false; } return true; @@ -46,9 +46,9 @@ class HorsemanService implements HorsemanServiceInterface /** * 获取骑手坐标 */ - public function getHorsemanCoordinate($horsemanId){ + public function getHorsemanCoordinate($employeesId){ $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); - $params = $ssdb->exec('get', SsdbKeys::HORSEMAN_COORDINATE.$horsemanId); + $params = $ssdb->exec('get', SsdbKeys::HORSEMAN_COORDINATE.$employeesId); if ((false === $params) || empty($params)) { throw new ErrorCodeException(ErrorCode::HORSEMAN_COORDINATE_FAIL, '获取骑手坐标失败'); From 4a0f5facfe2ed437dad17b1fea40629065c33216 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 14:52:53 +0800 Subject: [PATCH 05/34] =?UTF-8?q?=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=AF=94=E8=BE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/Implementations/HelperService.php | 48 +++++++++++++++++++ .../v3/Implementations/TabsService.php | 11 +++-- 2 files changed, 56 insertions(+), 3 deletions(-) diff --git a/app/Service/v3/Implementations/HelperService.php b/app/Service/v3/Implementations/HelperService.php index 72e138d..5458e86 100644 --- a/app/Service/v3/Implementations/HelperService.php +++ b/app/Service/v3/Implementations/HelperService.php @@ -53,4 +53,52 @@ class HelperService implements HelperServiceInterface return $str; } + + /* + * 版本号比较 by sam 20170412 + * @param $version1 版本A 如:5.3.2 + * @param $version2 版本B 如:5.3.0 + * @return int -1版本A小于版本B , 0版本A等于版本B, 1版本A大于版本B + * + * 版本号格式注意: + * 1.要求只包含:点和大于等于0小于等于2147483646的整数 的组合 + * 2.boole型 true置1,false置0 + * 3.不设位默认补0计算,如:版本号5等于版号5.0.0 + * 4.不包括数字 或 负数 的版本号 ,统一按0处理 + * + * @example: + * if (versionCompare('5.2.2','5.3.0')<0) { + * echo '版本1小于版本2'; + * } + */ + function versionCompare($versionA,$versionB) + { + if ($versionA > 2147483646 || $versionB > 2147483646) { + throw new Exception('版本号,位数太大暂不支持!', '101'); + } + $dm = '.'; + $verListA = explode($dm, (string)$versionA); + $verListB = explode($dm, (string)$versionB); + + $len = max(count($verListA), count($verListB)); + $i = -1; + while ($i++ < $len) { + $verListA[$i] = intval(@$verListA[$i]); + if ($verListA[$i] < 0) { + $verListA[$i] = 0; + } + $verListB[$i] = intval(@$verListB[$i]); + if ($verListB[$i] < 0) { + $verListB[$i] = 0; + } + + if ($verListA[$i] > $verListB[$i]) { + return 1; + } else if ($verListA[$i] < $verListB[$i]) { + return -1; + } else if ($i == ($len - 1)) { + return 0; + } + } + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/TabsService.php b/app/Service/v3/Implementations/TabsService.php index 2438937..c35e7ff 100644 --- a/app/Service/v3/Implementations/TabsService.php +++ b/app/Service/v3/Implementations/TabsService.php @@ -4,10 +4,14 @@ namespace App\Service\v3\Implementations; use App\Constants\v3\Tabs; use App\Service\v3\Interfaces\TabsServiceInterface; - +use Hyperf\Di\Annotation\Inject; class TabsService implements TabsServiceInterface { - + /** + * @Inject + * @var HelperService + */ + protected $helperService; public function do() { // TODO: Implement do() method. @@ -25,7 +29,8 @@ class TabsService implements TabsServiceInterface public function allForAppletIndex($version) { - if($version == '3.0.12'){ + $version = $this->helperService->versionCompare($version,'3.0.12'); + if($version >= 0){ return [ ['tab' => Tabs::APPLET_INDEX_STORE, 'title' => '推荐店铺', 'subtitle' => '物美价廉', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], ['tab' => Tabs::APPLET_INDEX_RECOMMEND, 'title' => '猜你喜欢', 'subtitle' => '我是你的菜', 'badge' => '', 'bg_color' => '#FF0000', 'font_color' => '#FFFFFF'], From 4b0e0d6ca0c8a8972b962f00096a4dd5b7f017ab Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 15:20:29 +0800 Subject: [PATCH 06/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 13 +++++++++++++ .../v3/Implementations/OrderOnlineService.php | 5 +++++ .../v3/Interfaces/OrderOnlineServiceInterface.php | 7 +++++++ config/routes.php | 1 + 4 files changed, 26 insertions(+) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 977aa32..8cf62ca 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -6,6 +6,7 @@ namespace App\Controller\v3; use App\Controller\BaseController; use App\Service\v3\Interfaces\HorsemanServiceInterface; use Hyperf\Di\Annotation\Inject; +use App\Service\v3\Interfaces\OrderOnlineServiceInterface; class HorsemanController extends BaseController { @@ -15,11 +16,23 @@ class HorsemanController extends BaseController */ protected $horsemanService; + /** + * @Inject + * @var OrderOnlineServiceInterface + */ + protected $orderOnlineService; + public function getOrderList() { return $this->success($this->horsemanService->getOrderList()); } + public function getOrderInfo() + { + $globalOrderId = $this->request->input('global_order_id', -1); + return $this->success($this->orderOnlineService->getOrderInfo($globalOrderId)); + } + public function setHorsemanCoordinate() { $employeesId = $this->request->input('employees_id', -1); diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 8a128d0..f25cf63 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -849,4 +849,9 @@ class OrderOnlineService implements OrderOnlineServiceInterface return true; } + + public function getOrderInfo($globalOrderId) + { + return OrderMain::query()->where('global_order_id',$globalOrderId)->first(); + } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php b/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php index 0fc4654..1c962f7 100644 --- a/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php +++ b/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php @@ -83,4 +83,11 @@ interface OrderOnlineServiceInterface * @return mixed */ public function checkIfBuyFlashGoodsToday($userId); + + /** + * 获取订单详情 + * @param $globalOrderId + * @return mixed + */ + public function getOrderInfo($globalOrderId); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index d98feb5..d43e556 100644 --- a/config/routes.php +++ b/config/routes.php @@ -102,6 +102,7 @@ Router::addGroup('/v3/', function () { 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'); + Router::post('horseman/getOrderInfo', 'App\Controller\v3\HorsemanController@getOrderInfo'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class]]); // 需要登录的路由 From 3b32a1569e9aa6f69df10540b7ccbb937fdc371d Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 15:55:34 +0800 Subject: [PATCH 07/34] =?UTF-8?q?=E5=9B=9E=E8=B0=83=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 6 ++++-- app/Service/v3/Implementations/HorsemanService.php | 14 ++++++-------- .../v3/Implementations/OrderOnlineService.php | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 8cf62ca..8212eb5 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -24,13 +24,15 @@ class HorsemanController extends BaseController public function getOrderList() { - return $this->success($this->horsemanService->getOrderList()); + $orderMainList = $this->horsemanService->getOrderList(); + return $this->success(['order_list' => $orderMainList]); } public function getOrderInfo() { $globalOrderId = $this->request->input('global_order_id', -1); - return $this->success($this->orderOnlineService->getOrderInfo($globalOrderId)); + $orderMain = $this->orderOnlineService->getOrderInfo($globalOrderId); + return $this->success(['order' => $orderMain]); } public function setHorsemanCoordinate() diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php index 94aa008..ff1344b 100644 --- a/app/Service/v3/Implementations/HorsemanService.php +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -63,8 +63,8 @@ class HorsemanService implements HorsemanServiceInterface //获取订单信息 $order = OrderMain::where('global_order_id',$globalOrderId) ->select( - 'lat as origi_lat', - 'lng as origi_lng', + 'lat', + 'lng', 'state', 'market_id' ) @@ -76,15 +76,13 @@ class HorsemanService implements HorsemanServiceInterface //获取市场信息 $market = Market::where('id',$order->market_id) ->select( - 'lat as destination_lat', - 'lng as destination_lng' + 'lat', + 'lng' ) ->first(); $res = [ - 'origi_lat' => $order->origi_lat, - 'origi_lng' => $order->origi_lng, - 'destination_lat' => $market->destination_lat, - 'destination_lng' => $market->destination_lng + 'order' => $order, + 'market' => $market ]; return $res; } diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index f25cf63..f21da8b 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -852,6 +852,6 @@ class OrderOnlineService implements OrderOnlineServiceInterface public function getOrderInfo($globalOrderId) { - return OrderMain::query()->where('global_order_id',$globalOrderId)->first(); + return OrderMain::query()->where('global_order_id',$globalOrderId)->with('market','orderGoods')->first(); } } \ No newline at end of file From 02d8d1e981abe8c11d9f36299aad766c41e8bbe2 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 16:23:31 +0800 Subject: [PATCH 08/34] =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=E9=AA=91=E6=89=8B=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 5 +++++ app/Service/v3/Implementations/OrderListService.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 3b83f26..293fc48 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -130,4 +130,9 @@ class OrderMain extends Model { return $this->belongsTo(User::class, 'user_id', 'id'); } + + public function employees() + { + return $this->belongsTo(Employees::class, 'horseman_id', 'id'); + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/OrderListService.php b/app/Service/v3/Implementations/OrderListService.php index 2f5322a..be1ab0f 100644 --- a/app/Service/v3/Implementations/OrderListService.php +++ b/app/Service/v3/Implementations/OrderListService.php @@ -46,7 +46,7 @@ class OrderListService implements OrderListServiceInterface { $builder = OrderMain::query() - ->with(['orderGoods', 'market']) + ->with(['orderGoods', 'market','employees']) ->where(['user_id' => $userId, 'type' => OrderType::ONLINE]); switch ($tab) { case 'all': From 7f331f7af2ca81bf816e38a69c6d55d92d34630f Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 16:39:00 +0800 Subject: [PATCH 09/34] =?UTF-8?q?=E5=88=86=E9=A1=B5=20=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AE=9E=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 7 +++++-- app/Service/v3/Implementations/HorsemanService.php | 10 ++++++++-- app/Service/v3/Interfaces/HorsemanServiceInterface.php | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 8212eb5..58f6c8a 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -24,8 +24,11 @@ class HorsemanController extends BaseController public function getOrderList() { - $orderMainList = $this->horsemanService->getOrderList(); - return $this->success(['order_list' => $orderMainList]); + $employeesId = $this->request->input('employees_id', -1); + $page = $this->request->input('page',0); + $pagesize = $this->request->input('pagesize',0); + $orderMainList = $this->horsemanService->getOrderList($employeesId,$page, $pagesize); + return $this->success($orderMainList); } public function getOrderInfo() diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php index ff1344b..64531d7 100644 --- a/app/Service/v3/Implementations/HorsemanService.php +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -27,9 +27,15 @@ class HorsemanService implements HorsemanServiceInterface { // TODO: Implement undo() method. } - public function getOrderList() + public function getOrderList($employeesId,$page=1, $pagesize=10) { - return OrderMain::query()->where('state',3)->limit(5)->get(); + $builder = OrderMain::query()->where(['state' => 3,'horseman_id' => $employeesId]); + $paginate = $builder->orderBy('created_at', 'desc')->paginate($pagesize); + $orders = $paginate->toArray(); + return [ + 'has_more_pages' => $paginate->hasMorePages(), + 'order_list' => $orders['data'] + ]; } /** diff --git a/app/Service/v3/Interfaces/HorsemanServiceInterface.php b/app/Service/v3/Interfaces/HorsemanServiceInterface.php index b080f45..9debfeb 100644 --- a/app/Service/v3/Interfaces/HorsemanServiceInterface.php +++ b/app/Service/v3/Interfaces/HorsemanServiceInterface.php @@ -9,7 +9,7 @@ interface HorsemanServiceInterface public function do(); public function check(); public function undo(); - public function getOrderList(); + public function getOrderList($employeesId,$page=1, $pagesize=10); public function setHorsemanCoordinate($horsemanId,$coordinate); public function getHorsemanCoordinate($horsemanId); public function getOrderCoordinate($globalOrderId); From 1b7da569e92b1f224f66399676fcfab5e87355e6 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Thu, 22 Oct 2020 16:53:09 +0800 Subject: [PATCH 10/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 7 +++++++ app/Service/v3/Implementations/OrderOnlineService.php | 5 +++++ app/Service/v3/Interfaces/OrderOnlineServiceInterface.php | 2 ++ config/routes.php | 1 + 4 files changed, 15 insertions(+) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 58f6c8a..9357b74 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -57,4 +57,11 @@ class HorsemanController extends BaseController $globalOrderId = $this->request->input('global_order_id', -1); return $this->success($this->horsemanService->getOrderCoordinate($globalOrderId)); } + + public function orderComplete() + { + $globalOrderId = $this->request->input('global_order_id', -1); + $res = $this->orderOnlineService->completeForHorseman($globalOrderId); + return $this->success($res); + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index f21da8b..de649cd 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -854,4 +854,9 @@ class OrderOnlineService implements OrderOnlineServiceInterface { return OrderMain::query()->where('global_order_id',$globalOrderId)->with('market','orderGoods')->first(); } + + public function completeForHorseman($globalOrderId) + { + return true; + } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php b/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php index 1c962f7..951ce80 100644 --- a/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php +++ b/app/Service/v3/Interfaces/OrderOnlineServiceInterface.php @@ -90,4 +90,6 @@ interface OrderOnlineServiceInterface * @return mixed */ public function getOrderInfo($globalOrderId); + + public function completeForHorseman($globalOrderId); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index d43e556..05eb7fd 100644 --- a/config/routes.php +++ b/config/routes.php @@ -103,6 +103,7 @@ Router::addGroup('/v3/', function () { Router::post('horseman/getOrderCoordinate', 'App\Controller\v3\HorsemanController@getOrderCoordinate'); Router::post('horseman/setHorsemanCoordinate', 'App\Controller\v3\HorsemanController@setHorsemanCoordinate'); Router::post('horseman/getOrderInfo', 'App\Controller\v3\HorsemanController@getOrderInfo'); + Router::post('horseman/orderComplete', 'App\Controller\v3\HorsemanController@orderComplete'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class]]); // 需要登录的路由 From e37e3fc879f5c6552f270e5a3a8e0a72bfac4eb4 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 14:36:13 +0800 Subject: [PATCH 11/34] =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/OrderOnlineController.php | 12 ++++++-- .../DistributionPriceService.php | 28 ++++++++++++++++++- .../v3/Implementations/UserAddressService.php | 10 +++++++ .../DistributionPriceServiceInterface.php | 2 ++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index c12bf72..34e076e 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -115,13 +115,18 @@ class OrderOnlineController extends BaseController $distance_text = '距您收货地址 ' . $distance . 'm'; } $distributionPrice = $this->distributionPriceService->do($distance); + $originalPrice = $this->distributionPriceService->original($distance); $res['location'] = [ 'address' => $address, 'distribution_price' => $distributionPrice, + 'original_price' => $originalPrice, 'distance' => $distance, 'within' => true, + 'style' => 'strike', // 'distribution_text' => '¥ '.$distributionPrice .'(' .$distance_text .')' - 'distribution_text' => $distance_text + 'distribution_text' => $distance_text, + 'distribution_price_text' => '¥ '.$distributionPrice, + 'original_price_text' => '¥ '.$originalPrice ]; }else{ $res['location'] = [ @@ -129,7 +134,10 @@ class OrderOnlineController extends BaseController 'distribution_price' => 3.5, 'distance' => $distance, 'within' => false, - 'distribution_text' => '¥ 3.5' + 'style' => 'strike', + 'distribution_text' => '', + 'distribution_price_text' => '', + 'original_price_text' => '' ]; } //返回预约送达时间 数组 diff --git a/app/Service/v3/Implementations/DistributionPriceService.php b/app/Service/v3/Implementations/DistributionPriceService.php index dadca3b..2bab7c5 100644 --- a/app/Service/v3/Implementations/DistributionPriceService.php +++ b/app/Service/v3/Implementations/DistributionPriceService.php @@ -22,7 +22,7 @@ class DistributionPriceService implements DistributionPriceServiceInterface // $distributionPrice = bcmul(0.70,($km-3),2); $distributionPrice = 0; break; - case ($km > 5 && $km <= 8) : + case ($km > 5 && $km <= $deliveryDistance) : $distributionPrice = bcmul(1.50,($km-5),2); break; // case ($km > 7 && $km <= $deliveryDistance) : @@ -44,4 +44,30 @@ class DistributionPriceService implements DistributionPriceServiceInterface { // TODO: Implement undo() method. } + + public function original($distance) + { + $deliveryDistance = config('distance.delivery_distance'); + $deliveryDistance = ceil($deliveryDistance/1000); + $km = ceil($distance/1000); + switch (true){ + case ($km > $deliveryDistance) : + throw new ErrorCodeException(ErrorCode::LOCATION_LONG_DISTANCE,'',['message' => '超出配送范围', 'data' => ['距离' => $km, '配送距离' => $deliveryDistance]]); + break; + case ($km > 3 && $km <= 5) : + // $distributionPrice = bcmul(0.70,($km-3),2); + $distributionPrice = 0; + break; + case ($km > 5 && $km <= $deliveryDistance) : + $distributionPrice = bcmul(1.50,($km-5),2); + break; + // case ($km > 7 && $km <= $deliveryDistance) : + // $distributionPrice = bcmul(1.50,($km-5),2); + // break; + default: + $distributionPrice = 0; + } + $distributionPrice = bcadd($distributionPrice,3.50,2); + return (float) $distributionPrice; + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/UserAddressService.php b/app/Service/v3/Implementations/UserAddressService.php index bf374d1..94d90eb 100644 --- a/app/Service/v3/Implementations/UserAddressService.php +++ b/app/Service/v3/Implementations/UserAddressService.php @@ -91,16 +91,26 @@ class UserAddressService implements UserAddressServiceInterface $distance = $this->locationService->getDistanceByTencent($market->lng,$market->lat,$address['address']->lng,$address['address']->lat); $distributionPrice = $this->distributionPriceService->do($distance); + $originalPrice = $this->distributionPriceService->original($distance); if($distance >= 1000){ $distance_text = '距您收货地址 ' . bcdiv($distance,1000,2) . 'km'; }else{ $distance_text = '距您收货地址 ' . $distance . 'm'; } + /** + * distributionPrice 配送费 + * originalPrice 配送费原价 + * style 前端输出样式 + */ $res['address'] = $address; $res['delivery_distance'] = $distance; $res['distribution_price'] = $distributionPrice; + $res['original_price'] = $originalPrice; + $res['style'] = 'strike'; // $res['distribution_text'] = '¥ '.$distributionPrice .'(' .$distance_text .')'; $res['distribution_text'] = $distance_text; + $res['distribution_price_text'] = '¥ '.$distributionPrice; + $res['original_price_text'] = '¥ '.$originalPrice; return $res; } diff --git a/app/Service/v3/Interfaces/DistributionPriceServiceInterface.php b/app/Service/v3/Interfaces/DistributionPriceServiceInterface.php index 5c9d12f..aa6ea22 100644 --- a/app/Service/v3/Interfaces/DistributionPriceServiceInterface.php +++ b/app/Service/v3/Interfaces/DistributionPriceServiceInterface.php @@ -9,4 +9,6 @@ interface DistributionPriceServiceInterface public function check(); public function undo(); + + public function original($distance); } \ No newline at end of file From f8ef472ccce86fc54005d276dbd5277aea1ea1e9 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 14:53:55 +0800 Subject: [PATCH 12/34] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=B2=A1=E9=80=89?= =?UTF-8?q?=E5=9C=B0=E5=9D=80=E6=97=B6=E7=9A=84=E9=BB=98=E8=AE=A4=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/OrderOnlineController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index 34e076e..83e7b07 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -131,13 +131,14 @@ class OrderOnlineController extends BaseController }else{ $res['location'] = [ 'address' => '', - 'distribution_price' => 3.5, + 'distribution_price' => 0, + 'original_price' => 0, 'distance' => $distance, 'within' => false, 'style' => 'strike', 'distribution_text' => '', - 'distribution_price_text' => '', - 'original_price_text' => '' + 'distribution_price_text' => '¥ 0', + 'original_price_text' => '¥ 0' ]; } //返回预约送达时间 数组 From 44ea282d1c0ed3798eb90b06680c41be24b02ed2 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 15:10:11 +0800 Subject: [PATCH 13/34] =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B4=B9=E6=97=A0?= =?UTF-8?q?=E5=87=8F=E5=85=8D=E6=97=B6=20=E6=98=BE=E7=A4=BA=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/OrderOnlineController.php | 4 ++-- app/Service/v3/Implementations/UserAddressService.php | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index 83e7b07..c085e13 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -126,7 +126,7 @@ class OrderOnlineController extends BaseController // 'distribution_text' => '¥ '.$distributionPrice .'(' .$distance_text .')' 'distribution_text' => $distance_text, 'distribution_price_text' => '¥ '.$distributionPrice, - 'original_price_text' => '¥ '.$originalPrice + 'original_price_text' => $originalPrice > $distributionPrice ? '¥ '.$originalPrice : '' ]; }else{ $res['location'] = [ @@ -138,7 +138,7 @@ class OrderOnlineController extends BaseController 'style' => 'strike', 'distribution_text' => '', 'distribution_price_text' => '¥ 0', - 'original_price_text' => '¥ 0' + 'original_price_text' => '' ]; } //返回预约送达时间 数组 diff --git a/app/Service/v3/Implementations/UserAddressService.php b/app/Service/v3/Implementations/UserAddressService.php index 94d90eb..442cee9 100644 --- a/app/Service/v3/Implementations/UserAddressService.php +++ b/app/Service/v3/Implementations/UserAddressService.php @@ -110,7 +110,7 @@ class UserAddressService implements UserAddressServiceInterface // $res['distribution_text'] = '¥ '.$distributionPrice .'(' .$distance_text .')'; $res['distribution_text'] = $distance_text; $res['distribution_price_text'] = '¥ '.$distributionPrice; - $res['original_price_text'] = '¥ '.$originalPrice; + $res['original_price_text'] = $originalPrice > $distributionPrice ? '¥ '.$originalPrice : ''; return $res; } From 0a73c2cab62659769a259439cf54a69bb94d1566 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 15:19:04 +0800 Subject: [PATCH 14/34] =?UTF-8?q?=E9=AA=91=E6=89=8B=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 13 +++++----- app/Request/v3/EmployeesRequest.php | 33 ++++++++++++++++++++++++ app/Request/v3/HorsemanOrderRequest.php | 33 ++++++++++++++++++++++++ 3 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 app/Request/v3/EmployeesRequest.php create mode 100644 app/Request/v3/HorsemanOrderRequest.php diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 9357b74..50a885f 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -7,7 +7,8 @@ use App\Controller\BaseController; use App\Service\v3\Interfaces\HorsemanServiceInterface; use Hyperf\Di\Annotation\Inject; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; - +use App\Request\v3\EmployeesRequest; +use App\Request\v3\HorsemanOrderRequest; class HorsemanController extends BaseController { /** @@ -22,7 +23,7 @@ class HorsemanController extends BaseController */ protected $orderOnlineService; - public function getOrderList() + public function getOrderList(EmployeesRequest $request) { $employeesId = $this->request->input('employees_id', -1); $page = $this->request->input('page',0); @@ -31,21 +32,21 @@ class HorsemanController extends BaseController return $this->success($orderMainList); } - public function getOrderInfo() + public function getOrderInfo(HorsemanOrderRequest $request) { $globalOrderId = $this->request->input('global_order_id', -1); $orderMain = $this->orderOnlineService->getOrderInfo($globalOrderId); return $this->success(['order' => $orderMain]); } - public function setHorsemanCoordinate() + public function setHorsemanCoordinate(EmployeesRequest $request) { $employeesId = $this->request->input('employees_id', -1); $coordinate = $this->request->input('coordinate', -1); return $this->success($this->horsemanService->setHorsemanCoordinate($employeesId,$coordinate)); } - public function getHorsemanCoordinate() + public function getHorsemanCoordinate(EmployeesRequest $request) { $employeesId = $this->request->input('employees_id', -1); $coordinate = $this->horsemanService->getHorsemanCoordinate($employeesId); @@ -58,7 +59,7 @@ class HorsemanController extends BaseController return $this->success($this->horsemanService->getOrderCoordinate($globalOrderId)); } - public function orderComplete() + public function orderComplete(HorsemanOrderRequest $request) { $globalOrderId = $this->request->input('global_order_id', -1); $res = $this->orderOnlineService->completeForHorseman($globalOrderId); diff --git a/app/Request/v3/EmployeesRequest.php b/app/Request/v3/EmployeesRequest.php new file mode 100644 index 0000000..a4469e0 --- /dev/null +++ b/app/Request/v3/EmployeesRequest.php @@ -0,0 +1,33 @@ + 'required|nonempty|integer', + ]; + } + + /** + * @return array + */ + public function messages(): array + { + return [ + '*.*' => ':attribute无效', + ]; + } + + public function attributes(): array + { + return parent::attributes(); + } +} \ No newline at end of file diff --git a/app/Request/v3/HorsemanOrderRequest.php b/app/Request/v3/HorsemanOrderRequest.php new file mode 100644 index 0000000..8187f1c --- /dev/null +++ b/app/Request/v3/HorsemanOrderRequest.php @@ -0,0 +1,33 @@ + 'required|nonempty|integer', + ]; + } + + /** + * @return array + */ + public function messages(): array + { + return [ + '*.*' => ':attribute无效', + ]; + } + + public function attributes(): array + { + return parent::attributes(); + } +} \ No newline at end of file From addac7854d418c186804e08efbf84ba6b98b11f4 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 16:25:25 +0800 Subject: [PATCH 15/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E6=8D=A2=E7=9C=9F=E5=AE=9E=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/HorsemanController.php | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/app/Controller/v3/HorsemanController.php b/app/Controller/v3/HorsemanController.php index 50a885f..2676eb5 100644 --- a/app/Controller/v3/HorsemanController.php +++ b/app/Controller/v3/HorsemanController.php @@ -3,8 +3,14 @@ namespace App\Controller\v3; +use App\Constants\v3\ErrorCode; +use App\Constants\v3\LogLabel; use App\Controller\BaseController; +use App\Exception\ErrorCodeException; +use App\Model\v3\OrderMain; use App\Service\v3\Interfaces\HorsemanServiceInterface; +use App\Service\v3\Interfaces\SeparateAccountsServiceInterface; +use Hyperf\DbConnection\Db; use Hyperf\Di\Annotation\Inject; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; use App\Request\v3\EmployeesRequest; @@ -23,6 +29,12 @@ class HorsemanController extends BaseController */ protected $orderOnlineService; + /** + * @Inject + * @var SeparateAccountsServiceInterface + */ + protected $separateAccountsService; + public function getOrderList(EmployeesRequest $request) { $employeesId = $this->request->input('employees_id', -1); @@ -62,7 +74,17 @@ class HorsemanController extends BaseController public function orderComplete(HorsemanOrderRequest $request) { $globalOrderId = $this->request->input('global_order_id', -1); - $res = $this->orderOnlineService->completeForHorseman($globalOrderId); - return $this->success($res); + $userId = OrderMain::query()->where('global_order_id',$globalOrderId)->value('user_id'); + Db::beginTransaction(); + try { + $this->orderOnlineService->doComplete($globalOrderId, $userId); + $this->separateAccountsService->orderOnlineCompleted($globalOrderId, $userId); + Db::commit(); + return $this->success(true); + } catch (\Exception $e) { + Db::rollBack(); + $this->log->event(LogLabel::ORDER_COMPLETE_LOG, ['exception' => $e->getMessage()]); + throw new ErrorCodeException(ErrorCode::ORDER_COMPLETE_FAIL); + } } } \ No newline at end of file From 264ff0565f6bef5eb45525d2527cddfa6b63aa3f Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 16:46:58 +0800 Subject: [PATCH 16/34] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E6=8E=A5=E5=8F=A3=20an?= =?UTF-8?q?d=20=E9=A6=96=E9=A1=B5=E5=BA=97=E9=93=BA=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E4=BC=91=E6=81=AF=E7=9A=84=E5=BA=97?= =?UTF-8?q?=E9=93=BA=E4=B9=9F=E8=83=BD=E6=9F=A5=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Service/v3/Implementations/SearchService.php | 5 +++-- app/Service/v3/Implementations/StoreService.php | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Service/v3/Implementations/SearchService.php b/app/Service/v3/Implementations/SearchService.php index 4768e71..a188446 100644 --- a/app/Service/v3/Implementations/SearchService.php +++ b/app/Service/v3/Implementations/SearchService.php @@ -110,12 +110,13 @@ class SearchService implements SearchServiceInterface $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); }) ->whereRaw(''.$goodsTable.'.deleted_at IS NULL') - ->where([''.$storeTable.'.market_id' => $params['market_id'], ''.$storeTable.'.is_rest' => StoreConstants::IS_REST_NO]) + ->where([''.$storeTable.'.market_id' => $params['market_id']]) + ->orderBy($storeTable.'.is_rest','asc'); /*->where('time1', '<=', date('H:i')) ->where(function ($query) { $query->where('time2', '>=', date('H:i')) ->orWhere('time4', '>=', date('H:i')); - })*/; + })*/ if (isset($params['store_id']) && $params['store_id']) { $builder->where([''.$storeTable.'.store_id' => $params['store_id']]); diff --git a/app/Service/v3/Implementations/StoreService.php b/app/Service/v3/Implementations/StoreService.php index 50cb0fc..2ef73e4 100644 --- a/app/Service/v3/Implementations/StoreService.php +++ b/app/Service/v3/Implementations/StoreService.php @@ -82,7 +82,8 @@ class StoreService implements StoreServiceInterface $query->where(''.$goodsTable.'.inventory', '>', 0)->orWhere(''.$goodsTable.'.is_infinite', '=', 1); }) ->whereRaw(''.$goodsTable.'.deleted_at IS NULL') - ->where([''.$storeTable.'.market_id' => $marketId, ''.$storeTable.'.is_rest' => StoreConstants::IS_REST_NO]); + ->where([''.$storeTable.'.market_id' => $marketId]) + ->orderBy($storeTable.'.is_rest','asc');; $paginate = $builder->groupBy(''.$storeTable.'.id')->orderByDesc($storeTable.'.sales')->paginate($pagesize); $stores = $paginate->map(function ($item, $key) { From 0ef7d1ac36aa7182a33cfa1a0cb07bfac83b5ff5 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 16:59:43 +0800 Subject: [PATCH 17/34] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E5=95=86=E5=93=81?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=AF=86=E5=88=AB=E8=AF=B7=E6=B1=82=E8=B7=AF?= =?UTF-8?q?=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Service/v3/Implementations/SearchService.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/Service/v3/Implementations/SearchService.php b/app/Service/v3/Implementations/SearchService.php index a188446..a6bc224 100644 --- a/app/Service/v3/Implementations/SearchService.php +++ b/app/Service/v3/Implementations/SearchService.php @@ -28,9 +28,11 @@ class SearchService implements SearchServiceInterface ->where([ ''.$storeTable.'.is_open' => StoreConstants::IS_OPEN_YES, ''.$storeTable.'.status' => StoreConstants::STATUS_PASS, - ''.$storeTable.'.is_rest' => StoreConstants::IS_REST_NO - ]) - ->where([ + ]); + if(!isset($params['frompage']) || $params['frompage'] != 'zh_cjdianc/pages/takeout/takeoutindex'){ + $builder->where(''.$storeTable.'.is_rest',StoreConstants::IS_REST_NO); + } + $builder->where([ ''.$goodsTable.'.market_id' => $params['market_id'], ''.$goodsTable.'.on_sale' => GoodsConstants::ON_SALE_YES ]) From 3806580f0581108b414c646af8eac3b91a87be74 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 17:07:45 +0800 Subject: [PATCH 18/34] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/SearchController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Controller/v3/SearchController.php b/app/Controller/v3/SearchController.php index 9e0c92b..3477e75 100644 --- a/app/Controller/v3/SearchController.php +++ b/app/Controller/v3/SearchController.php @@ -48,7 +48,7 @@ class SearchController extends BaseController */ public function goods(SearchGoodsRequest $request) { - $params = $request->validated(); + $params = $this->request->all(); $data = $this->searchService->doForGoods($params); return $this->success($data); From 8695fcd659be6849118ae5706ddcaac7e1241695 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Fri, 23 Oct 2020 17:50:34 +0800 Subject: [PATCH 19/34] =?UTF-8?q?=E6=9C=80=E5=A4=A7=E9=85=8D=E9=80=81?= =?UTF-8?q?=E8=B7=9D=E7=A6=BB=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/UserAddressController.php | 5 +++++ config/routes.php | 1 + 2 files changed, 6 insertions(+) diff --git a/app/Controller/v3/UserAddressController.php b/app/Controller/v3/UserAddressController.php index 0cfdd51..985dcc2 100644 --- a/app/Controller/v3/UserAddressController.php +++ b/app/Controller/v3/UserAddressController.php @@ -70,4 +70,9 @@ class UserAddressController extends BaseController return $this->success(['location' => $res]); } + public function deliveryDistance(){ + $deliveryDistance = config('distance.delivery_distance'); + return $this->success(['delivery_distance' => $deliveryDistance]); + } + } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index 05eb7fd..f6c339c 100644 --- a/config/routes.php +++ b/config/routes.php @@ -104,6 +104,7 @@ Router::addGroup('/v3/', function () { Router::post('horseman/setHorsemanCoordinate', 'App\Controller\v3\HorsemanController@setHorsemanCoordinate'); Router::post('horseman/getOrderInfo', 'App\Controller\v3\HorsemanController@getOrderInfo'); Router::post('horseman/orderComplete', 'App\Controller\v3\HorsemanController@orderComplete'); + Router::post('userAddress/deliveryDistance', 'App\Controller\v3\UserAddressController@deliveryDistance'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class]]); // 需要登录的路由 From 00afcdcfe28651c66f282c98747e9a74535173b5 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 09:30:54 +0800 Subject: [PATCH 20/34] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=BD=93=E5=A4=A9?= =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Constants/v3/SsdbKeys.php | 5 +++++ app/Controller/v3/NotifyController.php | 10 ++++++++++ .../v3/Implementations/FeiePrintService.php | 10 ++++++++++ .../Implementations/OrderStatisticsService.php | 18 ++++++++++++++++++ .../OrderStatisticsServiceInterface.php | 2 ++ 5 files changed, 45 insertions(+) diff --git a/app/Constants/v3/SsdbKeys.php b/app/Constants/v3/SsdbKeys.php index f02c8ae..bdda500 100644 --- a/app/Constants/v3/SsdbKeys.php +++ b/app/Constants/v3/SsdbKeys.php @@ -85,4 +85,9 @@ class SsdbKeys extends AbstractConstants */ const HORSEMAN_COORDINATE = 'horseman_coordinate_'; + /** + * @Message("市场当日线上订单数量统计") + */ + const TODAY_SALES_FOR_MARKET = 'today_sales_for_market_'; + } \ No newline at end of file diff --git a/app/Controller/v3/NotifyController.php b/app/Controller/v3/NotifyController.php index f4c8810..bf8e57e 100644 --- a/app/Controller/v3/NotifyController.php +++ b/app/Controller/v3/NotifyController.php @@ -23,6 +23,7 @@ use App\Service\v3\Interfaces\MiniprogramServiceInterface; use App\Service\v3\Interfaces\MqttServiceInterface; use App\Service\v3\Interfaces\OrderOfflineServiceInterface; use App\Service\v3\Interfaces\OrderOnlineServiceInterface; +use App\Service\v3\Interfaces\OrderStatisticsServiceInterface; use App\Service\v3\Interfaces\SeparateAccountsServiceInterface; use EasyWeChat\Factory; use Hyperf\DbConnection\Db; @@ -107,6 +108,12 @@ class NotifyController extends BaseController */ protected $goodsActivityService; + /** + * @Inject + * @var OrderStatisticsServiceInterface + */ + protected $orderStatisticsService; + public function wxminiOnline() { @@ -163,6 +170,9 @@ class NotifyController extends BaseController Db::commit(); + //记录当前市场的当天外卖订单数 + $this->orderStatisticsService->setForMarket($orderMain->market_id); + // 优惠券返券 $this->couponRebateService->couponRebateInTask($orderMain->global_order_id); diff --git a/app/Service/v3/Implementations/FeiePrintService.php b/app/Service/v3/Implementations/FeiePrintService.php index 42b48d6..3b29a74 100644 --- a/app/Service/v3/Implementations/FeiePrintService.php +++ b/app/Service/v3/Implementations/FeiePrintService.php @@ -9,6 +9,7 @@ use App\Model\v3\Feprint; use App\Model\v3\OrderMain; use App\Service\v3\Interfaces\FeiePrintServiceInterface; use App\Service\v3\Interfaces\HelperServiceInterface; +use App\Service\v3\Interfaces\OrderStatisticsServiceInterface; use Hyperf\DbConnection\Db; use Hyperf\Di\Annotation\Inject; @@ -27,6 +28,12 @@ class FeiePrintService implements FeiePrintServiceInterface */ protected $helperService; + /** + * @Inject + * @var OrderStatisticsServiceInterface + */ + protected $orderStatistics; + // *必填*:飞鹅云后台注册账号 const USER = '13161443713@163.com'; // *必填*: 飞鹅云后台注册账号后生成的UKEY 【备注:这不是填打印机的KEY】 @@ -218,6 +225,9 @@ class FeiePrintService implements FeiePrintServiceInterface }else{ $orderInfo .= '自提时间:' . $arr->delivery_time_note . '
'; } + $orderStatistics = $this->orderStatistics->getForMarket($arr->market_id); + $str = sprintf ("%05d", $orderStatistics); // 生成5位数,不足前面补0 + $orderInfo .= $arr->global_order_id.$str; //$orderInfo .= 'http://www.feieyun.com';//把解析后的二维码生成的字符串用标签套上即可自动生成二维码 return $orderInfo; } diff --git a/app/Service/v3/Implementations/OrderStatisticsService.php b/app/Service/v3/Implementations/OrderStatisticsService.php index 567c86c..28239e7 100644 --- a/app/Service/v3/Implementations/OrderStatisticsService.php +++ b/app/Service/v3/Implementations/OrderStatisticsService.php @@ -4,10 +4,12 @@ namespace App\Service\v3\Implementations; use App\Constants\v3\OrderState; use App\Constants\v3\OrderType; +use App\Constants\v3\SsdbKeys; use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; use \App\Service\v3\Interfaces\OrderStatisticsServiceInterface; +use App\TaskWorker\SSDBTask; use Hyperf\Utils\ApplicationContext; class OrderStatisticsService implements OrderStatisticsServiceInterface @@ -73,4 +75,20 @@ class OrderStatisticsService implements OrderStatisticsServiceInterface // ->count(); // return $count; } + + public function setForMarket($marketId) + { + $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); + $incr = $ssdb->exec('incr', SsdbKeys::TODAY_SALES_FOR_MARKET.$marketId); + $expire = strtotime('23:59:59') - time(); + $expire = $ssdb->exec('expire', SsdbKeys::TODAY_SALES_FOR_MARKET.$marketId,$expire); + return $incr && $expire; + } + + public function getForMarket($marketId) + { + $ssdb = ApplicationContext::getContainer()->get(SSDBTask::class); + $count = $ssdb->exec('get', SsdbKeys::TODAY_SALES_FOR_MARKET.$marketId); + return $count; + } } \ No newline at end of file diff --git a/app/Service/v3/Interfaces/OrderStatisticsServiceInterface.php b/app/Service/v3/Interfaces/OrderStatisticsServiceInterface.php index b7a2227..d04a4d4 100644 --- a/app/Service/v3/Interfaces/OrderStatisticsServiceInterface.php +++ b/app/Service/v3/Interfaces/OrderStatisticsServiceInterface.php @@ -10,4 +10,6 @@ interface OrderStatisticsServiceInterface public function check(); public function undo(); public function countOrder($storeId,$type,$startTime = '',$endTime = ''); + public function getForMarket($marketId); + public function setForMarket($marketId); } \ No newline at end of file From 7d852a36a13f7f4e160f09f34f15efc4600060b8 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 09:35:29 +0800 Subject: [PATCH 21/34] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Service/v3/Implementations/FeiePrintService.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Service/v3/Implementations/FeiePrintService.php b/app/Service/v3/Implementations/FeiePrintService.php index 3b29a74..b8e82eb 100644 --- a/app/Service/v3/Implementations/FeiePrintService.php +++ b/app/Service/v3/Implementations/FeiePrintService.php @@ -227,7 +227,7 @@ class FeiePrintService implements FeiePrintServiceInterface } $orderStatistics = $this->orderStatistics->getForMarket($arr->market_id); $str = sprintf ("%05d", $orderStatistics); // 生成5位数,不足前面补0 - $orderInfo .= $arr->global_order_id.$str; + $orderInfo .= '流水号:' . $arr->global_order_id.$str; //$orderInfo .= 'http://www.feieyun.com';//把解析后的二维码生成的字符串用标签套上即可自动生成二维码 return $orderInfo; } From a00063c15f0b6156c951feb73de032a40c6df0c7 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 10:05:33 +0800 Subject: [PATCH 22/34] =?UTF-8?q?=E9=85=8D=E9=80=81=E8=B7=9D=E7=A6=BB?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=BA7=E5=85=AC=E9=87=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.php b/config/config.php index 106c3e0..c6209b4 100644 --- a/config/config.php +++ b/config/config.php @@ -62,6 +62,6 @@ return [ 'tencent' => env('TENCENT_MAP_KEY', ''), ], 'distance' => [ - 'delivery_distance' => env('DELIVERY_DISTANCE', '8000') + 'delivery_distance' => env('DELIVERY_DISTANCE', '7000') ], ]; From f5c723ac46fd124ead0e44b542cf9852c6b8bb89 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 10:26:29 +0800 Subject: [PATCH 23/34] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=AD=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 2 +- app/Service/v3/Implementations/HorsemanService.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 293fc48..5c4d8ef 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -77,7 +77,7 @@ class OrderMain extends Model { if ($this->attributes['state'] == 3) { if (!$this->attributes['horseman_id']) { - return '已接单'; + return '待自提'; } } diff --git a/app/Service/v3/Implementations/HorsemanService.php b/app/Service/v3/Implementations/HorsemanService.php index 64531d7..66dbb22 100644 --- a/app/Service/v3/Implementations/HorsemanService.php +++ b/app/Service/v3/Implementations/HorsemanService.php @@ -57,7 +57,7 @@ class HorsemanService implements HorsemanServiceInterface $params = $ssdb->exec('get', SsdbKeys::HORSEMAN_COORDINATE.$employeesId); if ((false === $params) || empty($params)) { - throw new ErrorCodeException(ErrorCode::HORSEMAN_COORDINATE_FAIL, '获取骑手坐标失败'); + throw new ErrorCodeException(ErrorCode::HORSEMAN_COORDINATE_FAIL, '骑手正在配送中'); } return $params; } From 8e06f15a3a4d46cda2c373d292a213ae6533c111 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 10:48:01 +0800 Subject: [PATCH 24/34] =?UTF-8?q?=E5=BE=85=E8=87=AA=E6=8F=90=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 5c4d8ef..f0f1841 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -75,10 +75,8 @@ class OrderMain extends Model public function getStateTextAttribute() { - if ($this->attributes['state'] == 3) { - if (!$this->attributes['horseman_id']) { + if ($this->attributes['state'] == OrderState::DELIVERY && $this->attributes['shipping_type'] == 3) { return '待自提'; - } } return OrderState::getMessage($this->attributes['state']); From 325098867744a0f26f169755e21720fc3b983976 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 11:41:30 +0800 Subject: [PATCH 25/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index f0f1841..543061d 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -75,8 +75,12 @@ class OrderMain extends Model public function getStateTextAttribute() { - if ($this->attributes['state'] == OrderState::DELIVERY && $this->attributes['shipping_type'] == 3) { + if ($this->attributes['state'] == OrderState::DELIVERY) { + if($this->attributes['shipping_type'] == 3) { return '待自提'; + }elseif ($this->attributes['shipping_type'] == 1 && !$this->attributes['horseman_id']){ + return '已接单'; + } } return OrderState::getMessage($this->attributes['state']); From 5b491ea90ce54a8e4654645f4cd583247697edad Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 12:00:38 +0800 Subject: [PATCH 26/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 543061d..50bf981 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -78,7 +78,7 @@ class OrderMain extends Model if ($this->attributes['state'] == OrderState::DELIVERY) { if($this->attributes['shipping_type'] == 3) { return '待自提'; - }elseif ($this->attributes['shipping_type'] == 1 && !$this->attributes['horseman_id']){ + }elseif ($this->attributes['shipping_type'] == 1 && empty($this->attributes['horseman_id'])){ return '已接单'; } } From 87a74330411ff547b61cca981940fe22630f5dde Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 15:16:50 +0800 Subject: [PATCH 27/34] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v3/Implementations/OrderOnlineService.php | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index de649cd..a8b1ddd 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -12,6 +12,7 @@ use App\Constants\v3\Shipping; use App\Constants\v3\SsdbKeys; use App\Exception\ErrorCodeException; use App\Model\v3\Coupon; +use App\Model\v3\Employees; use App\Model\v3\Goods; use App\Model\v3\GoodsActivity; use App\Model\v3\Market; @@ -564,8 +565,9 @@ class OrderOnlineService implements OrderOnlineServiceInterface public function detailByUser($globalOrderId, $userId) { - + //主订单 $orderMain = OrderMain::with(['market'])->where(['global_order_id' => $globalOrderId])->first(); + //子订单 $orders = Order::query() ->where(['order_main_id' => $globalOrderId, 'user_id' => $userId]) ->with([ @@ -573,8 +575,13 @@ class OrderOnlineService implements OrderOnlineServiceInterface 'store' ]) ->get()->toArray(); - - return ['order_main' => $orderMain, 'orders' => $orders]; + //配送人员信息 + if($orderMain->horseman_id > 0) { + $employees = Employees::query()->where('id', $orderMain->horseman_id)->first(); + }else{ + $employees = null; + } + return ['order_main' => $orderMain, 'orders' => $orders,'employees' => $employees]; } /** From f706bdd3eab1e6c894f172644c0a89bef2345085 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 15:29:24 +0800 Subject: [PATCH 28/34] =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Service/v3/Implementations/OrderOnlineService.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index a8b1ddd..3bc91a1 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -741,6 +741,7 @@ class OrderOnlineService implements OrderOnlineServiceInterface { $orderMain = $this->check($globalOrderId, $userId, OrderState::RECEIVING); $orderMain->state = OrderState::COMPLETED; + $orderMain->complete_time = time(); if (!$orderMain->save()) { throw new ErrorCodeException(ErrorCode::ORDER_COMPLETE_FAIL); } From 48d05466ea2f9eb7a9324c2ea26a4470c7417f6f Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 15:35:58 +0800 Subject: [PATCH 29/34] =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/OrderMain.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Model/v3/OrderMain.php b/app/Model/v3/OrderMain.php index 50bf981..d08009a 100644 --- a/app/Model/v3/OrderMain.php +++ b/app/Model/v3/OrderMain.php @@ -57,6 +57,7 @@ class OrderMain extends Model 'pay_time_text', 'pay_type_text', 'shipping_type_text', + 'complete_time_text' ]; protected $casts = [ @@ -73,6 +74,11 @@ class OrderMain extends Model return date('Y-m-d H:i:s', $this->attributes['pay_time']); } + public function getCompleteTimeTextAttribute() + { + return date('Y-m-d H:i:s', $this->attributes['complete_time']); + } + public function getStateTextAttribute() { if ($this->attributes['state'] == OrderState::DELIVERY) { From 9671ec5a6df8c6e528cc778225d99896fc526706 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 16:03:49 +0800 Subject: [PATCH 30/34] =?UTF-8?q?=E6=90=9C=E7=B4=A2=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E5=95=86=E5=93=81=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/GoodsController.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/Controller/v3/GoodsController.php b/app/Controller/v3/GoodsController.php index 7e8bb5c..92b2493 100644 --- a/app/Controller/v3/GoodsController.php +++ b/app/Controller/v3/GoodsController.php @@ -2,7 +2,9 @@ namespace App\Controller\v3; +use App\Constants\v3\ErrorCode; use App\Controller\BaseController; +use App\Exception\ErrorCodeException; use App\Model\v3\Category; use App\Model\v3\GoodsCategory; use App\Request\v3\GoodsEditorRequest; @@ -62,6 +64,10 @@ class GoodsController extends BaseController $res['banner'] = $this->goodsService->getBanner($goodsId); } + //搜索不到商品 + if(is_null($res['detail']['id'])){ + throw new ErrorCodeException(ErrorCode::GOODS_ACTIVITY_ON_SALE_NO); + } //如果没有banner数据,使用商品cover图 if(count($res['banner']) == 0){ // $res['banner'] = [$res['detail']['cover_img']]; From d318fd4e4fc49fcb14fa2b336a7ccf3c98c2d037 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 16:20:09 +0800 Subject: [PATCH 31/34] =?UTF-8?q?=E5=A4=84=E7=90=86=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E4=B8=BB=E5=9B=BE=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Model/v3/Goods.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/Model/v3/Goods.php b/app/Model/v3/Goods.php index 13e4411..7ee3cf8 100644 --- a/app/Model/v3/Goods.php +++ b/app/Model/v3/Goods.php @@ -109,7 +109,11 @@ class Goods extends Model public function getCoverImgAttribute($value) { - return $this->attachmentService->switchImgToAliOss($value, OssThumbnail::THUMBNAIL_600_Q90); + if(!empty($value)) { + return $this->attachmentService->switchImgToAliOss($value, OssThumbnail::THUMBNAIL_600_Q90); + }else{ + return ''; + } } public function getMonthSalesAttribute() From ab56140989eb46a7b9693668f8baf4d215f1b832 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Mon, 26 Oct 2020 16:24:15 +0800 Subject: [PATCH 32/34] =?UTF-8?q?=E9=94=99=E8=AF=AF=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/GoodsController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Controller/v3/GoodsController.php b/app/Controller/v3/GoodsController.php index 92b2493..4ce996b 100644 --- a/app/Controller/v3/GoodsController.php +++ b/app/Controller/v3/GoodsController.php @@ -66,7 +66,7 @@ class GoodsController extends BaseController //搜索不到商品 if(is_null($res['detail']['id'])){ - throw new ErrorCodeException(ErrorCode::GOODS_ACTIVITY_ON_SALE_NO); + throw new ErrorCodeException(ErrorCode::GOODS_ON_SALE_NO); } //如果没有banner数据,使用商品cover图 if(count($res['banner']) == 0){ From 0f6b6a1f32bac03bab2883697ea87d03d455a7e7 Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Tue, 27 Oct 2020 10:19:37 +0800 Subject: [PATCH 33/34] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=8E=92?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Controller/v3/OrderOnlineController.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index c085e13..2839970 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -179,7 +179,16 @@ class OrderOnlineController extends BaseController $total = bcadd($total,$res['value_added_service']['price'],2); $total = bcadd($total,$res['location']['distribution_price'],2); $res['total'] = $total; - + //优惠券排序 + $collection = collect($res['coupon']['available']); + $sorted = $collection->sortBy(function ($product, $key) use ($total){ + if($product['coupon']['discount_type'] == 2){ + return bcmul($total,bcdiv($product['coupon']['discounts'],10,2),2); + }elseif($product['coupon']['discount_type'] == 1){ + return bcsub($total,$product['coupon']['discounts'],2); + } + }); + $res['coupon']['available'] = $sorted->values()->all(); // 新增返回市场信息 $res['market'] = $market; From b9b2f5c11daf60107cc8c111149c09a95f5ffa9a Mon Sep 17 00:00:00 2001 From: Lemon <15040771@qq.com> Date: Tue, 27 Oct 2020 11:24:24 +0800 Subject: [PATCH 34/34] =?UTF-8?q?=E4=B8=8B=E5=8D=95=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=8A=98=E6=89=A3=E4=BC=98=E6=83=A0=E5=88=B8=E7=B2=BE=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Service/v3/Implementations/OrderOnlineService.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 3bc91a1..158d501 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -350,9 +350,12 @@ class OrderOnlineService implements OrderOnlineServiceInterface $couponMoney = bcadd($couponMoney, $coupon->coupon->discounts, 2); } elseif ($coupon->coupon->discount_type == Coupon::DISCOUNT_TYPE_RATE) { $discountRate = bcdiv($coupon->coupon->discounts,10); - $discountRate = bcsub(1,$discountRate); - $discountMoney = bcmul($orderAmount, $discountRate); - $couponMoney = bcadd($couponMoney, $discountMoney, 2); + $discountMoney = bcmul($orderAmount, $discountRate, 2); + $couponMoney = bcsub($orderAmount, $discountMoney, 2); + // $discountRate = bcdiv($coupon->coupon->discounts,10); + // $discountRate = bcsub(1,$discountRate); + // $discountMoney = bcmul($orderAmount, $discountRate); + // $couponMoney = bcadd($couponMoney, $discountMoney, 2); } }