Skip to content

Commit dbe310b

Browse files
authored
Merge pull request #366 from mosu-dev/develop
prod : 가상 계좌 부분 삭제 및 휴대폰 번호 UID 변경
2 parents 9d98916 + fb22412 commit dbe310b

File tree

94 files changed

+6130
-277
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+6130
-277
lines changed

.github/workflows/docker-pr-build.yaml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ on:
55
branches: [ develop ]
66

77
jobs:
8-
build-and-deploy:
8+
build-and-test:
99
runs-on: ubuntu-latest
1010

1111
steps:
@@ -34,5 +34,14 @@ jobs:
3434
git clone https://x-access-token:${{ secrets.GH_PAT }}@github.com/mosu-dev/mosu-kmc-jar.git temp-jar
3535
cp temp-jar/*.jar libs/
3636
37-
- name: Build with Gradle
37+
- name: Build without tests
3838
run: ./gradlew build -x test
39+
40+
- name: Run tests
41+
run: ./gradlew test
42+
43+
- name: Upload build artifacts
44+
uses: actions/upload-artifact@v4
45+
with:
46+
name: build-artifacts
47+
path: build/libs/*.jar

src/main/java/life/mosu/mosuserver/application/application/ApplicationContext.java

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.util.Set;
88
import java.util.function.Function;
99
import java.util.stream.Collectors;
10-
1110
import life.mosu.mosuserver.domain.application.entity.ApplicationJpaEntity;
1211
import life.mosu.mosuserver.domain.exam.entity.ExamJpaEntity;
1312
import life.mosu.mosuserver.domain.examapplication.entity.ExamApplicationJpaEntity;
@@ -34,6 +33,13 @@ public ApplicationContext(
3433
this(applications, examApplications, Map.of(), Map.of(), Map.of(), Map.of());
3534
}
3635

36+
public static ApplicationContext of(
37+
List<ApplicationJpaEntity> applications,
38+
List<ExamApplicationWithStatus> examApplications
39+
) {
40+
return new ApplicationContext(applications, examApplications);
41+
}
42+
3743
public ApplicationContext fetchExams(Function<List<Long>, List<ExamJpaEntity>> fetcher) {
3844
Map<Long, ExamJpaEntity> newExamMap = fetcher.apply(
3945
examApplications.stream()
@@ -42,37 +48,44 @@ public ApplicationContext fetchExams(Function<List<Long>, List<ExamJpaEntity>> f
4248
.toList()
4349
).stream().collect(Collectors.toMap(ExamJpaEntity::getId, Function.identity()));
4450

45-
return new ApplicationContext(applications, examApplications, newExamMap, subjectMap, paymentMap, refundMap);
51+
return new ApplicationContext(applications, examApplications, newExamMap, subjectMap,
52+
paymentMap, refundMap);
4653
}
4754

48-
public ApplicationContext fetchSubjects(Function<List<Long>, List<ExamSubjectJpaEntity>> fetcher) {
55+
public ApplicationContext fetchSubjects(
56+
Function<List<Long>, List<ExamSubjectJpaEntity>> fetcher) {
4957
Map<Long, List<ExamSubjectJpaEntity>> newSubjectMap = fetcher.apply(
5058
examApplications.stream()
5159
.map(e -> e.examApplication().getId())
5260
.toList()
5361
).stream().collect(Collectors.groupingBy(ExamSubjectJpaEntity::getExamApplicationId));
5462

55-
return new ApplicationContext(applications, examApplications, examMap, newSubjectMap, paymentMap, refundMap);
63+
return new ApplicationContext(applications, examApplications, examMap, newSubjectMap,
64+
paymentMap, refundMap);
5665
}
5766

5867
public ApplicationContext fetchPayments(Function<List<Long>, List<PaymentJpaEntity>> fetcher) {
5968
Map<Long, PaymentJpaEntity> newPaymentMap = fetcher.apply(
6069
examApplications.stream()
6170
.map(e -> e.examApplication().getId())
6271
.toList()
63-
).stream().collect(Collectors.toMap(PaymentJpaEntity::getExamApplicationId, Function.identity()));
72+
).stream().collect(
73+
Collectors.toMap(PaymentJpaEntity::getExamApplicationId, Function.identity()));
6474

65-
return new ApplicationContext(applications, examApplications, examMap, subjectMap, newPaymentMap, refundMap);
75+
return new ApplicationContext(applications, examApplications, examMap, subjectMap,
76+
newPaymentMap, refundMap);
6677
}
6778

6879
public ApplicationContext fetchRefunds(Function<List<Long>, List<RefundJpaEntity>> fetcher) {
6980
Map<Long, RefundJpaEntity> newRefundMap = fetcher.apply(
7081
examApplications.stream()
7182
.map(e -> e.examApplication().getId())
7283
.toList()
73-
).stream().collect(Collectors.toMap(RefundJpaEntity::getExamApplicationId, Function.identity()));
84+
).stream().collect(
85+
Collectors.toMap(RefundJpaEntity::getExamApplicationId, Function.identity()));
7486

75-
return new ApplicationContext(applications, examApplications, examMap, subjectMap, paymentMap, newRefundMap);
87+
return new ApplicationContext(applications, examApplications, examMap, subjectMap,
88+
paymentMap, newRefundMap);
7689
}
7790

7891
public List<ApplicationResponse> assemble() {
@@ -88,10 +101,13 @@ public List<ApplicationResponse> assemble() {
88101
.toList();
89102
}
90103

91-
private Map.Entry<Long, ExamApplicationResponse> createExamApplicationResponse(ExamApplicationWithStatus item) {
104+
private Map.Entry<Long, ExamApplicationResponse> createExamApplicationResponse(
105+
ExamApplicationWithStatus item) {
92106
ExamApplicationJpaEntity examApp = item.examApplication();
93107
ExamJpaEntity exam = examMap.get(examApp.getExamId());
94-
if (exam == null) return null;
108+
if (exam == null) {
109+
return null;
110+
}
95111

96112
Set<String> subjects = subjectMap.getOrDefault(examApp.getId(), List.of()).stream()
97113
.map(s -> s.getSubject().getSubjectName()).collect(Collectors.toSet());

src/main/java/life/mosu/mosuserver/application/application/ApplicationService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import life.mosu.mosuserver.application.application.processor.GetApplicationsStepProcessor;
77
import life.mosu.mosuserver.application.application.processor.RegisterApplicationStepProcessor;
88
import life.mosu.mosuserver.application.application.processor.SaveExamTicketStepProcessor;
9-
import life.mosu.mosuserver.application.application.vaildator.ApplicationValidator;
9+
import life.mosu.mosuserver.application.application.validator.ApplicationValidator;
1010
import life.mosu.mosuserver.application.exam.cache.ExamQuotaCacheManager;
1111
import life.mosu.mosuserver.application.user.UserService;
1212
import life.mosu.mosuserver.domain.application.entity.ApplicationJpaEntity;

src/main/java/life/mosu/mosuserver/application/application/vaildator/ApplicationValidator.java renamed to src/main/java/life/mosu/mosuserver/application/application/validator/ApplicationValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package life.mosu.mosuserver.application.application.vaildator;
1+
package life.mosu.mosuserver.application.application.validator;
22

33
import java.time.LocalDateTime;
44
import java.util.HashSet;

src/main/java/life/mosu/mosuserver/application/event/EventAttachmentService.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/main/java/life/mosu/mosuserver/application/user/MyUserService.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static life.mosu.mosuserver.global.util.EncodeUtil.passwordEncode;
44

5+
import life.mosu.mosuserver.domain.user.entity.AuthProvider;
56
import life.mosu.mosuserver.domain.user.entity.UserJpaEntity;
67
import life.mosu.mosuserver.domain.user.repository.UserJpaRepository;
78
import life.mosu.mosuserver.global.exception.CustomRuntimeException;
@@ -42,11 +43,13 @@ public ChangePasswordResponse changePassword(ChangePasswordRequest request,
4243
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)
4344
public FindLoginIdResponse findLoginId(FindLoginIdRequest request) {
4445
UserJpaEntity user = userJpaRepository.findByNameAndPhoneNumber(request.name(),
45-
request.phoneNumber())
46+
PhoneNumberUtil.formatPhoneNumber(request.phoneNumber()))
4647
.orElseThrow(() -> new CustomRuntimeException(ErrorCode.NOT_FOUND_LOGIN_ID));
4748

49+
if (user.getProvider() == AuthProvider.KAKAO) {
50+
throw new CustomRuntimeException(ErrorCode.KAKAO_ACCOUNT_DUPLICATED);
51+
}
4852
return FindLoginIdResponse.from(user.getLoginId());
49-
5053
}
5154

5255
@Transactional(readOnly = true, propagation = Propagation.SUPPORTS)

src/main/java/life/mosu/mosuserver/application/virtualaccount/event/DepositSuccessEventHandler.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33

44
import life.mosu.mosuserver.application.virtualaccount.VirtualAccountLogService;
5+
import life.mosu.mosuserver.domain.application.entity.ApplicationStatus;
6+
import life.mosu.mosuserver.domain.application.repository.ApplicationJpaRepository;
57
import life.mosu.mosuserver.domain.examapplication.repository.ExamApplicationJpaRepository;
68
import life.mosu.mosuserver.domain.virtualaccount.DepositStatus;
79
import life.mosu.mosuserver.domain.virtualaccount.VirtualAccountLogJpaEntity;
@@ -25,7 +27,7 @@ public class DepositSuccessEventHandler implements DepositEventHandler<DepositSu
2527
private final MailNotifier<DepositSuccessMailRequest> mailer;
2628
private final NotifyEventPublisher notifier;
2729
private final ExamApplicationJpaRepository examApplicationJpaRepository;
28-
30+
private final ApplicationJpaRepository applicationJpaRepository;
2931
@Override
3032
@Transactional
3133
public void handle(DepositSuccessEvent event) {
@@ -38,6 +40,12 @@ public void handle(DepositSuccessEvent event) {
3840
.orElseThrow(
3941
() -> new CustomRuntimeException(ErrorCode.EXAM_APPLICATION_NOT_FOUND));
4042

43+
var application = applicationJpaRepository.findById(log.getApplicationId())
44+
.orElseThrow(
45+
() -> new CustomRuntimeException(ErrorCode.APPLICATION_LIST_NOT_FOUND));
46+
if (application.getStatus() == ApplicationStatus.PENDING) {
47+
application.changeStatus(ApplicationStatus.APPROVED);
48+
}
4149
LunaNotificationEvent lunaNotificationEvent = LunaNotificationEvent.create(
4250
LunaNotificationStatus.APPLICATION_GUEST_SUCCESS,
4351
exam.getUserId(), exam.getId());

src/main/java/life/mosu/mosuserver/global/exception/ErrorCode.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ public enum ErrorCode {
168168

169169
// ID 찾기 관련
170170
NOT_FOUND_LOGIN_ID(HttpStatus.NOT_FOUND, "해당 아이디를 찾을 수 없습니다.", CriticalLevel.LOW),
171+
KAKAO_ACCOUNT_DUPLICATED(HttpStatus.CONFLICT, "카카오로 가입한 사용자입니다", CriticalLevel.LOW),
171172

172173
//결제 API 실패
173174
PAYMENT_API_ERROR(HttpStatus.BAD_REQUEST, "결제 API 호출에 실패하였습니다.", CriticalLevel.CRITICAL),

src/main/java/life/mosu/mosuserver/presentation/inquiry/dto/InquiryAnswerRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public InquiryAnswerJpaEntity toEntity(Long postId, UserJpaEntity user) {
2121
.title(title)
2222
.content(content)
2323
.userId(user.getId())
24-
.author(user.getName())
24+
.author("관리자")
2525
.build();
2626
}
2727
}

src/test/java/life/mosu/mosuserver/FaqServiceTest.java

Lines changed: 0 additions & 57 deletions
This file was deleted.

0 commit comments

Comments
 (0)