AiAssistantApi.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. <?php
  2. namespace App\Http\Api;
  3. use App\Models\AiModel;
  4. use Illuminate\Support\Facades\Storage;
  5. use Illuminate\Support\Facades\App;
  6. class AiAssistantApi
  7. {
  8. public static function getByUuid($id)
  9. {
  10. $user = AiModel::where('uid', $id)->first();
  11. return self::userInfo($user);
  12. }
  13. public static function userInfo($user)
  14. {
  15. if (!$user) {
  16. return [
  17. 'id' => 0,
  18. 'nickName' => 'unknown',
  19. 'userName' => 'unknown',
  20. 'realName' => 'unknown',
  21. 'avatar' => '',
  22. ];
  23. }
  24. $data = [
  25. 'id' => $user->uid,
  26. 'nickName' => $user->name,
  27. 'userName' => $user->real_name,
  28. 'realName' => $user->real_name,
  29. 'roles' => ['ai'],
  30. 'sn' => 0,
  31. ];
  32. if ($user->avatar) {
  33. $img = str_replace('.jpg', '_s.jpg', $user->avatar);
  34. if (App::environment('local')) {
  35. $data['avatar'] = Storage::url($img);
  36. } else {
  37. $data['avatar'] = Storage::temporaryUrl($img, now()->addDays(6));
  38. }
  39. } else {
  40. $logo = null;
  41. foreach (config('mint.ai.logo') as $key => $value) {
  42. if (strpos($user->model, $key) !== false) {
  43. $logo = $value;
  44. break;
  45. } else if (strpos($user->url, $key) !== false) {
  46. $logo = $value;
  47. break;
  48. }
  49. }
  50. $base = config('app.url') . '/assets/images/avatar/';
  51. if ($logo === null) {
  52. $data['avatar'] = $base . 'ai-assistant.png';
  53. } else {
  54. $data['avatar'] = $base . $logo;
  55. }
  56. }
  57. return $data;
  58. }
  59. }