SubscribeLogController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controllers\Admin;
  4. use App\Controllers\BaseController;
  5. use App\Models\UserSubscribeLog;
  6. use App\Utils\QQWry;
  7. use Exception;
  8. use Psr\Http\Message\ResponseInterface;
  9. use Slim\Http\Response;
  10. use Slim\Http\ServerRequest;
  11. final class SubscribeLogController extends BaseController
  12. {
  13. public static array $details =
  14. [
  15. 'field' => [
  16. 'id' => '事件ID',
  17. 'user_name' => '用户名',
  18. 'user_id' => '用户ID',
  19. 'email' => '用户邮箱',
  20. 'subscribe_type' => '获取的订阅类型',
  21. 'request_ip' => '请求IP',
  22. 'location' => 'IP归属地',
  23. 'request_time' => '请求时间',
  24. 'request_user_agent' => '客户端标识符',
  25. ],
  26. ];
  27. /**
  28. * 后台订阅记录页面
  29. *
  30. * @throws Exception
  31. */
  32. public function index(ServerRequest $request, Response $response, array $args): ResponseInterface
  33. {
  34. return $response->write(
  35. $this->view()
  36. ->assign('details', self::$details)
  37. ->fetch('admin/subscribe.tpl')
  38. );
  39. }
  40. /**
  41. * 后台订阅记录页面 AJAX
  42. */
  43. public function ajaxSubscribeLog(ServerRequest $request, Response $response, array $args): ResponseInterface
  44. {
  45. $length = $request->getParam('length');
  46. $page = $request->getParam('start') / $length + 1;
  47. $draw = $request->getParam('draw');
  48. $subscribes = UserSubscribeLog::orderBy('id', 'desc')->paginate($length, '*', '', $page);
  49. $total = UserSubscribeLog::count();
  50. $QQWry = new QQWry();
  51. foreach ($subscribes as $subscribe) {
  52. $subscribe->location = $subscribe->location($QQWry);
  53. }
  54. return $response->withJson([
  55. 'draw' => $draw,
  56. 'recordsTotal' => $total,
  57. 'recordsFiltered' => $total,
  58. 'subscribes' => $subscribes,
  59. ]);
  60. }
  61. }