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

84 lines
2.4 KiB

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Repositories\StoreUserReport;
  4. use App\Models\ImsCjdcOrderMain;
  5. use App\Models\storeUserReport as ModelsStoreUserReport;
  6. use Dcat\Admin\Form;
  7. use Dcat\Admin\Grid;
  8. use Dcat\Admin\Show;
  9. use Dcat\Admin\Controllers\AdminController;
  10. use App\Models\ImsCjdcOrder;
  11. use Illuminate\Support\Facades\DB;
  12. class StoreUserReportController extends AdminController
  13. {
  14. /**
  15. * Make a grid builder.
  16. *
  17. * @return Grid
  18. */
  19. protected function grid()
  20. {
  21. $startTime = '2020-06-01';$endTime = '2020-07-01';
  22. $orderModel = new ImsCjdcOrder();
  23. $newModel = $orderModel->with([
  24. 'store:id,market_id,name,mm_user_id',
  25. 'user'=> function($query) use($startTime,$endTime){
  26. $query->selectRaw(DB::raw('count(distinct user_id) as new_user_total'))->whereRaw("join_time BETWEEN UNIX_TIMESTAMP('?') AND UNIX_TIMESTAMP('?')",[$startTime,$endTime]);
  27. }])
  28. ->whereRaw("UNIX_TIMESTAMP(pay_time) BETWEEN UNIX_TIMESTAMP('?') AND UNIX_TIMESTAMP('?')",[$startTime,$endTime])
  29. ->select('store_id')
  30. ->groupBy('store_id')
  31. ->orderBy('market_id','desc')
  32. ->orderbY('new_user_total','desc');
  33. // return Grid::make(new StoreUserReport(), function (Grid $grid) {
  34. return Grid::make($newModel, function (Grid $grid) {
  35. $grid->disableCreateButton();
  36. $grid->store_id;
  37. $grid->market_id;
  38. $grid->store_name;
  39. $grid->mm_user_id;
  40. $grid->new_user_total;
  41. $grid->filter(function (Grid\Filter $filter) {
  42. $filter->equal('store_id');
  43. });
  44. });
  45. }
  46. /**
  47. * Make a show builder.
  48. *
  49. * @param mixed $id
  50. *
  51. * @return Show
  52. */
  53. protected function detail($id)
  54. {
  55. return Show::make($id, new StoreUserReport(), function (Show $show) {
  56. $show->id;
  57. $show->market_id;
  58. $show->name;
  59. $show->mm_user_id;
  60. });
  61. }
  62. /**
  63. * Make a form builder.
  64. *
  65. * @return Form
  66. */
  67. protected function form()
  68. {
  69. return Form::make(new StoreUserReport(), function (Form $form) {
  70. $form->display('id');
  71. $form->text('market_id');
  72. $form->text('name');
  73. $form->text('mm_user_id');
  74. });
  75. }
  76. }