Browse Source

Merge branch 'master' of ssh://gogs.yinbin.ink:30004/didong/owl-admin

Yin Bin 4 months ago
parent
commit
8e66928cb9
1 changed files with 25 additions and 18 deletions
  1. 25 18
      app/Services/Client/AccountService.php

+ 25 - 18
app/Services/Client/AccountService.php

@@ -34,7 +34,7 @@ class AccountService
      * 业务逻辑:
      * 1. 生成6位随机数字验证码
      * 2. 将验证码保存到缓存中,有效期5分钟
-     * 3. 调用短信服���发送验证码
+     * 3. 调用短信服发送验证码
      * 4. 返回发送成功消息和验证码
      *
      * @param  string  $mobile  手机号
@@ -148,7 +148,7 @@ class AccountService
     /**
      * 用户退出
      * 业务逻辑:
-     * 1. 根据户ID查找用户
+     * 1. 根据��户ID查找用户
      * 2. 验证用户是否存在,不存在则中断请求
      * 3. 删除用户所有token
      * 4. 返回退出成功消息
@@ -234,7 +234,7 @@ class AccountService
     private function storeVerifyCode(string $mobile, int $code): void
     {
         // 构建缓存键名(verify_code:手机号)
-        $key = self::VERIFY_CODE_PREFIX.$mobile;
+        $key = self::VERIFY_CODE_PREFIX . $mobile;
 
         // 将验证码存入缓存,并设置过期时间
         Cache::put($key, $code, self::VERIFY_CODE_EXPIRE);
@@ -243,7 +243,7 @@ class AccountService
     /**
      * 发送验证码短信
      *
-     * 逻辑述:
+     * 逻辑���述:
      * 1. 调用短信服务发送验证码
      *
      * @param  string  $mobile  手机号
@@ -285,7 +285,7 @@ class AccountService
     private function verifyCode(string $mobile, string $code): void
     {
         // 使用手机号和前缀构建缓存键,获取存储的验证码
-        $cacheCode = Cache::get(self::VERIFY_CODE_PREFIX.$mobile);
+        $cacheCode = Cache::get(self::VERIFY_CODE_PREFIX . $mobile);
 
         // 验证码不存在或不匹配则抛出业务异常
         if (! $cacheCode || $cacheCode != $code) {
@@ -321,21 +321,28 @@ class AccountService
      * 查找或创建社交账号
      *
      * 逻辑描述:
-     * 1. 根据openid查找社交账号
+     * 1. 先查找是否存在社交账号
      * 2. 不存在则创建新记录
      *
      * @param  string  $openid  微信openid
      */
     private function findOrCreateSocialAccount(string $openid): MemberSocialAccount
     {
-        // 使用 firstOrCreate 方法查找或创建社交账号记录
-        return MemberSocialAccount::firstOrCreate(
-            // 查询条件:平台类型和社交ID
-            [
-                'platform' => 'WECHAT',     // 设置平台为微信
-                'social_id' => $openid,     // 设置微信openid
-            ]
-        );
+        // 先查找是否存在社交账号
+        $socialAccount = MemberSocialAccount::where([
+            'platform' => 'WECHAT',
+            'social_id' => $openid,
+        ])->first();
+
+        // 如果不存在,则创建新记录
+        if (!$socialAccount) {
+            $socialAccount = MemberSocialAccount::create([
+                'platform' => 'WECHAT',
+                'social_id' => $openid,
+            ]);
+        }
+
+        return $socialAccount;
     }
 
     /**
@@ -364,7 +371,7 @@ class AccountService
      * 关联社交账号和用户
      *
      * 逻辑描述:
-     * 1. 更新社交账号���用户ID
+     * 1. 更新社交账号用户ID
      *
      * @param  \App\Models\MemberSocialAccount  $account  社交账号
      * @param  \App\Models\MemberUser  $user  用户
@@ -455,7 +462,7 @@ class AccountService
     {
         // 检查用户状态是否为开启状态
         if ($user->state !== UserStatus::OPEN->value) {
-            // 状态异常则抛出业��异常
+            // 状态异常则抛出业异常
             throw new BusinessException('用户状态异常');
         }
     }
@@ -504,8 +511,8 @@ class AccountService
      * 2. 验证邀请码格式是否正确
      * 3. 分解邀请码获取类型和ID
      * 4. 根据类型查找邀请人
-     * 5. 邀请人不存在则记录日并返回
-     * 6. 检查用户是���已在营销团队中
+     * 5. 邀请人不存在则记录日���并返回
+     * 6. 检查用户是已在营销团队中
      * 7. 使用事务创建团队关系
      *
      * @param  \App\Models\MemberUser  $user  用户