UrsService.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace ThirdParty\Urs\Services;
  3. use ThirdParty\Urs\Request\UrsGetUserInfoRequest;
  4. use ThirdParty\Urs\Request\UrsGetUserTeamRequest;
  5. use ThirdParty\Urs\Request\UrsGetUserLevelCountRequest;
  6. use ThirdParty\Urs\Request\UrsLoginRequest;
  7. /**
  8. * URS服务类
  9. *
  10. * 统一管理所有URS相关的请求操作,提供简洁的API接口
  11. * 每个方法对应一个专用的Request类,遵循单一职责原则
  12. *
  13. * 注意:包含URS实际提供的业务接口
  14. */
  15. class UrsService
  16. {
  17. /**
  18. * 用户登录
  19. *
  20. * 对应URS接口:POST /api/ecology/{ecology_id}/login
  21. *
  22. * @param string $mobile 手机号码
  23. * @param string $password 登录密码
  24. * @return array
  25. * @throws \Exception
  26. */
  27. public static function login(string $mobile, string $password): array
  28. {
  29. $request = new UrsLoginRequest();
  30. return $request->request([
  31. 'mobile' => $mobile,
  32. 'password' => $password
  33. ]);
  34. }
  35. /**
  36. * 获取用户信息
  37. *
  38. * 对应URS接口:POST /api/ecology/{ecology_id}/userInfo
  39. *
  40. * @param string $userKey 用户密钥
  41. * @return array
  42. * @throws \Exception
  43. */
  44. public static function getUserInfo(string $userKey): array
  45. {
  46. $request = new UrsGetUserInfoRequest();
  47. return $request->request(['userKey' => $userKey]);
  48. }
  49. /**
  50. * 获取用户团队关系
  51. *
  52. * 对应URS接口:POST /api/ecology/{ecology_id}/userTeam
  53. *
  54. * @param int $userId 用户ID
  55. * @return array
  56. * @throws \Exception
  57. */
  58. public static function getUserTeam(int $userId): array
  59. {
  60. $request = new UrsGetUserTeamRequest();
  61. return $request->request(['userId' => $userId]);
  62. }
  63. /**
  64. * 获取用户下级统计
  65. *
  66. * 对应URS接口:POST /api/ecology/{ecology_id}/userLevelCount
  67. *
  68. * @param int $userId 用户ID
  69. * @param int $level 统计级别(1或3)
  70. * @return array
  71. * @throws \Exception
  72. */
  73. public static function getUserLevelCount(int $userId, int $level): array
  74. {
  75. if (!in_array($level, [1, 3])) {
  76. throw new \InvalidArgumentException('level参数必须是1或3');
  77. }
  78. $request = new UrsGetUserLevelCountRequest();
  79. return $request->request([
  80. 'userId' => $userId,
  81. 'level' => $level
  82. ]);
  83. }
  84. }