Browse Source

订单统计查询--优化快捷查询日期

master
liangyuyan 5 years ago
parent
commit
a6db7e59ec
  1. 2
      app/Admin/Actions/Grid/v3/GoodsActivitySetting.php
  2. 78
      app/Admin/Actions/Grid/v3/OrderReportLastMonth.php
  3. 79
      app/Admin/Actions/Grid/v3/OrderReportLastWeek.php
  4. 77
      app/Admin/Actions/Grid/v3/OrderReportToday.php
  5. 78
      app/Admin/Actions/Grid/v3/OrderReportYesterday.php
  6. 82
      app/Admin/Controllers/v3/OrderReportController.php
  7. 17
      app/Admin/Repositories/v3/OrderReport.php

2
app/Admin/Actions/Grid/v3/GoodsActivitySetting.php

@ -36,7 +36,7 @@ class GoodsActivitySetting extends AbstractTool
*/ */
// public function href() // public function href()
// { // {
// return admin_url('category/tie');
// return admin_url('/');
// } // }
/** /**

78
app/Admin/Actions/Grid/v3/OrderReportLastMonth.php

@ -0,0 +1,78 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Traits\HasPermissions;
use Dcat\Admin\Tree\AbstractTool;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class OrderReportLastMonth extends AbstractTool
{
/**
* @return string
*/
protected $title = '上月';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
//上月初
$lastMonthStart = date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m', time()) . '-01')));
// 上月底
$lastMonthEnd = date('Y-m-d', strtotime(date('Y-m', time()) . '-01') - 86400);
return $this->response()
->success('查询中~')
->redirect('/order_report?start_time='.$lastMonthStart.'&end_time='.$lastMonthEnd);
}
/**
* @return string|void
*/
// public function href()
// {
// return admin_url('/');
// }
/**
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
// protected function actionScript()
// {
// return <<<JS
// function (data, target, action) {
// console.log('发起请求之前', data, target, action);
// // return false; 在这里return false可以终止执行后面的操作
// // 更改传递到接口的主键值
// action.options.key = 123;
// }
// JS;
// }
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
}

79
app/Admin/Actions/Grid/v3/OrderReportLastWeek.php

@ -0,0 +1,79 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Traits\HasPermissions;
use Dcat\Admin\Tree\AbstractTool;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class OrderReportLastWeek extends AbstractTool
{
/**
* @return string
*/
protected $title = '上周';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
// 上周日
$lastSunday = date('Y-m-d', strtotime('-1 sunday', time()));
// 上周一
$lastMonday = date('Y-m-d', strtotime('-1 monday', strtotime($lastSunday)));
return $this->response()
->success('查询中~')
->redirect('/order_report?start_time='.$lastMonday.'&end_time='.$lastSunday);
}
/**
* @return string|void
*/
// public function href()
// {
// return admin_url('/');
// }
/**
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
// protected function actionScript()
// {
// return <<<JS
// function (data, target, action) {
// console.log('发起请求之前', data, target, action);
// // return false; 在这里return false可以终止执行后面的操作
// // 更改传递到接口的主键值
// action.options.key = 123;
// }
// JS;
// }
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
}

77
app/Admin/Actions/Grid/v3/OrderReportToday.php

@ -0,0 +1,77 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Traits\HasPermissions;
use Dcat\Admin\Tree\AbstractTool;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class OrderReportToday extends AbstractTool
{
/**
* @return string
*/
protected $title = '今日';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
$today = date('Y-m-d');
$startTime = $today;
$endTime = $today;
return $this->response()
->success('查询中~')
->redirect('/order_report?start_time='.$startTime.'&end_time='.$endTime);
}
/**
* @return string|void
*/
// public function href()
// {
// return admin_url('/');
// }
/**
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
// protected function actionScript()
// {
// return <<<JS
// function (data, target, action) {
// console.log('发起请求之前', data, target, action);
// // return false; 在这里return false可以终止执行后面的操作
// // 更改传递到接口的主键值
// action.options.key = 123;
// }
// JS;
// }
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
}

78
app/Admin/Actions/Grid/v3/OrderReportYesterday.php

@ -0,0 +1,78 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Actions\Response;
use Dcat\Admin\Traits\HasPermissions;
use Dcat\Admin\Tree\AbstractTool;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
class OrderReportYesterday extends AbstractTool
{
/**
* @return string
*/
protected $title = '昨日';
/**
* Handle the action request.
*
* @param Request $request
*
* @return Response
*/
public function handle(Request $request)
{
$today = date('Y-m-d');
$yesterday = date("Y-m-d",strtotime("-1 days",strtotime($today)));
$startTime = $yesterday;
$endTime = $yesterday;
return $this->response()
->success('查询中~')
->redirect('/order_report?start_time='.$startTime.'&end_time='.$endTime);
}
/**
* @return string|void
*/
// public function href()
// {
// return admin_url('/');
// }
/**
* @return string|array|void
*/
public function confirm()
{
// return ['Confirm?', 'contents'];
}
// protected function actionScript()
// {
// return <<<JS
// function (data, target, action) {
// console.log('发起请求之前', data, target, action);
// // return false; 在这里return false可以终止执行后面的操作
// // 更改传递到接口的主键值
// action.options.key = 123;
// }
// JS;
// }
/**
* @param Model|Authenticatable|HasPermissions|null $user
*
* @return bool
*/
protected function authorize($user): bool
{
return true;
}
}

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

