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

95 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. $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->mm_user_id->display(function ($markrtId) {
  34. // return '未关联市场经理';
  35. // });
  36. $grid->new_user_total;
  37. $grid->filter(function (Grid\Filter $filter) {
  38. $marketList = [];
  39. $list = marketModel::select('id','name')->get()->toArray();
  40. foreach($list as $value){
  41. $marketList[$value['id']] = $value['name'];
  42. }
  43. $filter->in('market_id')->multipleSelect($marketList);
  44. $filter->like('store.name','店铺名称');
  45. $filter->whereBetween('time', function ($q) {
  46. $start = $this->input['start'] ?? null;
  47. $end = $this->input['end'] ?? null;
  48. if ($start !== null) {
  49. $q->whereRaw('add_time >= UNIX_TIMESTAMP(?)',$start);
  50. }
  51. if ($end !== null) {
  52. $q->whereRaw('add_time <= UNIX_TIMESTAMP(?)',$end);
  53. }
  54. })->datetime();
  55. });
  56. });
  57. }
  58. /**
  59. * Make a show builder.
  60. *
  61. * @param mixed $id
  62. *
  63. * @return Show
  64. */
  65. protected function detail($id)
  66. {
  67. return Show::make($id, new StoreUserReport(), function (Show $show) {
  68. $show->id;
  69. $show->market_id;
  70. $show->name;
  71. $show->mm_user_id;
  72. });
  73. }
  74. /**
  75. * Make a form builder.
  76. *
  77. * @return Form
  78. */
  79. protected function form()
  80. {
  81. return Form::make(new StoreUserReport(), function (Form $form) {
  82. $form->display('id');
  83. $form->text('market_id');
  84. $form->text('name');
  85. $form->text('mm_user_id');
  86. });
  87. }
  88. }