Skip to content

Commit ad70c4a

Browse files
committed
feat: 병합을 위한 임시 컴시
1 parent 2d2522b commit ad70c4a

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

src/main/java/cmf/commitField/domain/pet/entity/Pet.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public Pet(String name, User user){
3939
break;
4040
}
4141
this.name = name;
42-
this.exp = 0;
42+
this.exp = 0; //10, 20, 30마다 성장한다고 가정함.
4343
this.grow = Grow.EGG;
4444
this.user = user;
4545
}

src/main/java/cmf/commitField/domain/user/entity/User.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public class User extends BaseEntity {
2929
private String avatarUrl; //아바타
3030
private Boolean status; //로그인 true, 로그아웃 false
3131
private LocalDateTime lastCommitted; // 마지막 커밋 시간
32+
private long lastCommitCount; // 마지막으로 반영한 커밋 개수
3233

3334
@Enumerated(EnumType.STRING) // DB에 저장될 때 String 형태로 저장됨
3435
private Role role;
@@ -60,6 +61,7 @@ public User(String username, String email, String nickname, String avatarUrl, Bo
6061
this.userChatRooms = ucr;
6162
this.chatMsgs = cmsg;
6263
this.lastCommitted = LocalDateTime.now();
64+
this.lastCommitCount = 0; // 반영 커밋 개수, 0으로 시작
6365
}
6466

6567
public void addPets(Pet pet){

src/main/java/cmf/commitField/domain/user/service/CustomOAuth2UserService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package cmf.commitField.domain.user.service;
22

33
import cmf.commitField.domain.commit.sinceCommit.service.CommitCacheService;
4+
import cmf.commitField.domain.commit.totalCommit.service.TotalCommitService;
45
import cmf.commitField.domain.pet.entity.Pet;
56
import cmf.commitField.domain.pet.repository.PetRepository;
67
import cmf.commitField.domain.user.entity.CustomOAuth2User;
78
import cmf.commitField.domain.user.entity.User;
89
import cmf.commitField.domain.user.repository.UserRepository;
910
import jakarta.servlet.http.HttpServletRequest;
1011
import jakarta.servlet.http.HttpSession;
12+
import jakarta.transaction.Transactional;
1113
import lombok.RequiredArgsConstructor;
1214
import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService;
1315
import 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

Comments
 (0)