|
|
@@ -4,7 +4,9 @@ namespace ThirdParty\Urs\Webhook;
|
|
|
|
|
|
use App\Module\ThirdParty\Models\ThirdPartyService as ServiceModel;
|
|
|
use App\Module\UrsPromotion\Services\UrsUserMappingService;
|
|
|
+use App\Module\User\Models\UserInfo;
|
|
|
use Illuminate\Http\Request;
|
|
|
+use Illuminate\Support\Facades\DB;
|
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
|
|
/**
|
|
|
@@ -47,7 +49,8 @@ class UrsRegisterFarmUserWebhook extends WebhookReceiver
|
|
|
// 处理注册农场用户通知
|
|
|
return $this->processRegisterFarmUser(
|
|
|
$request->get('user_id'),
|
|
|
- $request->get('user_key')
|
|
|
+ $request->get('user_key'),
|
|
|
+ $request->get('nickname')
|
|
|
);
|
|
|
}
|
|
|
|
|
|
@@ -78,6 +81,12 @@ class UrsRegisterFarmUserWebhook extends WebhookReceiver
|
|
|
if (empty($userKey)) {
|
|
|
throw new \Exception('用户密钥不能为空');
|
|
|
}
|
|
|
+ // 验证用户昵称
|
|
|
+ $nickname = $request->input('nickname');
|
|
|
+ if (empty($nickname)) {
|
|
|
+ throw new \Exception('用户昵称不能为空');
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -87,7 +96,7 @@ class UrsRegisterFarmUserWebhook extends WebhookReceiver
|
|
|
* @param string $userKey 用户密钥
|
|
|
* @return array
|
|
|
*/
|
|
|
- protected function processRegisterFarmUser($ursUserId, $userKey): array
|
|
|
+ protected function processRegisterFarmUser($ursUserId, $userKey,$nickname): array
|
|
|
{
|
|
|
// 记录处理日志
|
|
|
Log::info("URS注册农场用户处理开始", [
|
|
|
@@ -116,6 +125,10 @@ class UrsRegisterFarmUserWebhook extends WebhookReceiver
|
|
|
]);
|
|
|
// 登陆一次
|
|
|
$logininfo = \App\Module\AppGame\Handler\Public\Login4uHandler::completeUrsLogin($ursUserId,$farmUserId,$userKey);
|
|
|
+
|
|
|
+ // 设置昵称和头像(随机1-8),逻辑参考 app/Module/AppGame/Handler/User/EditinfoHandler.php
|
|
|
+ $this->setUserNicknameAndAvatar($farmUserId, $nickname);
|
|
|
+
|
|
|
// 返回成功响应
|
|
|
return [
|
|
|
'farm_user_id' => $farmUserId,
|
|
|
@@ -136,4 +149,63 @@ class UrsRegisterFarmUserWebhook extends WebhookReceiver
|
|
|
throw $e;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置用户昵称和头像
|
|
|
+ *
|
|
|
+ * @param int $farmUserId 农场用户ID
|
|
|
+ * @param string $nickname 昵称
|
|
|
+ * @throws \Exception
|
|
|
+ */
|
|
|
+ protected function setUserNicknameAndAvatar(int $farmUserId, string $nickname): void
|
|
|
+ {
|
|
|
+ try {
|
|
|
+ // 开始事务
|
|
|
+ DB::beginTransaction();
|
|
|
+
|
|
|
+ // 获取用户信息
|
|
|
+ $userInfo = UserInfo::where('user_id', $farmUserId)->first();
|
|
|
+
|
|
|
+ if (!$userInfo) {
|
|
|
+ // 如果用户信息不存在,创建一个新的
|
|
|
+ $userInfo = new UserInfo();
|
|
|
+ $userInfo->user_id = $farmUserId;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置昵称
|
|
|
+ $userInfo->nickname = $nickname;
|
|
|
+
|
|
|
+ // 生成随机头像(1-8)
|
|
|
+ $randomAvatar = (string) rand(1, 8);
|
|
|
+ $userInfo->avatar = $randomAvatar;
|
|
|
+
|
|
|
+ // 保存用户信息
|
|
|
+ $userInfo->save();
|
|
|
+
|
|
|
+ // 提交事务
|
|
|
+ DB::commit();
|
|
|
+
|
|
|
+ // 记录成功日志
|
|
|
+ Log::info("URS用户设置昵称和头像成功", [
|
|
|
+ 'farm_user_id' => $farmUserId,
|
|
|
+ 'nickname' => $nickname,
|
|
|
+ 'avatar' => $randomAvatar,
|
|
|
+ ]);
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ // 回滚事务
|
|
|
+ DB::rollBack();
|
|
|
+
|
|
|
+ // 记录错误日志
|
|
|
+ Log::error("URS用户设置昵称和头像失败", [
|
|
|
+ 'farm_user_id' => $farmUserId,
|
|
|
+ 'nickname' => $nickname,
|
|
|
+ 'error' => $e->getMessage(),
|
|
|
+ 'trace' => $e->getTraceAsString(),
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // 重新抛出异常
|
|
|
+ throw $e;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|