StudioApi.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?php
  2. namespace App\Http\Api;
  3. use App\Models\UserInfo;
  4. use App\Models\GroupInfo;
  5. use App\Models\GroupMember;
  6. use Illuminate\Support\Facades\Storage;
  7. use Illuminate\Support\Facades\App;
  8. class StudioApi
  9. {
  10. public static function getIdByName($name)
  11. {
  12. /**
  13. * 获取 uuid
  14. */
  15. //TODO 改为studio table
  16. if (empty($name)) {
  17. return false;
  18. }
  19. $userInfo = UserInfo::where('username', $name)->first();
  20. if ($userInfo) {
  21. //group
  22. return $userInfo->userid;
  23. } else {
  24. $group = GroupInfo::where('uid', $name)->first();
  25. if ($group) {
  26. return $group->uid;
  27. } else {
  28. return false;
  29. }
  30. }
  31. }
  32. public static function getById($id)
  33. {
  34. //TODO 改为studio table
  35. if (empty($id)) {
  36. return false;
  37. }
  38. $userInfo = UserInfo::where('userid', $id)->first();
  39. if ($userInfo) {
  40. $data = [
  41. 'id' => $id,
  42. 'nickName' => $userInfo->nickname,
  43. 'realName' => $userInfo->username,
  44. 'studioName' => $userInfo->username,
  45. ];
  46. if (!empty($userInfo->role)) {
  47. $data['roles'] = json_decode($userInfo->role);
  48. }
  49. if ($userInfo->avatar) {
  50. $img = str_replace('.jpg', '_s.jpg', $userInfo->avatar);
  51. if (App::environment('local')) {
  52. $data['avatar'] = Storage::url($img);
  53. } else {
  54. $data['avatar'] = Storage::temporaryUrl($img, now()->addDays(6));
  55. }
  56. }
  57. return $data;
  58. } else {
  59. $group = GroupInfo::where('uid', $id)->first();
  60. if ($group) {
  61. $data = [
  62. 'id' => $id,
  63. 'nickName' => $group->name,
  64. 'realName' => $group->uid,
  65. 'studioName' => $group->uid,
  66. ];
  67. } else {
  68. return false;
  69. }
  70. }
  71. }
  72. public static function getByIntId($id)
  73. {
  74. //TODO 改为studio table
  75. if (empty($id)) {
  76. return false;
  77. }
  78. $userInfo = UserInfo::where('id', $id)->first();
  79. if (!$userInfo) {
  80. return false;
  81. }
  82. return [
  83. 'id' => $userInfo['userid'],
  84. 'nickName' => $userInfo['nickname'],
  85. 'realName' => $userInfo['username'],
  86. 'studioName' => $userInfo['username'],
  87. 'avatar' => '',
  88. ];
  89. }
  90. public static function userCanManage($userId, $studioId)
  91. {
  92. if ($userId === $studioId) {
  93. return true;
  94. }
  95. $group = GroupMember::where('user_id', $userId)
  96. ->where('group_id', $studioId)
  97. ->first();
  98. if ($group && $group->power <= 1) {
  99. return true;
  100. }
  101. return false;
  102. }
  103. public static function userCanList($userId, $studioId)
  104. {
  105. if ($userId === $studioId) {
  106. return true;
  107. }
  108. $group = GroupMember::where('user_id', $userId)
  109. ->where('group_id', $studioId)
  110. ->first();
  111. if ($group && $group->power <= 2) {
  112. return true;
  113. }
  114. return false;
  115. }
  116. }