@ -2,6 +2,10 @@
namespace App\Admin\Controllers\v3; namespace App\Admin\Controllers\v3;
use App\Admin\Actions\Grid\v3\OrderReportLastMonth;
use App\Admin\Actions\Grid\v3\OrderReportLastWeek;
use App\Admin\Actions\Grid\v3\OrderReportToday;
use App\Admin\Actions\Grid\v3\OrderReportYesterday;
use App\Admin\Repositories\v3\OrderReport; use App\Admin\Repositories\v3\OrderReport;
use Dcat\Admin\Grid; use Dcat\Admin\Grid;
use Dcat\Admin\Controllers\AdminController; use Dcat\Admin\Controllers\AdminController;
@ -10,7 +14,7 @@ use Dcat\Admin\Grid\Filter;
class OrderReportController extends AdminController class OrderReportController extends AdminController
{ {
public static $searchTime = [];
// public static $searchTime = [];
/** /**
* Make a grid builder. * Make a grid builder.
* *
@ -18,7 +22,6 @@ class OrderReportController extends AdminController
*/ */
protected function grid() protected function grid()
{ {
return Grid::make(new OrderReport(), function (Grid $grid) { return Grid::make(new OrderReport(), function (Grid $grid) {
$marketList = MarketModel::getMarketArray(); $marketList = MarketModel::getMarketArray();
@ -35,43 +38,10 @@ class OrderReportController extends AdminController
$filter->equal('market_id','市场')->select($marketList); $filter->equal('market_id','市场')->select($marketList);
$filter->equal('start_time','开始时间')->date(); $filter->equal('start_time','开始时间')->date();
$filter->equal('end_time','结束时间')->date(); $filter->equal('end_time','结束时间')->date();
});
$grid->selector(function (Grid\Tools\Selector $selector) {
$today = date('Y-m-d');
$selector->selectOne('time', '选择日期', ['today'=>'今天', 'yesterday'=>'昨天', 'last_week'=>'上周','last_month'=>'上月'], function($query, $value) use($today){
$where = [];
switch($value){
case 'today':
$where['start_time'] = $today;
$where['end_time'] = $today;
break;
case 'yesterday':
$yesterday = date("Y-m-d",strtotime("-1 days",strtotime($today)));
$where['start_time'] = $yesterday;
$where['end_time'] = $yesterday;
break;
case 'last_week':
//上周日
$lastSunday = date('Y-m-d', strtotime('-1 sunday', time()));
// 上周一
$lastMonday = date('Y-m-d', strtotime('-1 monday', strtotime($lastSunday)));
$where['start_time'] = $lastMonday;
$where['end_time'] = $lastSunday;
break;
case 'last_month':
//上月初
$lastMonthStart = date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m', time()) . '-01')));
// 上月底
$lastMonthEnd = date('Y-m-d', strtotime(date('Y-m', time()) . '-01') - 86400);
$where['start_time'] = $lastMonthStart;
$where['end_time'] = $lastMonthEnd;
break;
}
self::$searchTime = $where;
});
}); });
$grid->tools([new OrderReportToday(), new OrderReportYesterday(), new OrderReportLastWeek(), new OrderReportLastMonth()]);
// 每页1条 // 每页1条
$grid->paginate(10); $grid->paginate(10);
$grid->disableCreateButton(); $grid->disableCreateButton();
@ -105,5 +75,41 @@ class OrderReportController extends AdminController
} }
return array_reverse($arr); return array_reverse($arr);
// $grid->selector(function (Grid\Tools\Selector $selector) {
// $today = date('Y-m-d');
// $selector->selectOne('time', '选择日期', ['today'=>'今日', 'yesterday'=>'昨日', 'last_week'=>'上周','last_month'=>'上月'], function($query, $value) use($today){
// $where = [];
// switch($value){
// case 'today':
// $where['start_time'] = $today;
// $where['end_time'] = $today;
// break;
// case 'yesterday':
// $yesterday = date("Y-m-d",strtotime("-1 days",strtotime($today)));
// $where['start_time'] = $yesterday;
// $where['end_time'] = $yesterday;
// break;
// case 'last_week':
// //上周日
// $lastSunday = date('Y-m-d', strtotime('-1 sunday', time()));
// // 上周一
// $lastMonday = date('Y-m-d', strtotime('-1 monday', strtotime($lastSunday)));
// $where['start_time'] = $lastMonday;
// $where['end_time'] = $lastSunday;
// break;
// case 'last_month':
// //上月初
// $lastMonthStart = date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m', time()) . '-01')));
// // 上月底
// $lastMonthEnd = date('Y-m-d', strtotime(date('Y-m', time()) . '-01') - 86400);
// $where['start_time'] = $lastMonthStart;
// $where['end_time'] = $lastMonthEnd;
// break;
// }
// self::$searchTime = $where;
// });
// });
} }
} }

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

@ -33,15 +33,14 @@ class OrderReport extends EloquentRepository
{ {
$marketId = request()->input('market_id'); $marketId = request()->input('market_id');
$time = date('Y-m-d',time()); $time = date('Y-m-d',time());
$searchTime = OrderReportController::$searchTime;
if(!empty($searchTime)){
$startTime = $searchTime['start_time'];
$endTime = $searchTime['end_time'];
}else{
$startTime = request()->input('start_time');
$endTime = request()->input('end_time');
}
$startTime = request()->input('start_time');
$endTime = request()->input('end_time');
// $searchTime = OrderReportController::$searchTime;
// if(!empty($searchTime) && !($startTime || $endTime)){
// $startTime = $searchTime['start_time'];
// $endTime = $searchTime['end_time'];
// }
$orderMainOnline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_ONLINE); $orderMainOnline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_ONLINE);
$orderMainOffline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_OFFLINE); $orderMainOffline = OrderMainModel::select(DB::raw('COUNT(id) AS total_num, SUM(money) AS total_money'))->whereIn('state',[4,5])->where('type',OrderMainModel::ORDER_TYPE_OFFLINE);

Loading…
Cancel
Save