Skip to content

Commit e523c0b

Browse files
authored
Merge branch 'develope' into feature/PC-333-CICD-docker
2 parents f357900 + 13f8b20 commit e523c0b

29 files changed

+664
-409
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.yapp.domain.auth.application.oauth.service;
22

3+
import java.util.Optional;
4+
import lombok.RequiredArgsConstructor;
35
import org.springframework.stereotype.Service;
46
import org.yapp.domain.auth.application.jwt.JwtUtil;
57
import org.yapp.domain.auth.application.oauth.OauthProvider;
@@ -10,65 +12,77 @@
1012
import org.yapp.domain.user.User;
1113
import org.yapp.domain.user.dao.UserRepository;
1214

13-
import java.util.Optional;
14-
15-
import lombok.RequiredArgsConstructor;
16-
1715
@Service
1816
@RequiredArgsConstructor
1917
public class OauthService {
20-
private final OauthProviderResolver oauthProviderResolver;
21-
private final JwtUtil jwtUtil;
22-
private final UserRepository userRepository;
23-
24-
public OauthLoginResponse login(OauthLoginRequest request) {
25-
OauthProvider oauthProvider = oauthProviderResolver.find(request.getProviderName());
26-
String oauthId = request.getProviderName() + oauthProvider.getOAuthProviderUserId(request.getToken());
27-
28-
//이미 가입된 유저인지 확인하고 가입되어 있지 않으면 회원가입 처리
29-
Optional<User> userOptional = userRepository.findByOauthId(oauthId);
30-
if (userOptional.isEmpty()) {
31-
User newUser = User.builder().oauthId(oauthId).role(RoleStatus.NONE.getStatus()).build();
32-
User savedUser = userRepository.save(newUser);
33-
Long userId = savedUser.getId();
34-
String accessToken = jwtUtil.createJwt("access_token", userId, oauthId, "NONE", 600000L);
35-
String refreshToken = jwtUtil.createJwt("refresh_token", userId, oauthId, "NONE", 864000000L);
36-
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
37-
}
3818

39-
//이미 가입한 유저인 경우 로그인 처리
40-
Long userId = userOptional.get().getId();
41-
final User user = userOptional.get();
42-
43-
String accessToken = jwtUtil.createJwt("access_token", userId, oauthId, user.getRole(), 600000L);
44-
String refreshToken = jwtUtil.createJwt("refresh_token", userId, oauthId, user.getRole(), 864000000L);
45-
46-
//아직 SMS 인증이 완료되지 않음
47-
if (user.getRole().equals("NONE")) {
48-
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
49-
}
50-
51-
// SMS 인증은 완료되었으나, 프로필 등록을 안함
52-
if (user.getRole().equals("REGISTER")) {
53-
return new OauthLoginResponse(RoleStatus.REGISTER.getStatus(), accessToken, refreshToken);
19+
private final OauthProviderResolver oauthProviderResolver;
20+
private final JwtUtil jwtUtil;
21+
private final UserRepository userRepository;
22+
23+
public OauthLoginResponse login(OauthLoginRequest request) {
24+
OauthProvider oauthProvider = oauthProviderResolver.find(request.getProviderName());
25+
String oauthId =
26+
request.getProviderName() + oauthProvider.getOAuthProviderUserId(request.getToken());
27+
28+
//이미 가입된 유저인지 확인하고 가입되어 있지 않으면 회원가입 처리
29+
Optional<User> userOptional = userRepository.findByOauthId(oauthId);
30+
if (userOptional.isEmpty()) {
31+
User newUser = User.builder().oauthId(oauthId).role(RoleStatus.NONE.getStatus())
32+
.build();
33+
User savedUser = userRepository.save(newUser);
34+
Long userId = savedUser.getId();
35+
String accessToken = jwtUtil.createJwt("access_token", userId, oauthId, "NONE",
36+
600000L);
37+
String refreshToken = jwtUtil.createJwt("refresh_token", userId, oauthId, "NONE",
38+
864000000L);
39+
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
40+
}
41+
42+
//이미 가입한 유저인 경우 로그인 처리
43+
Long userId = userOptional.get().getId();
44+
final User user = userOptional.get();
45+
46+
String accessToken = jwtUtil.createJwt("access_token", userId, oauthId, user.getRole(),
47+
600000L);
48+
String refreshToken = jwtUtil.createJwt("refresh_token", userId, oauthId, user.getRole(),
49+
864000000L);
50+
51+
//아직 SMS 인증이 완료되지 않음
52+
if (user.getRole().equals("NONE")) {
53+
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
54+
}
55+
56+
// SMS 인증은 완료되었으나, 프로필 등록을 안함
57+
if (user.getRole().equals("REGISTER")) {
58+
return new OauthLoginResponse(RoleStatus.REGISTER.getStatus(), accessToken,
59+
refreshToken);
60+
}
61+
62+
//프로필 등록은 했지만, 심사중
63+
if (user.getRole().equals("PENDING")) {
64+
return new OauthLoginResponse(RoleStatus.PENDING.getStatus(), accessToken,
65+
refreshToken);
66+
}
67+
68+
// 가입과 프로필 등록까지 완료된 유저
69+
return new OauthLoginResponse(user.getRole(), accessToken, refreshToken);
5470
}
5571

56-
// 가입과 프로필 등록까지 완료된 유저
57-
return new OauthLoginResponse(user.getRole(), accessToken, refreshToken);
58-
}
59-
6072

61-
public OauthLoginResponse tmpTokenGet(Long userId) {
62-
//이미 가입된 유저인지 확인하고 가입되어 있지 않으면 회원가입 처리
63-
Optional<User> userOptional = userRepository.findById(userId);
73+
public OauthLoginResponse tmpTokenGet(Long userId) {
74+
//이미 가입된 유저인지 확인하고 가입되어 있지 않으면 회원가입 처리
75+
Optional<User> userOptional = userRepository.findById(userId);
6476

65-
System.out.println("userOptional = " + userOptional);
77+
System.out.println("userOptional = " + userOptional);
6678

67-
User user = userOptional.get();
79+
User user = userOptional.get();
6880

69-
String accessToken = jwtUtil.createJwt("access_token", userId, user.getOauthId(), user.getRole(), 600000L);
70-
String refreshToken = jwtUtil.createJwt("refresh_token", userId, user.getOauthId(), user.getRole(), 864000000L);
81+
String accessToken = jwtUtil.createJwt("access_token", userId, user.getOauthId(),
82+
user.getRole(), 600000L);
83+
String refreshToken = jwtUtil.createJwt("refresh_token", userId, user.getOauthId(),
84+
user.getRole(), 864000000L);
7185

72-
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
73-
}
86+
return new OauthLoginResponse(RoleStatus.NONE.getStatus(), accessToken, refreshToken);
87+
}
7488
}
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
package org.yapp.domain.auth.presentation.dto.enums;
22

33
import com.fasterxml.jackson.annotation.JsonValue;
4-
54
import lombok.AllArgsConstructor;
65

76
@AllArgsConstructor
87
public enum RoleStatus {
9-
NONE("NONE"),
10-
REGISTER("REGISTER"),
11-
USER("USER");
12-
private String status;
8+
NONE("NONE"),
9+
REGISTER("REGISTER"),
10+
PENDING("PENDING"),
11+
USER("USER");
12+
private String status;
1313

14-
@JsonValue
15-
public String getStatus() {
16-
return status;
17-
}
14+
@JsonValue
15+
public String getStatus() {
16+
return status;
17+
}
1818
}
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,59 @@
11
package org.yapp.domain.match.application.algorithm;
22

3+
import java.util.List;
4+
import lombok.RequiredArgsConstructor;
35
import org.springframework.stereotype.Component;
46
import org.yapp.domain.match.application.blocker.Blocker;
57
import org.yapp.domain.profile.Profile;
68
import org.yapp.domain.profile.ProfileValuePick;
79
import org.yapp.domain.profile.application.ProfileValuePickService;
810

9-
import java.util.List;
10-
11-
import lombok.RequiredArgsConstructor;
12-
1311
@Component
1412
@RequiredArgsConstructor
1513
public class PreferenceBasedMatchingAlgorithm {
16-
private final List<Blocker> blockers;
17-
private final ProfileValuePickService profileValuePickService;
18-
19-
/**
20-
* 가치관 기반으로 매칭을 수행
21-
*
22-
* @param profiles 매칭 수행할 프로필 리스트
23-
* @return 매칭이 이루어지지 않은 프로필 리스트
24-
*/
25-
public List<Profile> doMatch(List<Profile> profiles) {
26-
//TODO : 효율적인 일반 그래프 매칭 알고리즘 구현
27-
//TODO : 요구조건 - 차단한 사용자 x, 이전에 매칭된 사용자 x, 지인 x
28-
29-
return List.of();
30-
}
31-
32-
private int calculateWeight(Long fromProfileId, Long toProfileId) {
33-
List<ProfileValuePick> profileValuePicksOfFrom =
34-
profileValuePickService.getAllProfileValuesByProfileId(fromProfileId);
35-
List<ProfileValuePick> profileValuePicksOfTo = profileValuePickService.getAllProfileValuesByProfileId(toProfileId);
36-
37-
int valueListSize = profileValuePicksOfFrom.size();
38-
int sumOfWeight = 0;
39-
for (int i = 0; i < valueListSize; i++) {
40-
ProfileValuePick profileValuePickOfFrom = profileValuePicksOfFrom.get(i);
41-
ProfileValuePick profileValuePickOfTo = profileValuePicksOfTo.get(i);
42-
if (profileValuePickOfFrom.getSelectedAnswer().equals(profileValuePickOfTo.getSelectedAnswer())) {
43-
sumOfWeight++;
44-
}
14+
15+
private final List<Blocker> blockers;
16+
private final ProfileValuePickService profileValuePickService;
17+
18+
/**
19+
* 가치관 기반으로 매칭을 수행
20+
*
21+
* @param profiles 매칭 수행할 프로필 리스트
22+
* @return 매칭이 이루어지지 않은 프로필 리스트
23+
*/
24+
public List<Profile> doMatch(List<Profile> profiles) {
25+
//TODO : 효율적인 일반 그래프 매칭 알고리즘 구현
26+
//TODO : 요구조건 - 차단한 사용자 x, 이전에 매칭된 사용자 x, 지인 x
27+
28+
return List.of();
4529
}
46-
return sumOfWeight;
47-
}
48-
49-
private boolean checkBlock(Long user1, Long user2) {
50-
for (Blocker blocker : blockers) {
51-
boolean blocked = blocker.blocked(user1, user2);
52-
if (blocked) {
53-
return true;
54-
}
30+
31+
private int calculateWeight(Long fromProfileId, Long toProfileId) {
32+
List<ProfileValuePick> profileValuePicksOfFrom =
33+
profileValuePickService.getAllProfileValuePicksByProfileId(fromProfileId);
34+
List<ProfileValuePick> profileValuePicksOfTo = profileValuePickService.getAllProfileValuePicksByProfileId(
35+
toProfileId);
36+
37+
int valueListSize = profileValuePicksOfFrom.size();
38+
int sumOfWeight = 0;
39+
for (int i = 0; i < valueListSize; i++) {
40+
ProfileValuePick profileValuePickOfFrom = profileValuePicksOfFrom.get(i);
41+
ProfileValuePick profileValuePickOfTo = profileValuePicksOfTo.get(i);
42+
if (profileValuePickOfFrom.getSelectedAnswer()
43+
.equals(profileValuePickOfTo.getSelectedAnswer())) {
44+
sumOfWeight++;
45+
}
46+
}
47+
return sumOfWeight;
48+
}
49+
50+
private boolean checkBlock(Long user1, Long user2) {
51+
for (Blocker blocker : blockers) {
52+
boolean blocked = blocker.blocked(user1, user2);
53+
if (blocked) {
54+
return true;
55+
}
56+
}
57+
return false;
5558
}
56-
return false;
57-
}
5859
}

0 commit comments

Comments
 (0)