ClearLogHandler.php 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Module\AppGame\Handler\User;
  3. use App\Module\AppGame\Handler\BaseHandler;
  4. use App\Module\Game\Services\UserLogService;
  5. use Google\Protobuf\Internal\Message;
  6. use Illuminate\Support\Facades\Log;
  7. use UCore\Helper\Logger;
  8. use Uraus\Kku\Request\RequestUserClearLog;
  9. use Uraus\Kku\Response\ResponseUserClearLog;
  10. /**
  11. * 处理清空日志请求
  12. */
  13. class ClearLogHandler extends BaseHandler
  14. {
  15. /**
  16. * 是否需要登录
  17. * @var bool
  18. */
  19. protected bool $need_login = true;
  20. /**
  21. * 处理清空日志请求
  22. *
  23. * @param RequestUserClearLog $data 清空日志请求数据
  24. * @return ResponseUserClearLog 清空日志响应
  25. */
  26. public function handle(Message $data): Message
  27. {
  28. try {
  29. // 创建响应对象
  30. $response = new ResponseUserClearLog();
  31. // 清空用户日志
  32. $success = UserLogService::clearUserLogs($this->user_id);
  33. if ($success) {
  34. // 记录成功日志
  35. Log::info('用户清空日志成功', [
  36. 'user_id' => $this->user_id
  37. ]);
  38. } else {
  39. // 记录失败日志
  40. Log::warning('用户清空日志失败', [
  41. 'user_id' => $this->user_id
  42. ]);
  43. }
  44. return $response;
  45. } catch (\Exception $e) {
  46. Logger::error('用户清空日志异常', [
  47. 'user_id' => $this->user_id,
  48. 'error' => $e->getMessage(),
  49. 'trace' => $e->getTraceAsString()
  50. ]);
  51. // 重新抛出异常,交由框架处理
  52. throw $e;
  53. }
  54. }
  55. }