Dashboard.php 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. <?php
  2. namespace app\admin\controller;
  3. use app\common\controller\Backend;
  4. use app\common\model\UserRechargeLog;
  5. use think\Config;
  6. use think\Db;
  7. /**
  8. * 控制台
  9. *
  10. * @icon fa fa-dashboard
  11. * @remark 用于展示当前系统中的统计数据、统计报表及重要实时数据
  12. */
  13. class Dashboard extends Backend
  14. {
  15. //首页统计页
  16. public function index(){
  17. //今日
  18. $todaystatime = strtotime(date('Y-m-d'));
  19. $todayendtime = $todaystatime + 86399;
  20. //昨日
  21. $yestodaystatime = $todaystatime - 86400;
  22. $yestodayendtime = $todaystatime - 1;
  23. //今日抽奖总产出(钻石总数)、
  24. //开奖获得礼物的总钻石价值
  25. $egg_do_gift_price = Db::name('egg_do')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->sum('price');
  26. //房间数(在线/所有房间数)、
  27. $party_number_online = Db::name('party')->where('is_online',1)->count();
  28. $party_number = Db::name('party')->count();
  29. //app用户(今日/总注册人数/在线人数)、
  30. $register_num_today = Db::name('user')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->count();
  31. $register_num = Db::name('user')->count();
  32. $user_online = Db::name('user')->where('is_online',1)->count();
  33. //充值(总/今日充值金额、今日待支付)、昨日支付
  34. $recharge = Db::name('rechar_order')->where('status',1)->sum('money');
  35. $recharge_today = Db::name('rechar_order')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->where('status',1)->sum('money');
  36. $recharge_today_wait = Db::name('rechar_order')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->where('status',0)->sum('money');
  37. $recharge_yestoday = Db::name('rechar_order')->where('createtime','BETWEEN',[$yestodaystatime,$yestodayendtime])->where('status',1)->sum('money');
  38. //平台总资产余额、
  39. $allmoney = Db::name('user')->sum('money');
  40. //钻石(平台总数量/今日充值数量))
  41. $alljewel = Db::name('user')->sum('jewel');
  42. $recharge_money_today = Db::name('rechar_order')->where('createtime','BETWEEN',[$todaystatime,$todayendtime])->where('status',1)->sum('jewel');
  43. //
  44. $this->assign('egg_do_gift_price',$egg_do_gift_price);
  45. $this->assign('party_number_online',$party_number_online);
  46. $this->assign('party_number',$party_number);
  47. $this->assign('register_num_today',$register_num_today);
  48. $this->assign('register_num',$register_num);
  49. $this->assign('user_online',$user_online);
  50. $this->assign('recharge',$recharge);
  51. $this->assign('recharge_today',$recharge_today);
  52. $this->assign('recharge_today_wait',$recharge_today_wait);
  53. $this->assign('recharge_yestoday',$recharge_yestoday);
  54. $this->assign('allmoney',$allmoney);
  55. $this->assign('alljewel',$alljewel);
  56. $this->assign('recharge_money_today',$recharge_money_today);
  57. return $this->view->fetch();
  58. }
  59. /**
  60. * 查看
  61. */
  62. public function old_index()
  63. {
  64. $todayRechargeMoney = UserRechargeLog::whereTime('createtime', 'today')->sum('money');
  65. $yesterdayRechargeMoney = UserRechargeLog::whereTime('createtime', 'yesterday')->sum('money');
  66. $monthRechargeMoney = UserRechargeLog::whereTime('createtime', 'month')->sum('money');
  67. $lastMonthRechargeMoney = UserRechargeLog::whereTime('createtime', 'last month')->sum('money');
  68. $this->view->assign([
  69. 'todayRechargeMoney' => $todayRechargeMoney,
  70. 'yesterdayRechargeMoney' => $yesterdayRechargeMoney,
  71. 'monthRechargeMoney' => $monthRechargeMoney,
  72. 'lastMonthRechargeMoney' => $lastMonthRechargeMoney,
  73. ]);
  74. return $this->view->fetch();
  75. }
  76. /**
  77. * 查看
  78. */
  79. public function oindex()
  80. {
  81. $seventtime = \fast\Date::unixtime('day', -7);
  82. $paylist = $createlist = [];
  83. for ($i = 0; $i < 7; $i++) {
  84. $day = date("Y-m-d", $seventtime + ($i * 86400));
  85. $createlist[$day] = mt_rand(20, 200);
  86. $paylist[$day] = mt_rand(1, mt_rand(1, $createlist[$day]));
  87. }
  88. $hooks = config('addons.hooks');
  89. $uploadmode = isset($hooks['upload_config_init']) && $hooks['upload_config_init'] ? implode(',', $hooks['upload_config_init']) : 'local';
  90. $addonComposerCfg = ROOT_PATH . '/vendor/karsonzhang/fastadmin-addons/composer.json';
  91. Config::parse($addonComposerCfg, "json", "composer");
  92. $config = Config::get("composer");
  93. $addonVersion = isset($config['version']) ? $config['version'] : __('Unknown');
  94. // 获取订单信息
  95. $orderInfo = \app\common\model\DispatchOrder::where(["status" => ["gt", 0]])->select();
  96. $orderCount = 0;
  97. $orderamount = 0;
  98. $orderTodaylogin = 0;
  99. if ($orderInfo) foreach ($orderInfo as $k => $v) {
  100. $orderCount++;
  101. $orderamount = $orderamount + $v["price"] * $v["num"];
  102. if ($v["createtime"] > strtotime(date("Y-m-d 00:00:00"))) {
  103. $orderTodaylogin++;
  104. }
  105. }
  106. // 获取用户信息
  107. $userInfo = \app\common\model\User::where(["status" => "normal"])->select();
  108. $userCount = 0;
  109. $userTodaysignup = 0;
  110. $userTodaylogin = 0;
  111. if ($userInfo) foreach ($userInfo as $k => $v) {
  112. $userCount++;
  113. if ($v["createtime"] > strtotime(date("Y-m-d 00:00:00"))) {
  114. $userTodaylogin++;
  115. }
  116. if ($v["logintime"] > strtotime(date("Y-m-d 00:00:00"))) {
  117. $userTodaylogin++;
  118. }
  119. }
  120. $this->view->assign([
  121. 'totaluser' => $userCount,
  122. 'totalviews' => 219390,
  123. 'totalorder' => $orderCount,
  124. 'totalorderamount' => $orderamount,
  125. 'todayuserlogin' => $userTodaylogin,
  126. 'todayusersignup' => $userTodaysignup,
  127. 'todayorder' => $orderTodaylogin,
  128. 'unsettleorder' => 132,
  129. 'sevendnu' => '80%',
  130. 'sevendau' => '32%',
  131. 'paylist' => $paylist,
  132. 'createlist' => $createlist,
  133. 'addonversion' => $addonVersion,
  134. 'uploadmode' => $uploadmode
  135. ]);
  136. return $this->view->fetch();
  137. }
  138. }