SystemLoginLogLogic.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | saiadmin [ saiadmin快速开发框架 ]
  4. // +----------------------------------------------------------------------
  5. // | Author: sai <1430792918@qq.com>
  6. // +----------------------------------------------------------------------
  7. namespace plugin\saiadmin\app\logic\system;
  8. use plugin\saiadmin\app\model\system\SystemLoginLog;
  9. use plugin\saiadmin\basic\BaseLogic;
  10. use plugin\saiadmin\utils\Helper;
  11. use think\facade\Db;
  12. /**
  13. * 登录日志逻辑层
  14. */
  15. class SystemLoginLogLogic extends BaseLogic
  16. {
  17. /**
  18. * 构造函数
  19. */
  20. public function __construct()
  21. {
  22. $this->model = new SystemLoginLog();
  23. }
  24. /**
  25. * 登录统计图表
  26. * @return array
  27. */
  28. public function loginChart(): array
  29. {
  30. $sql = "
  31. SELECT
  32. d.date AS login_date,
  33. COUNT(l.login_time) AS login_count
  34. FROM
  35. (SELECT CURDATE() - INTERVAL (a.N) DAY AS date
  36. FROM (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3
  37. UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6
  38. UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
  39. ) d
  40. LEFT JOIN sa_system_login_log l
  41. ON DATE(l.login_time) = d.date
  42. GROUP BY d.date
  43. ORDER BY d.date ASC;
  44. ";
  45. $data = Db::query($sql);
  46. return [
  47. 'login_count' => array_column($data, 'login_count'),
  48. 'login_date' => array_column($data, 'login_date'),
  49. ];
  50. }
  51. }