Browse Source

订单统计

master
liangyuyan 6 years ago
parent
commit
eb6beea402
  1. 91
      app/Admin/Controllers/v3/OrderReportController.php
  2. 60
      app/Admin/Repositories/v3/OrderReport.php
  3. 3
      app/Admin/routes.php
  4. 20
      resources/views/order_report.php

91
app/Admin/Controllers/v3/OrderReportController.php

@ -3,18 +3,13 @@
namespace App\Admin\Controllers\v3; namespace App\Admin\Controllers\v3;
use App\Admin\Repositories\v3\OrderReport; use App\Admin\Repositories\v3\OrderReport;
use Dcat\Admin\Form;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Controllers\AdminController;
use Dcat\Admin\Layout\Content; 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\v3\Market as marketModel;
use App\Models\ImsCjdcOrder as OrderModel;
use Illuminate\Support\Facades\DB;
use App\Admin\Extensions\OrderReportPage; use App\Admin\Extensions\OrderReportPage;
use Dcat\Admin\Widgets\Lazy; use Dcat\Admin\Widgets\Lazy;
use Illuminate\Support\Collection;
class OrderReportController extends AdminController class OrderReportController extends AdminController
{ {
@ -25,19 +20,54 @@ class OrderReportController extends AdminController
*/ */
protected function grid() protected function grid()
{ {
// $marketId = request()->get('market_id');
return Grid::make(new OrderReport(), function (Grid $grid) { 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 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 index(Content $content)
public function orderReport(Content $content)
{ {
$marketId = request()->input('market_id'); $marketId = request()->input('market_id');
$startTime = request()->input('start_time'); $startTime = request()->input('start_time');
@ -50,35 +80,4 @@ class OrderReportController extends AdminController
->body(Lazy::make($order)); ->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');
});
}
} }

60
app/Admin/Repositories/v3/OrderReport.php

@ -31,9 +31,6 @@ class OrderReport extends EloquentRepository
*/ */
public function get(GridModel $model) public function get(GridModel $model)
{ {
$this->setSort($model);
$this->setPaginate($model);
$marketId = request()->input('market_id'); $marketId = request()->input('market_id');
$startTime = request()->input('start_time'); $startTime = request()->input('start_time');
$endTime = request()->input('end_time'); $endTime = request()->input('end_time');
@ -52,45 +49,74 @@ class OrderReport extends EloquentRepository
$storeNewUser->whereIn('store_id',$storeIds); $storeNewUser->whereIn('store_id',$storeIds);
} }
if($startTime){ if($startTime){
$startTime = $startTime.' 00:00:00';
$orderMain->where([['created_at','>=',strtotime($startTime)]]); $orderMain->where([['created_at','>=',strtotime($startTime)]]);
$storeNewUser->where([['time','>=',$startTime]]); $storeNewUser->where([['time','>=',$startTime]]);
$newUser->where([['created_at','>=',strtotime($startTime)]]); $newUser->where([['created_at','>=',strtotime($startTime)]]);
} }
if($endTime){ if($endTime){
$endTime = $endTime.' 23:59:59';
$orderMain->where([['created_at','<=',strtotime($endTime)]]); $orderMain->where([['created_at','<=',strtotime($endTime)]]);
$storeNewUser->where([['time','<=',$endTime]]); $storeNewUser->where([['time','<=',$endTime]]);
$newUser->where([['created_at','<=',strtotime($endTime)]]); $newUser->where([['created_at','<=',strtotime($endTime)]]);
} }
if(empty($startTime) && empty($endTime)){ if(empty($startTime) && empty($endTime)){
$time = date('Y-m-d',time()); $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)]]); $orderMain->where([['created_at','>=',strtotime($todayStart)]]);
$storeNewUser->where([['time','>=',$todayStart]]); $storeNewUser->where([['time','>=',$todayStart]]);
$newUser->where([['created_at','>=',strtotime($todayStart)]]);
$orderMain->where([['created_at','<=',strtotime($todayEnd)]]); $orderMain->where([['created_at','<=',strtotime($todayEnd)]]);
$storeNewUser->where([['time','<=',$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 = [ $query = [
'order_total_num' => $orderReport['total_num'],
'order_total_money' => $orderReport['total_money'],
'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
);
} }
} }

3
app/Admin/routes.php

@ -83,7 +83,8 @@ Route::group([
$router->any('/api/area', 'LanzuArea@getArea'); $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->resource('/order_statistics', 'v3\OrderReportController');
// $router->any('/order_statistics', 'v3\OrderReportController@index');
}); });

20
resources/views/order_report.php

@ -1,9 +1,9 @@
<div id="order_report"> <div id="order_report">
<!-- 搜索 --> <!-- 搜索 -->
<div> <div>
<form >
<form action="" pjax-container="" method="get">
<div> <div>
<select name="market_id">
<select class="form-control" name="market_id" >
<option value="0">选择市场</option> <option value="0">选择市场</option>
<option value="1">海尔青啤市场</option> <option value="1">海尔青啤市场</option>
<option value="2">东沟岭市场</option> <option value="2">东沟岭市场</option>
@ -12,6 +12,22 @@
<option value="5">平西市场</option> <option value="5">平西市场</option>
</select> </select>
</div> </div>
<div>
<div style="margin-top: 20px;">
<div class="form-group">
<div class="input-group input-group-sm">
<div class="input-group-prepend">
<span class="input-group-text bg-white text-capitalize"><b>时间</b>&nbsp;<i class="feather icon-calendar"></i></span>
</div>
<input autocomplete="off" type="text" class="form-control" id="filter_column__time_start" placeholder="时间" name="start_time" value="" >
<span class="input-group-addon" style="border-left: 0; border-right: 0;">To</span>
<input autocomplete="off" type="text" class="form-control" id="filter_column__time_end" placeholder="时间" name="end_time" value="" >
</div>
</div>
</div>
<div>
<input type="submit" value="查询"/>
</div>
</form> </form>
</div> </div>
<!-- 搜索 end --> <!-- 搜索 end -->

Loading…
Cancel
Save