11package cmf .commitField .domain .user .service ;
22
33import cmf .commitField .domain .commit .sinceCommit .service .CommitCacheService ;
4+ import cmf .commitField .domain .commit .totalCommit .service .TotalCommitService ;
45import cmf .commitField .domain .pet .entity .Pet ;
56import cmf .commitField .domain .pet .repository .PetRepository ;
67import cmf .commitField .domain .user .entity .CustomOAuth2User ;
78import cmf .commitField .domain .user .entity .User ;
89import cmf .commitField .domain .user .repository .UserRepository ;
910import jakarta .servlet .http .HttpServletRequest ;
1011import jakarta .servlet .http .HttpSession ;
12+ import jakarta .transaction .Transactional ;
1113import lombok .RequiredArgsConstructor ;
1214import org .springframework .security .oauth2 .client .userinfo .DefaultOAuth2UserService ;
1315import org .springframework .security .oauth2 .client .userinfo .OAuth2UserRequest ;
@@ -27,8 +29,10 @@ public class CustomOAuth2UserService extends DefaultOAuth2UserService {
2729 private final CommitCacheService commitCacheService ;
2830
2931 @ Override
32+ @ Transactional
3033 public OAuth2User loadUser (OAuth2UserRequest userRequest ) {
3134 OAuth2User oauthUser = super .loadUser (userRequest );
35+ TotalCommitService totalCommitService = new TotalCommitService ();
3236
3337 Map <String , Object > attributes = oauthUser .getAttributes ();
3438 String username = (String ) attributes .get ("login" ); // GitHub ID
@@ -62,6 +66,8 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) {
6266 petRepository .save (pet );
6367
6468 user .addPets (pet );
69+ user .setLastCommitCount (totalCommitService .getTotalCommitCount (user .getUsername ()).getTotalCommitContributions ());
70+ // 가입 시점의 전체 커밋 수를 계산
6571
6672 // 회원가입한 유저는 커밋 기록에 상관없이 Redis에 입력해둔다.
6773 commitCacheService .updateCachedCommitCount (user .getUsername (),0 );
0 commit comments