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

133 lines
5.2 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. <?php
  2. namespace App\Admin\Controllers\v3;
  3. use App\Admin\Actions\Tools\DataReportDate;
  4. use App\Admin\Actions\Tools\DataReportOption;
  5. use App\Admin\Extensions\Chart\Bar\OrderBar;
  6. use App\Models\LanzuStore;
  7. use Dcat\Admin\Form;
  8. use Dcat\Admin\Grid;
  9. use Dcat\Admin\Layout\Column;
  10. use Dcat\Admin\Layout\Content;
  11. use Dcat\Admin\Layout\Row;
  12. use Dcat\Admin\Widgets\Card;
  13. use http\Message\Body;
  14. use Illuminate\Support\Facades\DB;
  15. class DataReport
  16. {
  17. /**
  18. * 数据报表
  19. * @param Content $content
  20. * @return Content
  21. */
  22. public function index(Content $content)
  23. {
  24. return $content
  25. ->header('数据统计')
  26. ->body(function (Row $row){
  27. $row->column(4,function (Column $column){
  28. $column->row(new \App\Admin\Actions\Tools\DataReportTime('data_report'));
  29. });
  30. $row->column(2,function (Column $column){
  31. $column->row(new DataReportOption('data_report'));
  32. });
  33. $row->column(6,function (Column $column){
  34. $column->row(new DataReportDate('data_report'));
  35. });
  36. })->body('<hr />')
  37. ->body(function (Row $row){
  38. $row->column(2,function (Column $column){
  39. $title = "营业总额(元)";
  40. $value = 0;
  41. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  42. $card->style('background-color:#4e9876');
  43. $column->row($card);
  44. });
  45. $row->column(2,function (Column $column){
  46. $title = "总入账(元)";
  47. $value = 0;
  48. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  49. $card->style('background-color:#4e9876');
  50. $column->row($card);
  51. });
  52. $row->column(2,function (Column $column){
  53. $title = "商户实际收";
  54. $value = 0;
  55. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  56. $card->style('background-color:#4e9876');
  57. $column->row($card);
  58. });
  59. $row->column(2,function (Column $column){
  60. $title = "有效订单量";
  61. $value = 0;
  62. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  63. $card->style('background-color:#4e9876');
  64. $column->row($card);
  65. });
  66. $row->column(2,function (Column $column){
  67. $title = "无效订单量";
  68. $value = 0;
  69. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  70. $card->style('background-color:#4e9876');
  71. $column->row($card);
  72. });
  73. $row->column(2,function (Column $column){
  74. $title = "佣金收入";
  75. $value = 0;
  76. $card = Card::make("<span style='color: #ffffff'>{$title}</span>","<span style='color: #ffffff'>{$value}</span>");
  77. $card->style('background-color:#4e9876');
  78. $column->row($card);
  79. });
  80. })
  81. ->body(function (Row $row){
  82. $row->column(8,function (Column $column){
  83. $card = new Card();
  84. $card->title('订单图表');
  85. $card->tool(new \App\Admin\Actions\Tools\DataReportOrder('data_report'));
  86. $card->content(OrderBar::make($this->orderData(['type'=>1])));
  87. $column->row($card);
  88. });
  89. $row->column(4,function (Column $column){
  90. $card1 = Card::make('1111');
  91. $card1->style("height:162px");
  92. $column->row($card1);
  93. $card2 = Card::make('222');
  94. $card2->style("height:162px");
  95. $column->row($card2);
  96. $card3 = Card::make('222');
  97. $card3->style("height:162px");
  98. $column->row($card3);
  99. });
  100. });
  101. }
  102. public function orderData($params=[])
  103. {
  104. $where['type'] = $params['type'];
  105. $data = DB::table('lanzu_order_main')
  106. ->select('money')
  107. ->selectRaw("FROM_UNIXTIME(created_at,'%Y-%m-%d') as add_time")
  108. ->where($where)
  109. ->get();
  110. $time = $num = $amount = [];
  111. if ($data){
  112. $data = $data->groupBy('add_time')->toArray();
  113. foreach ($data as $key=>$val){
  114. $time[] = $key;
  115. $num[] = intval(count($val));
  116. $amount[] = sprintf("%.2f",array_sum(array_column($val,'money')));
  117. }
  118. return ['time'=>$time,'num'=>$num,'amount'=>$amount];
  119. }
  120. return ['time'=>'','num'=>'','amount'=>''];
  121. }
  122. }