AdminController.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <?php
  2. namespace App\Controllers;
  3. use App\Models\CheckInLog;
  4. use App\Models\InviteCode;
  5. use App\Models\TrafficLog;
  6. use App\Services\Analytics;
  7. use App\Services\DbConfig;
  8. use App\Utils\Tools;
  9. /**
  10. * Admin Controller
  11. */
  12. class AdminController extends UserController
  13. {
  14. public function index($request, $response, $args)
  15. {
  16. $sts = new Analytics();
  17. return $this->view()->assign('sts', $sts)->display('admin/index.tpl');
  18. }
  19. public function invite($request, $response, $args)
  20. {
  21. $codes = InviteCode::where('user_id', '=', '0')->get();
  22. return $this->view()->assign('codes', $codes)->display('admin/invite.tpl');
  23. }
  24. public function addInvite($request, $response, $args)
  25. {
  26. $n = $request->getParam('num');
  27. $prefix = $request->getParam('prefix');
  28. $uid = $request->getParam('uid');
  29. if ($n < 1) {
  30. $res['ret'] = 0;
  31. return $response->getBody()->write(json_encode($res));
  32. }
  33. for ($i = 0; $i < $n; $i++) {
  34. $char = Tools::genRandomChar(32);
  35. $code = new InviteCode();
  36. $code->code = $prefix . $char;
  37. $code->user_id = $uid;
  38. $code->save();
  39. }
  40. $res['ret'] = 1;
  41. $res['msg'] = "邀请码添加成功";
  42. return $response->getBody()->write(json_encode($res));
  43. }
  44. public function checkInLog($request, $response, $args)
  45. {
  46. $pageNum = 1;
  47. if (isset($request->getQueryParams()["page"])) {
  48. $pageNum = $request->getQueryParams()["page"];
  49. }
  50. $traffic = CheckInLog::orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum);
  51. $traffic->setPath('/admin/checkinlog');
  52. return $this->view()->assign('logs', $traffic)->display('admin/checkinlog.tpl');
  53. }
  54. public function trafficLog($request, $response, $args)
  55. {
  56. $pageNum = 1;
  57. if (isset($request->getQueryParams()["page"])) {
  58. $pageNum = $request->getQueryParams()["page"];
  59. }
  60. $logs = TrafficLog::orderBy('id', 'desc')->paginate(15, ['*'], 'page', $pageNum);
  61. $logs->setPath('/admin/trafficlog');
  62. return $this->view()->assign('logs', $logs)->display('admin/trafficlog.tpl');
  63. }
  64. public function config($request, $response, $args)
  65. {
  66. $conf = [
  67. "app-name" => DbConfig::get('app-name'),
  68. "home-code" => DbConfig::get('home-code'),
  69. "analytics-code" => DbConfig::get('analytics-code'),
  70. "user-index" => DbConfig::get('user-index'),
  71. "user-node" => DbConfig::get('user-node'),
  72. ];
  73. return $this->view()->assign('conf', $conf)->display('admin/config.tpl');
  74. }
  75. public function updateConfig($request, $response, $args)
  76. {
  77. $config = [
  78. "analytics-code" => $request->getParam('analyticsCode'),
  79. "home-code" => $request->getParam('homeCode'),
  80. "app-name" => $request->getParam('appName'),
  81. "user-index" => $request->getParam('userIndex'),
  82. "user-node" => $request->getParam('userNode'),
  83. ];
  84. foreach ($config as $key => $value) {
  85. DbConfig::set($key, $value);
  86. }
  87. $res['ret'] = 1;
  88. $res['msg'] = "更新成功";
  89. return $response->getBody()->write(json_encode($res));
  90. }
  91. }