Skip to content

Commit 28ccbe8

Browse files
authored
Merge pull request #45 from YAPP-Github/refactor/T3-142
[T3-142] User 테이블 PK 변경
2 parents e1f2692 + d1b5928 commit 28ccbe8

27 files changed

Lines changed: 266 additions & 112 deletions

File tree

src/main/java/bitnagil/bitnagil_backend/auth/jwt/AuthRedisService.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import org.springframework.data.redis.core.StringRedisTemplate;
77
import org.springframework.stereotype.Component;
88

9-
import bitnagil.bitnagil_backend.global.entity.HistoryPk;
109
import lombok.RequiredArgsConstructor;
1110

1211
@Component
@@ -16,21 +15,18 @@ public class AuthRedisService {
1615
private final StringRedisTemplate stringRedisTemplate;
1716

1817
// 저장
19-
public void saveRefreshToken(HistoryPk userPk, String token) {
20-
String redisKey = buildRefreshTokenKey(userPk);
21-
18+
public void saveRefreshToken(Long userId, String token) {
2219
RefreshToken refreshToken = RefreshToken.builder()
23-
.userId(redisKey) // 복합키를 문자열 ID로 저장
20+
.userId(String.valueOf(userId)) // 복합키를 문자열 ID로 저장
2421
.refreshToken(token)
2522
.build();
2623

2724
refreshTokenRedisRepository.save(refreshToken);
2825
}
2926

3027
// 조회 by 복합키
31-
public Optional<RefreshToken> getRefreshTokenByUserPk(HistoryPk userPk) {
32-
String redisKey = buildRefreshTokenKey(userPk);
33-
return refreshTokenRedisRepository.findById(redisKey);
28+
public Optional<RefreshToken> getRefreshTokenByUserId(Long userId) {
29+
return refreshTokenRedisRepository.findById(String.valueOf(userId));
3430
}
3531

3632
// 조회 by refreshToken
@@ -39,16 +35,10 @@ public Optional<RefreshToken> getRefreshTokenByToken(String token) {
3935
}
4036

4137
// 삭제
42-
public void deleteRefreshToken(HistoryPk userPk) {
43-
String redisKey = buildRefreshTokenKey(userPk);
44-
refreshTokenRedisRepository.deleteById(redisKey);
45-
}
46-
47-
private String buildRefreshTokenKey(HistoryPk userPk) {
48-
return userPk.getId().toString() + ":" + userPk.getHistorySeq();
38+
public void deleteRefreshToken(Long userId) {
39+
refreshTokenRedisRepository.deleteById(String.valueOf(userId));
4940
}
5041

51-
5242
// Access Token 블랙리스트 등록
5343
public void addAccessTokenToBlacklist(String accessToken, long expirationMillis) {
5444
String key = "blacklist:" + accessToken;

src/main/java/bitnagil/bitnagil_backend/auth/jwt/JwtUtil.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import org.springframework.stereotype.Service;
1616
import org.springframework.util.StringUtils;
1717

18-
import bitnagil.bitnagil_backend.global.entity.HistoryPk;
1918
import bitnagil.bitnagil_backend.global.errorcode.ErrorCode;
2019
import bitnagil.bitnagil_backend.global.exception.CustomException;
2120
import bitnagil.bitnagil_backend.user.repository.UserRepository;
@@ -58,16 +57,15 @@ protected void init() {
5857
this.key = Keys.hmacShaKeyFor(keyBytes);
5958
}
6059

61-
public Token generateToken(HistoryPk userPk) {
60+
public Token generateToken(Long userId) {
6261
Date now = new Date();
6362

6463
// Access Token 생성
6564
Date accessTokenExpiresIn = new Date(now.getTime() + ACCESS_TOKEN_EXPIRE_TIME);
6665

6766
String accessToken = Jwts.builder()
6867
.setSubject(ACCESS_TOKEN_SUBJECT)
69-
.claim("userId", userPk.getId())
70-
.claim("userHistorySeq", userPk.getHistorySeq())
68+
.claim("userId", userId)
7169
.setExpiration(accessTokenExpiresIn)
7270
.signWith(key, SignatureAlgorithm.HS512)
7371
.compact();
@@ -76,13 +74,12 @@ public Token generateToken(HistoryPk userPk) {
7674
Date refreshTokenExpiresIn = new Date(now.getTime() + REFRESH_TOKEN_EXPIRE_TIME);
7775
String refreshToken = Jwts.builder()
7876
.setSubject(REFRESH_TOKEN_SUBJECT)
79-
.claim("userId", userPk.getId())
80-
.claim("userHistorySeq", userPk.getHistorySeq())
77+
.claim("userId", userId)
8178
.setExpiration(refreshTokenExpiresIn)
8279
.signWith(key, SignatureAlgorithm.HS512)
8380
.compact();
8481

85-
authRedisService.saveRefreshToken(userPk, refreshToken);
82+
authRedisService.saveRefreshToken(userId, refreshToken);
8683

8784
return Token.builder()
8885
.accessToken(accessToken)
@@ -110,14 +107,11 @@ public Authentication getAuthentication(String accessToken) {
110107

111108
// RefreshToken 혹은 AccessToken으로 인증된 유효 User 조회
112109
public User findValidUserByRefreshTokenOrAccessToken(String token) {
113-
LocalDateTime now = LocalDateTime.now();
114110

115-
// JWT에서 유저 관련 정보 추출 후, UserPk 생성
116-
UUID userId = UUID.fromString(parseClaims(token).get("userId", String.class));
111+
Long userId = Long.valueOf(parseClaims(token).get("userId", String.class));
117112

118113
return userRepository
119-
.findByUserPk_IdAndHistoryStartDateTimeLessThanAndHistoryEndDateTimeGreaterThanEqual(
120-
userId, now, now)
114+
.findByUserId(userId)
121115
.orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_USER));
122116
}
123117

src/main/java/bitnagil/bitnagil_backend/auth/kakao/domain/CustomOAuth2User.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919
@Getter
2020
public class CustomOAuth2User extends DefaultOAuth2User {
2121

22-
private final HistoryPk userPk;
22+
private final Long userId;
2323
private final Role userRole;
2424

2525
public CustomOAuth2User(Collection<? extends GrantedAuthority> authorities,
26-
Map<String, Object> attributes, String nameAttributeKey, HistoryPk userPk, Role userRole) {
26+
Map<String, Object> attributes, String nameAttributeKey, Long userId, Role userRole) {
2727
super(authorities, attributes, nameAttributeKey);
28-
this.userPk = userPk;
28+
this.userId = userId;
2929
this.userRole = userRole;
3030
}
3131
}

src/main/java/bitnagil/bitnagil_backend/auth/kakao/service/CustomOAuth2UserService.java

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,6 @@ public class CustomOAuth2UserService implements OAuth2UserService<OAuth2UserRequ
4646
*/
4747
@Override
4848
public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException {
49-
log.info("CustomOAuth2UserService 진입-----");
50-
5149

5250
OAuth2UserService<OAuth2UserRequest, OAuth2User> delegate = new DefaultOAuth2UserService();
5351
OAuth2User oAuth2User = delegate.loadUser(userRequest);
@@ -65,7 +63,7 @@ public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2Authentic
6563

6664
return new CustomOAuth2User(
6765
Collections.singleton(new SimpleGrantedAuthority(createdUser.getRole().getDescription())),
68-
attributes, extractAttributes.getNameAttributeKey(), createdUser.getUserPk(), createdUser.getRole());
66+
attributes, extractAttributes.getNameAttributeKey(), createdUser.getUserId(), createdUser.getRole());
6967
}
7068

7169
private String getUserNameAttributeName(final OAuth2UserRequest userRequest) {
@@ -84,11 +82,9 @@ private SocialType getSocialType(String registrationId) {
8482
}
8583

8684
private User getMember(OAuth2Attribute attributes, SocialType socialType) {
87-
LocalDateTime now = LocalDateTime.now();
8885

8986
User findUser = userRepository
90-
.findBySocialTypeAndSocialIdAndHistoryStartDateTimeLessThanAndHistoryEndDateTimeGreaterThanEqual(
91-
socialType, attributes.getSocialId(), now, now)
87+
.findBySocialTypeAndSocialId(socialType, attributes.getSocialId())
9288
.orElseThrow(() -> new CustomException(ErrorCode.NOT_FOUND_USER));
9389

9490
if (findUser == null) {

src/main/java/bitnagil/bitnagil_backend/changedRoutine/domain/ChangedRoutine.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,14 @@ public class ChangedRoutine extends BaseTimeEntity {
5454
private ChangedDivCode changedDivCode; // 변경 구분 코드 (시간 변경, 내일 미루기, 오늘만 루틴 삭제 등)
5555

5656
@NotNull
57-
private UUID userId;
57+
private Long userId;
5858

5959
private UUID routineId;
6060

6161
@Builder
6262
public ChangedRoutine(HistoryPk changedRoutinePk, String changedRoutineName, LocalTime changedExecutionTime,
6363
LocalDate originalRoutineDate, LocalDate changedRoutineDate, LocalDateTime historyStartDateTime,
64-
LocalDateTime historyEndDateTime, UUID userId, UUID routineId, ChangedDivCode changedDivCode) {
64+
LocalDateTime historyEndDateTime, Long userId, UUID routineId, ChangedDivCode changedDivCode) {
6565
this.changedRoutinePk = changedRoutinePk;
6666
this.changedRoutineName = changedRoutineName;
6767
this.changedExecutionTime = changedExecutionTime;

src/main/java/bitnagil/bitnagil_backend/changedRoutine/repository/ChangedRoutineRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public interface ChangedRoutineRepository extends JpaRepository<ChangedRoutine,
2222
* historyStartDateTime < systime <= historyEndDateTime
2323
*/
2424
List<ChangedRoutine> findByUserIdAndDeletedAtIsNullAndHistoryStartDateTimeBeforeAndHistoryEndDateTimeGreaterThanEqualAndChangedRoutineDateBetween(
25-
UUID userId,
25+
Long userId,
2626
LocalDateTime now1,
2727
LocalDateTime now2,
2828
LocalDate startDate,

src/main/java/bitnagil/bitnagil_backend/changedRoutine/service/ChangedRoutineFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ChangedRoutine createChangedRoutineForOnboarding(
3030
.changedRoutineDate(today) // 변경된 루틴 날짜도 현재 날짜로 설정
3131
.historyStartDateTime(now)
3232
.historyEndDateTime(TimeUtils.END_DATE_TIME)
33-
.userId(user.getUserPk().getId())
33+
.userId(user.getUserId())
3434
.changedDivCode(ChangedDivCode.ONBOARDING)
3535
.build();
3636
}

src/main/java/bitnagil/bitnagil_backend/emotionMarble/domain/EmotionMarble.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class EmotionMarble extends BaseTimeEntity {
3636
private LocalDate date;
3737

3838
@NotNull
39-
private UUID userId;
39+
private Long userId;
4040

4141
@NotNull
4242
private LocalDateTime historyStartDateTime;
@@ -49,7 +49,7 @@ public class EmotionMarble extends BaseTimeEntity {
4949
private Case resultCase;
5050

5151
@Builder
52-
public EmotionMarble(HistoryPk emotionMarblePk, EmotionMarbleType emotionMarbleType, LocalDate date, UUID userId,
52+
public EmotionMarble(HistoryPk emotionMarblePk, EmotionMarbleType emotionMarbleType, LocalDate date, Long userId,
5353
LocalDateTime historyStartDateTime, LocalDateTime historyEndDateTime, Case resultCase) {
5454
this.emotionMarblePk = emotionMarblePk;
5555
this.emotionMarbleType = emotionMarbleType;

src/main/java/bitnagil/bitnagil_backend/emotionMarble/repository/EmotionMarbleRepository.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@
1010

1111
@Repository
1212
public interface EmotionMarbleRepository extends JpaRepository<EmotionMarble, HistoryPk> {
13-
EmotionMarble findByUserId(UUID id);
13+
EmotionMarble findByUserId(Long userId);
1414

15-
EmotionMarble findByUserIdAndDateIs(UUID userId, LocalDate now);
15+
EmotionMarble findByUserIdAndDateIs(Long userId, LocalDate now);
1616

17-
boolean existsByUserIdAndDate(UUID userId, LocalDate nowDate);
17+
boolean existsByUserIdAndDate(Long userId, LocalDate nowDate);
1818
}

src/main/java/bitnagil/bitnagil_backend/emotionMarble/service/EmotionMarbleFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public EmotionMarble createTodayEmotionMarble(User user, RegisterEmotionMarbleRe
2727
.emotionMarblePk(new HistoryPk(UUID.randomUUID(), 1L))
2828
.emotionMarbleType(request.getEmotionMarbleType())
2929
.date(nowDate)
30-
.userId(user.getUserPk().getId())
30+
.userId(user.getUserId())
3131
.historyStartDateTime(nowDateTime)
3232
.historyEndDateTime(endDateTime) // historyEndDateTime은 당일 11시 59분 59초로 설정(하루씩 설정되기 때문. 이러면 매일 감정 갱신이 불필요함)
3333
.resultCase( // 감정 구슬에 따른 추천 루틴을 찾기 위해 Case 객체를 생성

0 commit comments

Comments
 (0)