Browse Source

活动商品-统计数据图标-隐藏,未想到好方案,获取数据的时候不重复查询

master
liangyuyan 5 years ago
parent
commit
cf54d8655e
  1. 15
      app/Admin/Controllers/v3/GoodsActivityReportController.php
  2. 27
      app/Admin/Repositories/v3/GoodsActivityReport.php
  3. 2
      app/Admin/routes.php

15
app/Admin/Controllers/v3/GoodsActivityReportController.php

@ -7,6 +7,7 @@ use App\Admin\Actions\Grid\v3\OrderReportLastWeek;
use App\Admin\Actions\Grid\v3\OrderReportToday;
use App\Admin\Actions\Grid\v3\OrderReportYesterday;
use Dcat\Admin\Grid\Model as GridModel;
use App\Admin\Repositories\v3\GoodsActivityReport;
use App\Admin\Widgets\Charts\OrderGoodsActivityColumnChart;
use Dcat\Admin\Grid;
@ -19,14 +20,7 @@ use Dcat\Admin\Layout\Row;
class GoodsActivityReportController extends AdminController
{
public $data = [];
public $repositories = null;
public function __construct()
{
$this->option = $this->id = 7;
$this->repositories = new GoodsActivityReport();
$this->data = $this->repositories->data;
}
/**
* Make a grid builder.
*
@ -34,7 +28,7 @@ class GoodsActivityReportController extends AdminController
*/
protected function grid()
{
return Grid::make($this->repositories, function (Grid $grid) {
return Grid::make(new GoodsActivityReport(), function (Grid $grid) {
$marketList = MarketModel::getMarketArray();
$storeList = StoreModel::getStoreArray();
@ -98,8 +92,7 @@ class GoodsActivityReportController extends AdminController
$row->column(12,$this->grid());
})
->body(function(Row $row){
$list = $this->data;dd($list);
$row->column(12,new OrderGoodsActivityColumnChart($list));
// $row->column(12,new OrderGoodsActivityColumnChart());
});
}
}

27
app/Admin/Repositories/v3/GoodsActivityReport.php

@ -6,7 +6,6 @@ use App\Models\LanzuOrderGoods as Model;
use Dcat\Admin\Grid\Model as GridModel;
use Dcat\Admin\Repositories\EloquentRepository;
use Illuminate\Support\Facades\DB;
use App\Admin\Controllers\v3\GoodsActivityController;
class GoodsActivityReport extends EloquentRepository
{
@ -27,6 +26,16 @@ class GoodsActivityReport extends EloquentRepository
$currentPage = $model->getCurrentPage();
// 获取每页显示行数
$perPage = $model->getPerPage();
$list = $this->getData($perPage);
return $model->makePaginator(
$list['total'] ?? 0,$list['data'] ?? []
);
}
public function getData($perPage = 10)
{
// 获取筛选参数
$name = request()->input('name', '');
$marketId = request()->input('market_id');
@ -34,15 +43,14 @@ class GoodsActivityReport extends EloquentRepository
$time = date('Y-m-d',time());
$startTime = request()->input('start_time');
$endTime = request()->input('end_time');
$orderGoodsActivity = Model::select(DB::raw('SUM(lanzu_order_goods.number) as total,lanzu_order_goods.goods_id,lanzu_order_goods.name,lanzu_order_goods.cover_img,lanzu_order_main.market_id,lanzu_order.store_id'))
->join('lanzu_order','lanzu_order_goods.order_id','=','lanzu_order.id')
->join('lanzu_order_main','lanzu_order.order_main_id','=','lanzu_order_main.global_order_id')
->where('lanzu_order_goods.activity_type',2)
->where('lanzu_order_goods.status',1)
->whereIn('lanzu_order_main.state',[4,5,10,11])
;
->whereIn('lanzu_order_main.state',[4,5,10,11]);
if($name){
$orderGoodsActivity->where('lanzu_order_goods.name','like',"%$name%");
}
@ -76,12 +84,7 @@ class GoodsActivityReport extends EloquentRepository
// $orderGoodsActivity->where([['lanzu_order_goods.created_at','<=',strtotime($todayEnd)]]);
// }
$list = $orderGoodsActivity->orderBy('total','desc')->groupBy('goods_id','lanzu_order_goods.name','cover_img','market_id','store_id')->paginate($perPage);
$list = $list->toArray();
$this->data = $list['data'] ?? [];
return $model->makePaginator(
$list['total'] ?? 0,$list['data'] ?? []
);
$list = $list->toArray();
return $list;
}
}

2
app/Admin/routes.php

@ -88,6 +88,6 @@ Route::group([
// 订单统计
$router->resource('/order_report', 'v3\OrderReportController');
// 活动商品统计
$router->any('/goods_activity_report', 'v3\GoodsActivityReportController@index');
$router->resource('/goods_activity_report', 'v3\GoodsActivityReportController');
});
Loading…
Cancel
Save