ClearLogHandler.php 1.6 KB

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