HomeController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use App\Admin\Util\Dashboard;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\Dynamic;
  6. use App\Models\Orders;
  7. use App\Models\Users;
  8. use Encore\Admin\Facades\Admin;
  9. use Encore\Admin\Layout\Content;
  10. use Encore\Admin\Widgets\Box;
  11. use Encore\Admin\Widgets\Echarts\Echarts;
  12. use Encore\Admin\Widgets\InfoBox;
  13. class HomeController extends Controller
  14. {
  15. public function index(Content $content)
  16. {
  17. if(Admin::user()->isRole('admin')||Admin::user()->isRole('administrator')){
  18. $data=[];
  19. for ($i=0;$i<7;$i++){
  20. $data[$i]['count_date']=date('m-d',strtotime("-{$i} day"));
  21. $data[$i]['user_num']=Users::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->count()?:0;
  22. $data[$i]['order_num']=Orders::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->where('status',1)->count()?:0;
  23. $data[$i]['order_money']=Orders::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->where('status',1)->sum('money')?:0;
  24. $data[$i]['dynamic_num']=Dynamic::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->count()?:0;
  25. $data[$i]['vip_num']=Users::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->where('vip',1)->count()?:0;
  26. $data[$i]['red_num']=Users::whereDate('created_at',date('Y-m-d',strtotime("-{$i} day")))->where('type',1)->count()?:0;
  27. }
  28. $content->title('仪表板');
  29. $content->description('仪表板');
  30. $content->row(function ($row)use($data) {
  31. $row->column(3, new InfoBox('今日新增用户', 'users', 'aqua', 'users', $data[0]['user_num']));
  32. $row->column(3, new InfoBox('昨日新增用户', 'users', 'green', 'users', $data[0]['user_num']));
  33. $row->column(3, new InfoBox('今日订单数', 'shopping-cart', 'yellow', 'orders', $data[0]['order_num']));
  34. $row->column(3, new InfoBox('昨日订单数', 'shopping-cart', 'red', 'orders', $data[0]['order_num']));
  35. });
  36. $head = [
  37. 'count_date' => '日期',
  38. 'user_num' => '新曾用户',
  39. 'order_num' => '新曾订单',
  40. 'order_money' => '订单金额',
  41. 'dynamic_num' => '动态',
  42. 'vip_num' => 'VIP数',
  43. 'red_num' => '红娘月老数',
  44. ];
  45. $echarts = (new Echarts('', ''))
  46. ->setData($data)
  47. ->bindLegend($head);
  48. $content->row(new Box('统计', $echarts));
  49. }else{
  50. $content->title('仪表板');
  51. $content->description('仪表板');
  52. $content->row(Dashboard::title());
  53. }
  54. return $content;
  55. }
  56. }