链街Dcat后台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.4 KiB

  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Actions\Grid\v3\OrderReportLastMonth;
  4. use App\Admin\Actions\Grid\v3\OrderReportLastWeek;
  5. use App\Admin\Actions\Grid\v3\OrderReportToday;
  6. use App\Admin\Actions\Grid\v3\OrderReportYesterday;
  7. use App\Admin\Repositories\v3\GoodsActivity;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Controllers\AdminController;
  10. use App\Models\v3\Market as MarketModel;
  11. use App\Models\v3\Store as StoreModel;
  12. use Dcat\Admin\Grid\Filter;
  13. class GoodsActivityReportController extends AdminController
  14. {
  15. // public static $searchTime = [];
  16. /**
  17. * Make a grid builder.
  18. *
  19. * @return Grid
  20. */
  21. protected function grid()
  22. {
  23. return Grid::make(new GoodsActivity(), function (Grid $grid) {
  24. $marketList = MarketModel::getMarketArray();
  25. $storeList = StoreModel::getStoreArray();
  26. // $grid->combine('默认统计今天的数据', ['name', 'value'])->responsive()->help('如果未选择时间,则默认只统计当天的所有市场的数据,特殊:现存用户默认统计所有的数据');
  27. $grid->column('id')->sortable();
  28. $grid->column('cover_img')->image('',50);
  29. $grid->column('name');
  30. $grid->column('market_id')->display(function($marketId){
  31. $item = MarketModel::getMarketInfo($marketId,'name');
  32. return empty($item) ? '' : $item->name;
  33. });
  34. $grid->column('store_id')->display(function($storeId){
  35. $item = StoreModel::getStoreInfo($storeId,'name');
  36. return empty($item) ? '' : $item->name;
  37. })->width('12%');
  38. $grid->column('price');
  39. $grid->column('original_price');
  40. $grid->column('total','销量')->as(function(){
  41. return 0;
  42. });
  43. $grid->filter(function (Filter $filter) use($marketList,$storeList) {
  44. // 更改为 panel 布局
  45. $filter->panel();
  46. $filter->equal('name')->select($marketList);
  47. $filter->equal('market_id','市场')->select($marketList);
  48. $filter->equal('store_id','店铺')->select($storeList);
  49. $filter->equal('start_time','开始时间')->date();
  50. $filter->equal('end_time','结束时间')->date();
  51. });
  52. $grid->tools([new OrderReportToday(), new OrderReportYesterday(), new OrderReportLastWeek(), new OrderReportLastMonth()]);
  53. // 每页1条
  54. $grid->paginate(10);
  55. $grid->disableCreateButton();
  56. $grid->disableBatchActions();
  57. $grid->disableBatchDelete();
  58. $grid->toolsWithOutline();
  59. $grid->disableDeleteButton();
  60. $grid->disableEditButton();
  61. $grid->disableQuickEditButton();
  62. $grid->disableViewButton();
  63. $grid->disableActions();
  64. $grid->disableRowSelector();
  65. });
  66. }
  67. /**
  68. * 获取一个时间段内的日期
  69. */
  70. public function periodDateArr($start_time,$end_time){
  71. $start_time = strtotime($start_time);
  72. $end_time = strtotime($end_time);
  73. $i=0;
  74. $arr = [];
  75. while ($start_time<=$end_time){
  76. $arr[date('Y-m-d',$start_time)]=date('Y年m月d日',$start_time);
  77. $start_time = strtotime('+1 day',$start_time);
  78. $i++;
  79. }
  80. return array_reverse($arr);
  81. }
  82. }