diff --git a/app/Admin/Controllers/v3/OrderReportController.php b/app/Admin/Controllers/v3/OrderReportController.php index 4f51091..38df61b 100644 --- a/app/Admin/Controllers/v3/OrderReportController.php +++ b/app/Admin/Controllers/v3/OrderReportController.php @@ -3,18 +3,13 @@ namespace App\Admin\Controllers\v3; use App\Admin\Repositories\v3\OrderReport; -use Dcat\Admin\Form; use Dcat\Admin\Grid; -use Dcat\Admin\Show; use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Layout\Content; -use Dcat\Admin\Form\Row; -use Dcat\Admin\Grid\Column; use App\Models\v3\Market as marketModel; -use App\Models\ImsCjdcOrder as OrderModel; -use Illuminate\Support\Facades\DB; use App\Admin\Extensions\OrderReportPage; use Dcat\Admin\Widgets\Lazy; +use Illuminate\Support\Collection; class OrderReportController extends AdminController { @@ -25,19 +20,54 @@ class OrderReportController extends AdminController */ protected function grid() { - // $marketId = request()->get('market_id'); - return Grid::make(new OrderReport(), function (Grid $grid) { - $grid->column('order_total_num','总订单数'); - $grid->column('order_total_money','订单总额'); - $grid->column('new_user_total_money','平台新用户补贴总额'); - $grid->column('store_user_total_money','店铺用户每日首单补贴'); - $grid->column('new_add_user','新增用户数'); - $grid->column('user_total','现存用户总数'); + + // $grid->column('user_total','现存用户总数'); + // $grid->column('order_total_money','订单总额'); + // $grid->column('new_user_total_money','平台新用户补贴总额'); + // $grid->column('store_user_total_money','店铺用户每日首单补贴'); + // $grid->column('new_add_user','新增用户数'); + + $grid->column('name','统计名称(默认统计当天数据)'); + $grid->column('value','统计数量'); + + $grid->filter(function (Grid\Filter $filter) { + //市场 + $marketList = MarketModel::getMarketArray(); + $filter->equal('market_id','市场')->select($marketList); + $filter->equal('start_time','开始时间')->date(); + $filter->equal('end_time','结束时间')->date(); + }); + + // 每页1条 + $grid->paginate(10); + $grid->disableCreateButton(); + $grid->disableBatchActions(); + $grid->disableBatchDelete(); + + $grid->toolsWithOutline(); + + $grid->disableDeleteButton(); + $grid->disableEditButton(); + $grid->disableQuickEditButton(); + $grid->disableViewButton(); }); } - public function index(Content $content) + public function indexS(Content $content) + { + $grid = $this->grid(); + return $content + ->header('报表') + ->description('合并表头功能示例') + ->body(function ($row) use($grid){ + $row->column(4, 123); + $row->column(4, 123); + $row->column(4, 123); + }); + } + + public function orderReport(Content $content) { $marketId = request()->input('market_id'); $startTime = request()->input('start_time'); @@ -50,35 +80,4 @@ class OrderReportController extends AdminController ->body(Lazy::make($order)); } - /** - * Make a show builder. - * - * @param mixed $id - * - * @return Show - */ - protected function detail($id) - { - return Show::make($id, new OrderModel(), function (Show $show) { - $show->id; - $show->market_id; - $show->name; - $show->mm_user_id; - }); - } - - /** - * Make a form builder. - * - * @return Form - */ - protected function form() - { - return Form::make(new OrderModel(), function (Form $form) { - $form->display('id'); - $form->text('market_id'); - $form->text('name'); - $form->text('mm_user_id'); - }); - } } diff --git a/app/Admin/Repositories/v3/OrderReport.php b/app/Admin/Repositories/v3/OrderReport.php index d125519..a77225c 100644 --- a/app/Admin/Repositories/v3/OrderReport.php +++ b/app/Admin/Repositories/v3/OrderReport.php @@ -31,13 +31,10 @@ class OrderReport extends EloquentRepository */ public function get(GridModel $model) { - $this->setSort($model); - $this->setPaginate($model); - $marketId = request()->input('market_id'); $startTime = request()->input('start_time'); $endTime = request()->input('end_time'); - + $orderMain = orderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5,10]); $storeNewUser = StoreAccountModel::select(DB::raw("SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN 1 ELSE 0 END ) AS new_add_total, SUM( CASE WHEN note = '新用户下单成功,平台奖励' THEN money ELSE 0 END ) AS new_user_total,SUM( CASE WHEN note = '用户下单成功,平台奖励' THEN money ELSE 0 END ) AS store_total")); @@ -52,45 +49,74 @@ class OrderReport extends EloquentRepository $storeNewUser->whereIn('store_id',$storeIds); } if($startTime){ + $startTime = $startTime.' 00:00:00'; $orderMain->where([['created_at','>=',strtotime($startTime)]]); $storeNewUser->where([['time','>=',$startTime]]); $newUser->where([['created_at','>=',strtotime($startTime)]]); } if($endTime){ + $endTime = $endTime.' 23:59:59'; $orderMain->where([['created_at','<=',strtotime($endTime)]]); $storeNewUser->where([['time','<=',$endTime]]); $newUser->where([['created_at','<=',strtotime($endTime)]]); } if(empty($startTime) && empty($endTime)){ $time = date('Y-m-d',time()); - $todayStart = $time.'00:00:00'; - $todayEnd = $time.'23:59:59'; + $todayStart = $time.' 00:00:00'; + $todayEnd = $time.' 23:59:59'; $orderMain->where([['created_at','>=',strtotime($todayStart)]]); $storeNewUser->where([['time','>=',$todayStart]]); - $newUser->where([['created_at','>=',strtotime($todayStart)]]); $orderMain->where([['created_at','<=',strtotime($todayEnd)]]); $storeNewUser->where([['time','<=',$todayEnd]]); - $newUser->where([['created_at','<=',strtotime($todayEnd)]]); } // 订单总额 - $orderReport = $orderMain->get()->toArray();//dd($orderReport); + $orderReport = $orderMain->get()->toArray(); // 总补贴金额 - $storeNewUser = $storeNewUser->get(); + $storeNewUsers = $storeNewUser->get()->toArray(); // 总用户 - $userTotal = $newUser->get(); + $userTotal = $newUser->get()->toArray(); - $query = [ - 'order_total_num' => $orderReport['total_num'], - 'order_total_money' => $orderReport['total_money'], + $query = [ + 'order_total_num' => !empty($orderReport[0]['total_num'])?$orderReport[0]['total_num']:0, + 'order_total_money' => !empty($orderReport[0]['total_money'])?$orderReport[0]['total_money']:0, - 'new_user_total_money' => $storeNewUser['new_user_total'], - 'store_user_total_money' => $storeNewUser['store_total'], - 'new_add_user' => $userTotal['new_add_total'], + 'new_user_total_money' => !empty($storeNewUsers[0]['new_user_total'])?$storeNewUsers[0]['new_user_total']:0, + 'store_user_total_money' => !empty($storeNewUsers[0]['store_total'])?$storeNewUsers[0]['store_total']:0, + 'new_add_user' => !empty($storeNewUsers[0]['new_add_total'])?$storeNewUsers[0]['new_add_total']:0, - 'user_total' => $newUser['total'], + 'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0, + ]; + $list = [ + [ + 'key' => 'user_total', + 'name' => '现存用户总数', + 'value' => $query['user_total'] + ], + [ + 'key' => 'order_total_num', + 'name' => '订单总额', + 'value' => $query['order_total_num'] + ], + [ + 'key' => 'new_user_total_money', + 'name' => '平台新用户补贴总额', + 'value' => $query['new_user_total_money'] + ], + [ + 'key' => 'store_user_total_money', + 'name' => '店铺用户每日首单补贴', + 'value' => $query['store_user_total_money'] + ], + [ + 'key' => 'new_add_user', + 'name' => '新增用户数', + 'value' => $query['new_add_user'] + ] ]; - return $query; + return $model->makePaginator( + count($list),$list + ); } } diff --git a/app/Admin/routes.php b/app/Admin/routes.php index cba728f..b374b60 100644 --- a/app/Admin/routes.php +++ b/app/Admin/routes.php @@ -83,7 +83,8 @@ Route::group([ $router->any('/api/area', 'LanzuArea@getArea'); // 订单统计 - $router->any('/order_report', 'v3\OrderReportController@index'); + $router->any('/order_report', 'v3\OrderReportController@orderReport'); $router->resource('/order_statistics', 'v3\OrderReportController'); + // $router->any('/order_statistics', 'v3\OrderReportController@index'); }); diff --git a/resources/views/order_report.php b/resources/views/order_report.php index 8126a98..cca8dee 100644 --- a/resources/views/order_report.php +++ b/resources/views/order_report.php @@ -1,9 +1,9 @@