UserTrait.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: wangzhiqiang
  5. * Date: 2019/5/5
  6. * Time: 17:11
  7. */
  8. namespace App\Traits;
  9. use Illuminate\Support\Facades\Log;
  10. use Illuminate\Support\Facades\Redis;
  11. use Tymon\JWTAuth\Facades\JWTAuth;
  12. trait UserTrait
  13. {
  14. //获取用户
  15. public function getUserInfo()
  16. {
  17. try {
  18. $sign = generateSign([], config('customer.app_secret'));
  19. $url = config("customer.app_service_url") . '/user/userInfo';
  20. $array = [
  21. 'json' => ['sign' => $sign], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
  22. ];
  23. return http($url, $array);
  24. } catch (\Exception $e) {
  25. return [];
  26. }
  27. }
  28. //获取用户信息
  29. public function userInfo($uid)
  30. {
  31. $user = Redis::HGETALL('userInfo:' . $uid);
  32. if (!$user) {
  33. try {
  34. $sign = generateSign(['uid' => $uid], config('customer.app_secret'));
  35. $url = config("customer.app_service_url") . '/user/getUserInfo';
  36. $array = [
  37. 'json' => ['sign' => $sign, 'uid' => $uid], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
  38. ];
  39. $user = http($url, $array, 'get');
  40. } catch (\Exception $e) {
  41. $user = [];
  42. }
  43. }
  44. if (!$user) {
  45. $user = [
  46. 'uid' => $uid,
  47. 'username' => '老板',
  48. 'avatar' => 'http://oss.caihongxingqiu.net/201907/1564471458_5d3ff0a231721.png?280_280',
  49. 'gender' => 2,
  50. 'invite_code' => ''
  51. ];
  52. }
  53. return $user;
  54. }
  55. /**
  56. * 格式化user的字段类型
  57. * @param $user
  58. * @return array
  59. */
  60. public function formatUser($user)
  61. {
  62. $u = [
  63. 'uid' => intval($user['uid']),
  64. 'username' => $user['username'],
  65. 'avatar' => $user['avatar'],
  66. 'gender' => intval($user['gender']),
  67. 'invite_code' => $user['invite_code']
  68. ];
  69. return $u;
  70. }
  71. //获取关注状态
  72. public function getFollowStatus($uid, $followUid)
  73. {
  74. $status = 0;
  75. if (Redis::ZSCORE('follow:' . $uid, $followUid)) {
  76. $status = 1;
  77. if (Redis::ZSCORE('follow:' . $followUid, $uid)) {
  78. $status = 2;
  79. }
  80. }
  81. return $status;
  82. }
  83. //检查关注状态 多个uid
  84. public function getFollowMembersStatus($uids)
  85. {
  86. try {
  87. $sign = generateSign(['uids' => $uids], config('customer.app_secret'));
  88. $url = config("customer.app_service_url") . '/user/v2/member/getMemberIds';
  89. $array = [
  90. 'json' => ['sign' => $sign, 'uids' => $uids], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
  91. ];
  92. return http($url, $array, 'get');
  93. } catch (\Exception $e) {
  94. Log::debug($e->getMessage());
  95. return [];
  96. }
  97. }
  98. //检查关注状态 多个uid
  99. public function getFollowMemberFans($follow_id)
  100. {
  101. try {
  102. $sign = generateSign(['follow_id' => $follow_id], config('customer.app_secret'));
  103. $url = config("customer.app_service_url") . '/user/v2/member/getFollowMemberFans';
  104. //$url = 'http://localhost:8080/v2/member/getFollowMemberFans';
  105. $array = [
  106. 'json' => ['sign' => $sign, 'follow_id' => $follow_id], 'query' => [], 'http_errors' => false, 'headers' => ['Authorization' => "Bearer " . JWTAuth::getToken()]
  107. ];
  108. return http($url, $array, 'get');
  109. } catch (\Exception $e) {
  110. Log::debug($e->getMessage());
  111. return [];
  112. }
  113. }
  114. }