diff --git a/app/Admin/Controllers/v3/GoodsActivityReportController.php b/app/Admin/Controllers/v3/GoodsActivityReportController.php index 6114d58..6428a07 100644 --- a/app/Admin/Controllers/v3/GoodsActivityReportController.php +++ b/app/Admin/Controllers/v3/GoodsActivityReportController.php @@ -6,7 +6,7 @@ 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\GoodsActivity; +use App\Admin\Repositories\v3\GoodsReport; use Dcat\Admin\Grid; use Dcat\Admin\Controllers\AdminController; use App\Models\v3\Market as MarketModel; @@ -23,16 +23,16 @@ class GoodsActivityReportController extends AdminController */ protected function grid() { - return Grid::make(new GoodsActivity(), function (Grid $grid) { + return Grid::make(new GoodsReport(), function (Grid $grid) { $marketList = MarketModel::getMarketArray(); $storeList = StoreModel::getStoreArray(); // $grid->combine('默认统计今天的数据', ['name', 'value'])->responsive()->help('如果未选择时间,则默认只统计当天的所有市场的数据,特殊:现存用户默认统计所有的数据'); - $grid->column('id')->sortable(); + $grid->column('goods_id')->sortable(); $grid->column('cover_img')->image('',50); - $grid->column('name'); + $grid->column('name','商品名称'); $grid->column('market_id')->display(function($marketId){ $item = MarketModel::getMarketInfo($marketId,'name'); @@ -42,8 +42,8 @@ class GoodsActivityReportController extends AdminController $item = StoreModel::getStoreInfo($storeId,'name'); return empty($item) ? '' : $item->name; })->width('12%'); - $grid->column('price'); - $grid->column('original_price'); + // $grid->column('price'); + // $grid->column('original_price'); $grid->column('total','销量')->as(function(){ return 0; }); @@ -52,14 +52,14 @@ class GoodsActivityReportController extends AdminController // 更改为 panel 布局 $filter->panel(); - $filter->equal('name')->select($marketList); + $filter->equal('name','商品名称'); $filter->equal('market_id','市场')->select($marketList); $filter->equal('store_id','店铺')->select($storeList); $filter->equal('start_time','开始时间')->date(); $filter->equal('end_time','结束时间')->date(); }); - $grid->tools([new OrderReportToday(), new OrderReportYesterday(), new OrderReportLastWeek(), new OrderReportLastMonth()]); + // $grid->tools([new OrderReportToday(), new OrderReportYesterday(), new OrderReportLastWeek(), new OrderReportLastMonth()]); // 每页1条 $grid->paginate(10); diff --git a/app/Admin/Repositories/v3/GoodsReport.php b/app/Admin/Repositories/v3/GoodsReport.php index 22b87fc..6c97b52 100644 --- a/app/Admin/Repositories/v3/GoodsReport.php +++ b/app/Admin/Repositories/v3/GoodsReport.php @@ -22,22 +22,40 @@ class GoodsReport extends EloquentRepository */ public function get(GridModel $model) { + // 获取当前页数 + $currentPage = $model->getCurrentPage(); + // 获取每页显示行数 + $perPage = $model->getPerPage(); + // 获取筛选参数 + $name = request()->input('name', ''); $marketId = request()->input('market_id'); + $storeId = request()->input('store_id'); $time = date('Y-m-d',time()); $startTime = request()->input('start_time'); $endTime = request()->input('end_time'); - $orderGoodsActivity = Model::select(DB::raw('COUNT(goods.id) as total,goods_id,goods.name')); + $orderGoodsActivity = Model::select(DB::raw('COUNT(lanzu_order_goods.id) 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]) + ; + if($name){ + $orderGoodsActivity->where('lanzu_order_goods.name','like',"%$name%"); + } if($marketId){ $orderGoodsActivity->where('market_id',$marketId); } + if($storeId){ + $orderGoodsActivity->where('store_id',$storeId); + } if($startTime){ $date = $startTime; $startTime = $startTime.' 00:00:00'; - $orderGoodsActivity->where([['created_at','>=',strtotime($startTime)]]); - + $orderGoodsActivity->where([['lanzu_order_goods.created_at','>=',strtotime($startTime)]]); }else{ $date = '2020-06-01'; } @@ -45,33 +63,24 @@ class GoodsReport extends EloquentRepository $date = $date.' 至 '.$endTime; $endTime = $endTime.' 23:59:59'; - $orderGoodsActivity->where([['created_at','<=',strtotime($endTime)]]); - + $orderGoodsActivity->where([['lanzu_order_goods.created_at','<=',strtotime($endTime)]]); }else{ $date .= ' 至 '.$time; } - if(empty($startTime) && empty($endTime)){ - - $date = $time; - $todayStart = $time.' 00:00:00'; - $todayEnd = $time.' 23:59:59'; - - $orderGoodsActivity->where([['created_at','>=',strtotime($todayStart)]]); - } + // if(empty($startTime) && empty($endTime)){ + // $date = $time; + // $todayStart = $time.' 00:00:00'; + // $todayEnd = $time.' 23:59:59'; + // $orderGoodsActivity->where([['lanzu_order_goods.created_at','>=',strtotime($todayStart)]]); + // $orderGoodsActivity->where([['lanzu_order_goods.created_at','<=',strtotime($todayEnd)]]); + // } - $orderReportOnline = $orderGoodsActivity->get()->toArray(); - - $query = [ - 'order_total_num_online' => !empty($orderReportOnline[0]['total_num'])?$orderReportOnline[0]['total_num']:0, - 'order_total_money_online' => !empty($orderReportOnline[0]['total_money'])?$orderReportOnline[0]['total_money']:0, - - 'user_total' => !empty($userTotal[0]['total'])?$userTotal[0]['total']:0, - ]; + $list = $orderGoodsActivity->groupBy('goods_id','lanzu_order_goods.name','cover_img','market_id','store_id')->paginate($perPage); + $list = $list->toArray(); - $list = []; - return $model->makePaginator( - count($list),$list + $list['total'] ?? 0,$list['data'] ?? [] ); + } } diff --git a/resources/lang/zh-CN/goods-activity-report.php b/resources/lang/zh-CN/goods-activity-report.php index 18d8b87..39ef5b4 100644 --- a/resources/lang/zh-CN/goods-activity-report.php +++ b/resources/lang/zh-CN/goods-activity-report.php @@ -5,7 +5,7 @@ return [ 'goods_activity_report' => '活动商品统计报表', ], 'fields' => [ - 'id' => 'ID', + 'goods_id' => 'ID', 'name' => '统计名称', 'cover_img' => '封面图', 'market_id' => '市场',