getAvatar(); $nickname = $data->getNickname(); // 验证参数 if (empty($nickname)) { throw new LogicException('昵称不能为空'); } // 验证昵称长度 if (mb_strlen($nickname) > 20) { throw new LogicException('昵称长度不能超过20个字符'); } // 开始事务 DB::beginTransaction(); try { // 获取用户信息 $userInfo = UserInfo::where('user_id', $this->user_id)->first(); if (!$userInfo) { // 如果用户信息不存在,创建一个新的 $userInfo = new UserInfo(); $userInfo->user_id = $this->user_id; } // 更新用户信息 $userInfo->nickname = $nickname; // 只有当头像ID不为0时才更新头像 if ($avatar > 0) { $userInfo->avatar = $avatar; } // 保存用户信息 $userInfo->save(); // 提交事务 DB::commit(); // 记录日志 Log::info('用户修改资料成功', [ 'user_id' => $this->user_id, 'nickname' => $nickname, 'avatar' => $avatar ]); } catch (\Exception $e) { // 回滚事务 DB::rollBack(); throw $e; } return $response; } }