|
@@ -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 用户
|