链街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.

97 lines
2.8 KiB

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\StoreUserReport;
  4. use Dcat\Admin\Form;
  5. use Dcat\Admin\Grid;
  6. use Dcat\Admin\Show;
  7. use Dcat\Admin\Controllers\AdminController;
  8. use App\Models\ImsCjdcMarket as marketModel;
  9. class StoreUserReportController extends AdminController
  10. {
  11. /**
  12. * Make a grid builder.
  13. *
  14. * @return Grid
  15. */
  16. protected function grid()
  17. {
  18. return Grid::make(new StoreUserReport(), function (Grid $grid) {
  19. $grid->disableCreateButton();
  20. $grid->disableDeleteButton();
  21. $grid->disableEditButton();
  22. $grid->disableQuickEditButton();
  23. $grid->disableViewButton();
  24. $marketList = [];
  25. $list = marketModel::select('id','name')->get()->toArray();
  26. foreach($list as $value){
  27. $marketList[$value['id']] = $value['name'];
  28. }
  29. $grid->store_id;
  30. $grid->market_id->filter(
  31. Grid\Column\Filter\In::make($marketList)
  32. )->display(function ($markrtId) {
  33. $market = marketModel::find($markrtId);
  34. if (!$market) {
  35. return '<span style="color: red">数据错误</span>';
  36. }
  37. return $market->name;
  38. });
  39. $grid->store_name;
  40. $grid->mm_user_id->display(function ($markrtId) {
  41. return '未关联';
  42. });
  43. $grid->new_user_total;
  44. $grid->filter(function (Grid\Filter $filter) {
  45. $filter->equal('store_id');
  46. $filter->like('store.name');
  47. $filter->whereBetween('time', function ($q) {
  48. $start = $this->input['start'] ?? null;
  49. $end = $this->input['end'] ?? null;
  50. if ($start !== null) {
  51. $q->whereRaw('add_time >= UNIX_TIMESTAMP(?)',$start);
  52. }
  53. if ($end !== null) {
  54. $q->whereRaw('add_time <= UNIX_TIMESTAMP(?)',$end);
  55. }
  56. })->datetime();
  57. });
  58. });
  59. }
  60. /**
  61. * Make a show builder.
  62. *
  63. * @param mixed $id
  64. *
  65. * @return Show
  66. */
  67. protected function detail($id)
  68. {
  69. return Show::make($id, new StoreUserReport(), function (Show $show) {
  70. $show->id;
  71. $show->market_id;
  72. $show->name;
  73. $show->mm_user_id;
  74. });
  75. }
  76. /**
  77. * Make a form builder.
  78. *
  79. * @return Form
  80. */
  81. protected function form()
  82. {
  83. return Form::make(new StoreUserReport(), function (Form $form) {
  84. $form->display('id');
  85. $form->text('market_id');
  86. $form->text('name');
  87. $form->text('mm_user_id');
  88. });
  89. }
  90. }