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; } } catch (LogicException $e) { // 业务逻辑异常 $this->response->setCode($e->getCode() ?: 400); $this->response->setMessage($e->getMessage()); Log::warning('用户修改资料失败: ' . $e->getMessage(), [ 'user_id' => $this->user_id, 'code' => $e->getCode(), 'message' => $e->getMessage() ]); } catch (\Exception $e) { // 系统异常 $this->response->setCode(500); $this->response->setMessage('系统错误,请稍后再试'); Log::error('用户修改资料异常: ' . $e->getMessage(), [ 'user_id' => $this->user_id, 'exception' => $e ]); } return $response; } }