From 4393503245ed0962ce619fe171575448a59530dc Mon Sep 17 00:00:00 2001 From: tolelom <98kimsungmin@naver.com> Date: Thu, 19 Mar 2026 13:15:49 +0900 Subject: [PATCH] =?UTF-8?q?Fix:=20GrantExperience=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EB=AF=B8=EC=A1=B4=EC=9E=AC=20?= =?UTF-8?q?=EC=8B=9C=20=EC=9E=90=EB=8F=99=20=EC=83=9D=EC=84=B1=20fallback?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FindByUserID → GetProfile(auto-create 포함)로 변경하여 프로필 없는 유저의 경험치 지급 실패 방지. Co-Authored-By: Claude Opus 4.6 (1M context) --- internal/player/service.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/player/service.go b/internal/player/service.go index 735f4a4..15a4099 100644 --- a/internal/player/service.go +++ b/internal/player/service.go @@ -167,9 +167,9 @@ func (s *Service) SaveGameDataByUsername(username string, data *GameDataRequest) // GrantExperience adds experience to a player and handles level ups + stat recalculation. func (s *Service) GrantExperience(userID uint, exp int) (*LevelUpResult, error) { - profile, err := s.repo.FindByUserID(userID) + profile, err := s.GetProfile(userID) if err != nil { - return nil, fmt.Errorf("프로필이 존재하지 않습니다") + return nil, fmt.Errorf("프로필 조회/생성 실패: %w", err) } result := ApplyExperience(profile.Level, profile.Experience, exp)