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

92 lines
2.6 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. $grid->store_id;
  25. $grid->market_id->display(function ($markrtId) {
  26. $market = marketModel::select('id','name')->find($markrtId);
  27. if (!$market) {
  28. return '<span style="color: red">数据错误</span>';
  29. }
  30. return $market->name;
  31. });
  32. $grid->store_name;
  33. $grid->new_user_total;
  34. $grid->filter(function (Grid\Filter $filter) {
  35. $marketList = [];
  36. $list = marketModel::select('id','name')->get()->toArray();
  37. foreach($list as $value){
  38. $marketList[$value['id']] = $value['name'];
  39. }
  40. $filter->in('market_id')->multipleSelect($marketList);
  41. $filter->like('store.name','店铺名称');
  42. $filter->whereBetween('time', function ($q) {
  43. $start = $this->input['start'] ?? null;
  44. $end = $this->input['end'] ?? null;
  45. if ($start !== null) {
  46. $q->whereRaw('time >= ?',$start);
  47. }
  48. if ($end !== null) {
  49. $q->whereRaw('time <= ?',$end);
  50. }
  51. })->datetime();
  52. });
  53. });
  54. }
  55. /**
  56. * Make a show builder.
  57. *
  58. * @param mixed $id
  59. *
  60. * @return Show
  61. */
  62. protected function detail($id)
  63. {
  64. return Show::make($id, new StoreUserReport(), function (Show $show) {
  65. $show->id;
  66. $show->market_id;
  67. $show->name;
  68. $show->mm_user_id;
  69. });
  70. }
  71. /**
  72. * Make a form builder.
  73. *
  74. * @return Form
  75. */
  76. protected function form()
  77. {
  78. return Form::make(new StoreUserReport(), function (Form $form) {
  79. $form->display('id');
  80. $form->text('market_id');
  81. $form->text('name');
  82. $form->text('mm_user_id');
  83. });
  84. }
  85. }