ApplyHandler.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Module\AppGame\Handler\Friend;
  3. use App\Module\AppGame\Handler\BaseHandler;
  4. use App\Module\Friend\Enums\ERROR_CODE;
  5. use App\Module\Friend\Services\FriendService;
  6. use Google\Protobuf\Internal\Message;
  7. use Uraus\Kku\Request\RequestFriendApply;
  8. use Uraus\Kku\Response\ResponseFriendApply;
  9. /**
  10. * 处理添加好友请求
  11. */
  12. class ApplyHandler extends BaseHandler
  13. {
  14. /**
  15. * 是否需要登录
  16. * @var bool
  17. */
  18. protected bool $need_login = true;
  19. /**
  20. * 处理添加好友请求
  21. *
  22. * @param RequestFriendApply $data 添加好友请求数据
  23. * @return ResponseFriendApply 添加好友响应
  24. */
  25. public function handle(Message $data): Message
  26. {
  27. // 创建响应对象
  28. $response = new ResponseFriendApply();
  29. // 获取请求参数
  30. $targetId = $data->getUserId();
  31. $message = ''; // 消息字段在当前proto定义中不存在
  32. // 参数验证
  33. if (empty($targetId)) {
  34. // 由于ResponseFriendApply没有code和message字段,我们只能返回空响应
  35. return $response;
  36. }
  37. // 调用服务发送好友申请
  38. $result = FriendService::sendFriendRequest($this->user_id, $targetId, $message);
  39. // 如果成功,设置申请ID
  40. if ($result['code'] === ERROR_CODE::SUCCESS && isset($result['data']['id'])) {
  41. $response->setApplyId($result['data']['id']);
  42. }
  43. return $response;
  44. }
  45. }