瀏覽代碼

图片处理

rkljw 4 月之前
父節點
當前提交
6e96e3625b
共有 6 個文件被更改,包括 88 次插入46 次删除
  1. 23 17
      .env
  2. 5 4
      app/JsonRpc/UserService.php
  3. 33 0
      app/Tools/PublicData.php
  4. 25 25
      app/Tools/Result.php
  5. 1 0
      vendor/composer/autoload_classmap.php
  6. 1 0
      vendor/composer/autoload_static.php

+ 23 - 17
.env

@@ -1,17 +1,23 @@
-APP_NAME=user_producer
-APP_ENV=dev
-
-DB_DRIVER=mysql
-DB_HOST=101.254.114.211
-DB_PORT=13306
-DB_DATABASE=hyperf
-DB_USERNAME=root
-DB_PASSWORD=xKmapDpKCxMMSkbe
-DB_CHARSET=utf8mb4
-DB_COLLATION=utf8mb4_unicode_ci
-DB_PREFIX=
-
-REDIS_HOST=localhost
-REDIS_AUTH=(null)
-REDIS_PORT=6379
-REDIS_DB=0
+APP_NAME=user_producer
+APP_ENV=dev
+
+DB_DRIVER=mysql
+DB_HOST=101.254.114.211
+DB_PORT=13306
+DB_DATABASE=hyperf
+DB_USERNAME=root
+DB_PASSWORD=xKmapDpKCxMMSkbe
+DB_CHARSET=utf8mb4
+DB_COLLATION=utf8mb4_unicode_ci
+DB_PREFIX=
+
+REDIS_HOST=localhost
+REDIS_AUTH=(null)
+REDIS_PORT=6379
+REDIS_DB=0
+
+#图片服务器地址
+OSS_ENDPOINT =http://l1.bb1a.cn:55966
+OSS_KEY = xoycEr5qezRF91xITN6i
+OSS_SECRET = IYVyqYZxCCxQD5YnRsayzzNORBqwAPfhQlHP1Glw
+BUCKET = dev

+ 5 - 4
app/JsonRpc/UserService.php

@@ -8,6 +8,7 @@ use App\Model\User;
 use App\Model\UserInfo;
 use App\Model\UserLogin;
 use App\Model\Wechat;
+use App\Tools\PublicData;
 use App\Tools\Result;
 use Hyperf\DbConnection\Db;
 use Hyperf\RpcServer\Annotation\RpcService;
@@ -155,8 +156,7 @@ class UserService implements UserServiceInterface
      */
     public function getUserInfo(int $id): array
     {
-        $userInfo = Db::table('user')
-            ->leftJoin('user_info', 'user.id', '=', 'user_info.user_id')
+        $userInfo = User::leftJoin('user_info', 'user.id', '=', 'user_info.user_id')
             ->leftJoin('role_user', 'role_user.user_id', '=', 'user.id')
             ->select('user.*',
                 'user_info.id as user_info_id',
@@ -195,7 +195,8 @@ class UserService implements UserServiceInterface
         if (empty($userInfo)) {
             return Result::error("找不到用户", 0, []);
         }
-
+        $userInfo = $userInfo->toArray();
+        $userInfo['avatar'] = PublicData::getImageUrl($userInfo['avatar']);
         return Result::success($userInfo);
     }
 
@@ -551,7 +552,7 @@ class UserService implements UserServiceInterface
                 $updateData['nickname'] = $data['nickname'];
             }
             if (!empty($data['avatar'])) {
-                $updateData['avatar'] = $data['avatar'];
+                $updateData['avatar'] = PublicData::saveImageUrl($data['avatar']);
             }
             $result = User::where($where1)->update($updateData);
 

+ 33 - 0
app/Tools/PublicData.php

@@ -0,0 +1,33 @@
+<?php
+namespace App\Tools;
+
+use function Hyperf\Support\env;
+
+class PublicData
+{
+    /**
+     * 拼接图片地址
+     * @param string $imgUrl
+     * @return string
+     */
+    public static function getImageUrl(string $imgUrl)
+    {
+        return env("OSS_ENDPOINT")."/".env("BUCKET")."/".$imgUrl;
+    }
+
+    /**
+     * 截取图片地址
+     * @param string $imgUrl
+     * @return string
+     */
+    public static function saveImageUrl(string $imgUrl)
+    {
+        // 使用 parse_url 解析 URL
+        $parsedUrl = parse_url($imgUrl);
+        // 提取路径部分
+        $path = isset($parsedUrl['path']) ? $parsedUrl['path'] : '';
+        // 如果需要去掉前面的斜杠
+        $trimmedPath = ltrim($path, '/');
+        return $trimmedPath;
+    }
+}

+ 25 - 25
app/Tools/Result.php

@@ -1,26 +1,26 @@
-<?php
-namespace App\Tools;
-use App\Constants\ErrorCode;
-class Result
-{
-    public static function success($data = [])
-    {
-        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
-    }
-    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
-    {
-        if (empty($message)) {
-            return static::result($code, ErrorCode::getMessage($code), $data);
-        } else {
-            return static::result($code, $message, $data);
-        }
-    }
-    protected static function result($code, $message, $data)
-    {
-        return [
-            'code' => $code,
-            'message' => $message,
-            'data' => $data,
-        ];
-    }
+<?php
+namespace App\Tools;
+use App\Constants\ErrorCode;
+class Result
+{
+    public static function success($data = [])
+    {
+        return static::result(ErrorCode::SUCCESS, ErrorCode::getMessage(ErrorCode::SUCCESS), $data);
+    }
+    public static function error($message = '', $code = ErrorCode::ERROR, $data = [])
+    {
+        if (empty($message)) {
+            return static::result($code, ErrorCode::getMessage($code), $data);
+        } else {
+            return static::result($code, $message, $data);
+        }
+    }
+    protected static function result($code, $message, $data)
+    {
+        return [
+            'code' => $code,
+            'message' => $message,
+            'data' => $data,
+        ];
+    }
 }

+ 1 - 0
vendor/composer/autoload_classmap.php

@@ -31,6 +31,7 @@ return array(
     'App\\Model\\WebsiteColumn' => $baseDir . '/app/Model/WebsiteColumn.php',
     'App\\Model\\WebsiteRoleUser' => $baseDir . '/app/Model/WebsiteRoleUser.php',
     'App\\Model\\Wechat' => $baseDir . '/app/Model/Wechat.php',
+    'App\\Tools\\PublicData' => $baseDir . '/app/Tools/PublicData.php',
     'App\\Tools\\Result' => $baseDir . '/app/Tools/Result.php',
     'Attribute' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
     'CURLStringFile' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php',

+ 1 - 0
vendor/composer/autoload_static.php

@@ -720,6 +720,7 @@ class ComposerStaticInit88f2a4d4a4e81dc7d415bcdf39930654
         'App\\Model\\WebsiteColumn' => __DIR__ . '/../..' . '/app/Model/WebsiteColumn.php',
         'App\\Model\\WebsiteRoleUser' => __DIR__ . '/../..' . '/app/Model/WebsiteRoleUser.php',
         'App\\Model\\Wechat' => __DIR__ . '/../..' . '/app/Model/Wechat.php',
+        'App\\Tools\\PublicData' => __DIR__ . '/../..' . '/app/Tools/PublicData.php',
         'App\\Tools\\Result' => __DIR__ . '/../..' . '/app/Tools/Result.php',
         'Attribute' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Attribute.php',
         'CURLStringFile' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/CURLStringFile.php',