diff --git a/app/Controller/v3/OrderListController.php b/app/Controller/v3/OrderListController.php index 5aceb5b..08928c7 100644 --- a/app/Controller/v3/OrderListController.php +++ b/app/Controller/v3/OrderListController.php @@ -51,4 +51,11 @@ class OrderListController extends BaseController $list = $this->orderListService->offlineByStore($params['store_id'], $params['tab'], $params['page'], $params['pagesize'],$params['start_time'],$params['end_time']); return $this->success($list); } + + public function offlineForUser(UserOrderListRequest $request) + { + $params = $request->validated(); + $list = $this->orderListService->offlineByUser($params['user_id'], $params['page'], $params['pagesize']); + return $this->success($list); + } } \ No newline at end of file diff --git a/app/Request/v3/UserOrderListRequest.php b/app/Request/v3/UserOrderListRequest.php index a7401ae..3ac1eae 100644 --- a/app/Request/v3/UserOrderListRequest.php +++ b/app/Request/v3/UserOrderListRequest.php @@ -16,7 +16,7 @@ class UserOrderListRequest extends BaseFormRequest { return [ 'user_id' => 'required|nonempty|integer', - 'tab' => 'nonempty', + 'tab' => '', 'page' => 'required|nonempty', 'pagesize' => 'required|nonempty', ]; diff --git a/app/Service/v3/Implementations/OrderListService.php b/app/Service/v3/Implementations/OrderListService.php index 7bc5b17..3d7fded 100644 --- a/app/Service/v3/Implementations/OrderListService.php +++ b/app/Service/v3/Implementations/OrderListService.php @@ -3,8 +3,10 @@ namespace App\Service\v3\Implementations; use App\Constants\v3\OrderState; +use App\Constants\v3\OrderType; use App\Model\v3\OrderMain; use App\Model\v3\Order; +use App\Model\v3\ShoppingCart; use App\Service\v3\Interfaces\OrderListServiceInterface; use Hyperf\Paginator\Paginator; @@ -30,10 +32,7 @@ class OrderListService implements OrderListServiceInterface { $builder = OrderMain::query() ->with(['orderGoods', 'market']) - ->where([ - ['user_id','=',$userId], - ['type','=',1] - ]); + ->where(['user_id' => $userId, 'type' => OrderType::ONLINE]); switch ($tab) { case 'all': break; @@ -143,4 +142,17 @@ class OrderListService implements OrderListServiceInterface $orders = $paginate->toArray(); return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']]; } + + public function offlineByUser($userId, $page=1, $pagesize=10) + { + $builder = OrderMain::query() + ->with(['orders' => function($query) { + $query->with('store'); + }]) + ->where(['user_id' => $userId, 'type' => OrderType::OFFLINE]); + + $paginate = $builder->paginate($pagesize); + $orders = $paginate->toArray(); + return ['has_more_pages' => $paginate->hasMorePages(), 'orders' => $orders['data']]; + } } \ No newline at end of file diff --git a/app/Service/v3/Implementations/OrderOfflineService.php b/app/Service/v3/Implementations/OrderOfflineService.php index 8ebdaf3..4fdc741 100644 --- a/app/Service/v3/Implementations/OrderOfflineService.php +++ b/app/Service/v3/Implementations/OrderOfflineService.php @@ -60,6 +60,12 @@ class OrderOfflineService implements OrderOfflineServiceInterface $orderMain = OrderMain::query()->create($dataMain); $orderMainId = $orderMain->id; + // 店铺今天的订单数 + $count = Order::query() + ->where(['store_id' => $storeId, 'type' => OrderType::OFFLINE]) + ->whereBetween('created_at', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]) + ->count(); + // 子订单数据 $dataChildren = [ 'order_main_id' => $orderMainId, @@ -67,7 +73,8 @@ class OrderOfflineService implements OrderOfflineServiceInterface 'store_id' => $storeId, 'money' => $money, 'order_num' => date('YmdHis').mt_rand(1000, 9999), - 'note' => '' + 'note' => '', + 'oid' => $count + 1 ]; $orderChild = Order::query()->create($dataChildren); diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 8c36c40..3bcca12 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -129,7 +129,7 @@ class OrderOnlineService implements OrderOnlineServiceInterface $storeTypeIds[] = (string)$storeType; // 店铺今天的订单数 $count = Order::query() - ->where(['store_id' => $storeId]) + ->where(['store_id' => $storeId, 'type' => OrderType::ONLINE]) ->whereBetween('created_at', [strtotime(date('Y-m-d 00:00:00')), strtotime(date('Y-m-d 23:59:59'))]) ->count(); diff --git a/app/Service/v3/Implementations/SearchService.php b/app/Service/v3/Implementations/SearchService.php index 4ce8b47..660d9dd 100644 --- a/app/Service/v3/Implementations/SearchService.php +++ b/app/Service/v3/Implementations/SearchService.php @@ -47,7 +47,7 @@ class SearchService implements \App\Service\v3\Interfaces\SearchServiceInterface $builder->select(['id', 'store_id', 'cover_img', 'name', 'spec', 'tags', 'original_price', 'price', 'inventory', 'sales as total_sales']); $paginate = $builder->paginate($params['pagesize']); $goods = $paginate->toArray(); - return ['has_more_pages' => $paginate->hasMorePages(), 'goods' => $goods]; + return ['has_more_pages' => $paginate->hasMorePages(), 'goods' => $goods['data']]; } public function doForStores($params) @@ -86,7 +86,7 @@ class SearchService implements \App\Service\v3\Interfaces\SearchServiceInterface $builder->select(['id', 'logo', 'name']); $paginate = $builder->paginate($params['pagesize']); $stores = $paginate->toArray(); - return ['has_more_pages' => $paginate->hasMorePages(), 'stores' => $stores]; + return ['has_more_pages' => $paginate->hasMorePages(), 'stores' => $stores['data']]; } public function getHotKeywords($type) diff --git a/app/Service/v3/Interfaces/OrderListServiceInterface.php b/app/Service/v3/Interfaces/OrderListServiceInterface.php index 3a7f204..a3feb77 100644 --- a/app/Service/v3/Interfaces/OrderListServiceInterface.php +++ b/app/Service/v3/Interfaces/OrderListServiceInterface.php @@ -10,4 +10,5 @@ interface OrderListServiceInterface public function onlineByUser($userId, $tab, $page=1, $pagesize=10); public function onlineByStore($userId, $tab, $page, $pagesize); public function offlineByStore($userId, $tab, $page, $pagesize,$start_time = '',$end_time = ''); + public function offlineByUser($userId, $page=1, $pagesize=10); } \ No newline at end of file diff --git a/config/routes.php b/config/routes.php index 11a8405..f8babb9 100644 --- a/config/routes.php +++ b/config/routes.php @@ -134,6 +134,7 @@ Router::addGroup('/v3/', function () { Router::post('orderOnline/del', 'App\Controller\v3\OrderOnlineController@del'); Router::post('orderOnline/applyRefund', 'App\Controller\v3\OrderOnlineController@applyRefund'); Router::post('orderOnline/complete', 'App\Controller\v3\OrderOnlineController@complete'); + Router::post('user/oflOrders', 'App\Controller\v3\OrderListController@offlineForUser'); },['middleware' => [\App\Middleware\Auth\ApiMiddleware::class, \App\Middleware\Auth\UserMiddleware::class]]); // 微信支付回调