Main.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // |
  4. // +----------------------------------------------------------------------
  5. // |
  6. // +----------------------------------------------------------------------
  7. // |
  8. // +----------------------------------------------------------------------
  9. // |
  10. // +----------------------------------------------------------------------
  11. // +----------------------------------------------------------------------
  12. // | 后台欢迎页
  13. // +----------------------------------------------------------------------
  14. namespace app\admin\controller;
  15. use app\common\controller\Backend;
  16. use app\common\model\Attachment;
  17. use think\facade\Db;
  18. use util\Date;
  19. class Main extends Backend
  20. {
  21. protected $noNeedRight = ['index'];
  22. //欢迎首页
  23. public function index()
  24. {
  25. if ($this->auth->password == encrypt_password('admin', $this->auth->encrypt)) {
  26. $this->assign('default_pass', 1);
  27. }
  28. $column = [];
  29. $starttime = Date::unixtime('day', -6);
  30. $endtime = Date::unixtime('day', 0, 'end');
  31. $joinlist = Db::name("user")
  32. ->whereBetween('reg_time', [$starttime, $endtime])
  33. ->field('COUNT(*) AS nums, DATE(FROM_UNIXTIME(reg_time)) AS join_date')
  34. ->group('join_date')
  35. ->select();
  36. for ($time = $starttime; $time <= $endtime;) {
  37. $column[] = date("Y-m-d", $time);
  38. $time += 86400;
  39. }
  40. $userlist = array_fill_keys($column, 0);
  41. foreach ($joinlist as $k => $v) {
  42. $userlist[$v['join_date']] = $v['nums'];
  43. }
  44. $addonList = get_addon_list();
  45. $totalworkingaddon = 0;
  46. $totaladdon = count($addonList);
  47. foreach ($addonList as $index => $item) {
  48. if ($item['status']) {
  49. $totalworkingaddon += 1;
  50. }
  51. }
  52. $dbTableList = Db::query("SHOW TABLE STATUS");
  53. $this->assign([
  54. 'sys_info' => $this->get_sys_info(),
  55. 'totaladdon' => $totaladdon,
  56. 'totalworkingaddon' => $totalworkingaddon,
  57. 'dbtablenums' => count($dbTableList),
  58. 'dbsize' => array_sum(array_map(function ($item) {
  59. return $item['Data_length'] + $item['Index_length'];
  60. }, $dbTableList)),
  61. 'attachmentnums' => Attachment::count(),
  62. 'attachmentsize' => Attachment::sum('size'),
  63. 'picturenums' => Attachment::where('mime', 'like', 'image/%')->count(),
  64. 'picturesize' => Attachment::where('mime', 'like', 'image/%')->sum('size'),
  65. ]);
  66. $this->assignconfig('column', array_keys($userlist));
  67. $this->assignconfig('userdata', array_values($userlist));
  68. $this->assignconfig('username', $this->auth->username);
  69. return $this->fetch();
  70. }
  71. //phpinfo信息 按需显示在前台
  72. protected function get_sys_info()
  73. {
  74. //$sys_info['os'] = PHP_OS; //操作系统
  75. $sys_info['ip'] = GetHostByName($_SERVER['SERVER_NAME']); //服务器IP
  76. $sys_info['web_server'] = $_SERVER['SERVER_SOFTWARE']; //服务器环境
  77. $sys_info['phpv'] = phpversion(); //php版本
  78. $sys_info['fileupload'] = @ini_get('file_uploads') ? ini_get('upload_max_filesize') : 'unknown'; //文件上传限制
  79. $sys_info['memory_limit'] = ini_get('memory_limit'); //最大占用内存
  80. //$sys_info['set_time_limit'] = function_exists("set_time_limit") ? true : false; //最大执行时间
  81. //$sys_info['zlib'] = function_exists('gzclose') ? 'YES' : 'NO'; //Zlib支持
  82. //$sys_info['safe_mode'] = (boolean) ini_get('safe_mode') ? 'YES' : 'NO'; //安全模式
  83. //$sys_info['timezone'] = function_exists("date_default_timezone_get") ? date_default_timezone_get() : "no_timezone";
  84. //$sys_info['curl'] = function_exists('curl_init') ? 'YES' : 'NO'; //Curl支持
  85. //$sys_info['max_ex_time'] = @ini_get("max_execution_time") . 's';
  86. $sys_info['domain'] = $_SERVER['HTTP_HOST']; //域名
  87. $sys_info['remaining_space'] = function_exists('disk_free_space') ? round((disk_free_space(".") / (1024 * 1024)), 2) . 'M' : '未知'; //剩余空间
  88. //$sys_info['user_ip'] = $_SERVER['REMOTE_ADDR']; //用户IP地址
  89. //$sys_info['web_directory'] = $_SERVER["DOCUMENT_ROOT"]; //网站目录
  90. $mysqlinfo = Db::query("SELECT VERSION() as version");
  91. $sys_info['mysql_version'] = $mysqlinfo[0]['version'];
  92. if (function_exists("gd_info")) {
  93. //GD库版本
  94. $gd = gd_info();
  95. $sys_info['gdinfo'] = $gd['GD Version'];
  96. } else {
  97. $sys_info['gdinfo'] = "未知";
  98. }
  99. return $sys_info;
  100. }
  101. }