-
Notifications
You must be signed in to change notification settings - Fork 1
[Feature] 카카오 Gift Biz 기프티콘 발송 및 팅 거래 기록 추가 #80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Sehi55
wants to merge
49
commits into
develop
Choose a base branch
from
feat/gifticon
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
49 commits
Select commit
Hold shift + click to select a range
f4aa92f
chore: 데이터베이스 마이그레이션 V21~V27 복원
Sehi55 4d96c4c
feat: Gift Biz 상품 동기화 및 목록 조회 추가
Sehi55 ba7c467
feat: 메시지 요청에 선택 기프티콘 연결
Sehi55 eb775a1
feat: Gift Biz 템플릿 토큰 관리 추가
Sehi55 af187c6
security: Gift Biz 템플릿 토큰 암호화
Sehi55 11cba0f
feat: 메시지 수락 후 Gift Biz 선물 주문 요청
Sehi55 d0de5c8
feat: 기프티콘 요청 유상 팅 보류 처리
Sehi55 79a8a26
feat: 관리자 기프티콘 목록 검색 지원
Sehi55 fa4a159
feat: 관리자 기프티콘 관리 화면 추가
Sehi55 7e96c0b
feat: 관리자 기프티콘 수동 동기화 추가
Sehi55 fbbe044
feat: 팅 거래 원장 및 혼합 결제 기록 추가
Sehi55 0e9c075
refactor: 기프티콘 주문 토큰 중복 저장 제거
Sehi55 331df9a
feat: 기프티콘 발신자명에 프로필 닉네임 추가
Sehi55 9b5154d
fix: 기프티콘 연동 입력 검증 강화
Sehi55 b9fd218
refactor: 기프티콘 상태 설명 추가
Sehi55 3215b8d
feat: 기프티콘 원화 판매가 정책 추가
Sehi55 cf6b319
refactor: 기프티콘 주문 시도 트랜잭션 분리
Sehi55 c1982c3
fix: 0원 팅 거래 원장 생성 방지
Sehi55 75eb538
feat: 토스페이먼츠 결제 어댑터 추가
Sehi55 0ff4a84
feat: 기프티콘 결제 도메인 모델 추가
Sehi55 fe1a0e5
feat: 기프티콘 결제 상태 전이 추가
Sehi55 16d2b4a
refactor: 메시지 기프티콘을 원화 결제와 연결
Sehi55 87b106b
feat: 결제 완료 후 기프티콘 메시지 자동 생성
Sehi55 31be04e
feat: 기프티콘 결제 API 추가
Sehi55 4e8cb6e
feat: 메시지 거절 후 결제 환불 처리
Sehi55 c46725a
feat: 결제 메시지 생성 재시도 추가
Sehi55 b138cb9
feat: 미사용 결제 자동 환불 재시도 추가
Sehi55 33a21e7
feat: 결제 관리자 조작 감사 유형 추가
Sehi55 a16cdbb
feat: 관리자 결제 이상 사유 응답 정의
Sehi55 268bd3a
feat: 관리자 이상 결제 처리 서비스 추가
Sehi55 58e4a07
feat: 관리자 이상 결제 처리 API 추가
Sehi55 1c79680
test: 관리자 이상 결제 처리 검증
Sehi55 0f4757a
feat: 관리자 결제 처리 화면 구성
Sehi55 83db01a
feat: 관리자 결제 처리 화면 동작 추가
Sehi55 3efefbc
fix: 활성 채팅 멤버 중복 데이터 정리
Sehi55 3b44b78
fix: 원장 제약 추가 전 0원 거래 정리
Sehi55 b678708
feat: 채팅 기프티콘 주문 모델 추가
Sehi55 fe66c8e
feat: 채팅 기프티콘 결제 API 추가
Sehi55 d37db1e
feat: 기프티콘 접수 후 채팅 메시지 생성
Sehi55 a8f34b8
feat: 채팅 기프티콘 실패 환불 알림 추가
Sehi55 7fbb9bb
fix: 채팅 결제 자동 처리 대상 분리
Sehi55 5759090
fix: 서버 전용 채팅 타입 전송 차단
Sehi55 0496acd
test: 채팅 기프티콘 결제 준비 검증
Sehi55 781ac48
test: 채팅 기프티콘 주문 실패 검증
Sehi55 793fb07
test: 기프티콘 채팅 메시지 완료 검증
Sehi55 6af43fc
test: 기프티콘 실패 발신자 알림 검증
Sehi55 6d56603
test: 채팅 결제 스케줄러 제외 검증
Sehi55 6674213
merge: develop 브랜치 충돌 해결
Sehi55 b35696c
fix: 일반 메세지 요청 생성자 복원
Sehi55 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
19 changes: 19 additions & 0 deletions
19
...abom_server/manabom/application/admin/dto/request/AdminConfigureGifticonTokenRequest.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,19 @@ | ||
| package mannabom_server.manabom.application.admin.dto.request; | ||
|
|
||
| import jakarta.validation.constraints.NotBlank; | ||
| import jakarta.validation.constraints.Size; | ||
| import lombok.Getter; | ||
| import lombok.NoArgsConstructor; | ||
|
|
||
| @Getter | ||
| @NoArgsConstructor | ||
| public class AdminConfigureGifticonTokenRequest { | ||
|
|
||
| @NotBlank(message = "templateToken은 필수입니다.") | ||
| @Size(max = 512, message = "templateToken은 512자를 초과할 수 없습니다.") | ||
| private String templateToken; | ||
|
|
||
| @NotBlank(message = "reason은 필수입니다.") | ||
| @Size(max = 500, message = "reason은 500자를 초과할 수 없습니다.") | ||
| private String reason; | ||
| } | ||
11 changes: 11 additions & 0 deletions
11
...nabom_server/manabom/application/admin/dto/request/AdminGifticonPaymentActionRequest.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| package mannabom_server.manabom.application.admin.dto.request; | ||
|
|
||
| import jakarta.validation.constraints.NotBlank; | ||
| import jakarta.validation.constraints.Size; | ||
|
|
||
| public record AdminGifticonPaymentActionRequest( | ||
| @NotBlank(message = "reason은 필수입니다.") | ||
| @Size(max = 500, message = "reason은 500자를 초과할 수 없습니다.") | ||
| String reason | ||
| ) { | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 12 additions & 0 deletions
12
...nabom_server/manabom/application/admin/dto/response/AdminGifticonPaymentPageResponse.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| package mannabom_server.manabom.application.admin.dto.response; | ||
|
|
||
| import java.util.List; | ||
|
|
||
| public record AdminGifticonPaymentPageResponse( | ||
| List<AdminGifticonPaymentResponse> contents, | ||
| long totalCount, | ||
| int totalPages, | ||
| int page, | ||
| int size | ||
| ) { | ||
| } |
45 changes: 45 additions & 0 deletions
45
.../mannabom_server/manabom/application/admin/dto/response/AdminGifticonPaymentResponse.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,45 @@ | ||
| package mannabom_server.manabom.application.admin.dto.response; | ||
|
|
||
| import mannabom_server.manabom.domain.gifticon.enums.GifticonMessageCreationStatus; | ||
| import mannabom_server.manabom.domain.gifticon.enums.GifticonPaymentStatus; | ||
| import mannabom_server.manabom.domain.messageRequest.enums.MessageRequestStatus; | ||
|
|
||
| import java.time.Instant; | ||
| import java.util.List; | ||
|
|
||
| public record AdminGifticonPaymentResponse( | ||
| Long gifticonPaymentId, | ||
| String orderId, | ||
| String maskedPaymentKey, | ||
| Long userId, | ||
| Long targetProfileId, | ||
| Long gifticonProductId, | ||
| String productName, | ||
| int amount, | ||
| GifticonPaymentStatus paymentStatus, | ||
| String paymentStatusDescription, | ||
| GifticonMessageCreationStatus messageCreationStatus, | ||
| String messageCreationStatusDescription, | ||
| int messageCreationAttemptCount, | ||
| Instant lastMessageCreationAttemptAt, | ||
| String messageCreationFailureReason, | ||
| Long messageRequestId, | ||
| MessageRequestStatus messageRequestStatus, | ||
| int refundAttemptCount, | ||
| Instant lastRefundAttemptAt, | ||
| String paymentFailureReason, | ||
| Instant approvedAt, | ||
| Instant refundedAt, | ||
| Instant createdAt, | ||
| Instant updatedAt, | ||
| List<AttentionReason> attentionReasons, | ||
| String tossPaymentStatus, | ||
| Boolean tossStatusMismatch, | ||
| String tossVerificationError | ||
| ) { | ||
| public record AttentionReason( | ||
| String code, | ||
| String description | ||
| ) { | ||
| } | ||
| } |
35 changes: 35 additions & 0 deletions
35
.../mannabom_server/manabom/application/admin/dto/response/AdminGifticonProductResponse.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| package mannabom_server.manabom.application.admin.dto.response; | ||
|
|
||
| import mannabom_server.manabom.domain.gifticon.entity.GifticonProduct; | ||
|
|
||
| import java.time.Instant; | ||
|
|
||
| public record AdminGifticonProductResponse( | ||
| Long gifticonProductId, | ||
| String templateTraceId, | ||
| String templateName, | ||
| String productName, | ||
| String brandName, | ||
| String productThumbnailImageUrl, | ||
| int productPrice, | ||
| int salePrice, | ||
| boolean available, | ||
| boolean templateTokenConfigured, | ||
| Instant lastSyncedAt | ||
| ) { | ||
| public static AdminGifticonProductResponse from(GifticonProduct product) { | ||
| return new AdminGifticonProductResponse( | ||
| product.getGifticonProductId(), | ||
| String.valueOf(product.getTemplateTraceId()), | ||
| product.getTemplateName(), | ||
| product.getProductName(), | ||
| product.getBrandName(), | ||
| product.getProductThumbnailImageUrl(), | ||
| product.getProductPrice(), | ||
| product.getSalePrice(), | ||
| product.isAvailable(), | ||
| product.hasTemplateToken(), | ||
| product.getLastSyncedAt() | ||
| ); | ||
| } | ||
| } |
10 changes: 10 additions & 0 deletions
10
...abom_server/manabom/application/admin/dto/response/AdminGifticonProductSliceResponse.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| package mannabom_server.manabom.application.admin.dto.response; | ||
|
|
||
| import java.util.List; | ||
|
|
||
| public record AdminGifticonProductSliceResponse( | ||
| List<AdminGifticonProductResponse> contents, | ||
| Long nextCursor, | ||
| boolean hasNext | ||
| ) { | ||
| } |
9 changes: 9 additions & 0 deletions
9
...ava/mannabom_server/manabom/application/admin/dto/response/AdminGifticonSyncResponse.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| package mannabom_server.manabom.application.admin.dto.response; | ||
|
|
||
| import java.time.Instant; | ||
|
|
||
| public record AdminGifticonSyncResponse( | ||
| int synchronizedCount, | ||
| Instant synchronizedAt | ||
| ) { | ||
| } |
21 changes: 21 additions & 0 deletions
21
.../java/mannabom_server/manabom/application/admin/enums/GifticonPaymentAttentionReason.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,21 @@ | ||
| package mannabom_server.manabom.application.admin.enums; | ||
|
|
||
| public enum GifticonPaymentAttentionReason { | ||
| REFUND_FAILED("환불 요청이 실패하여 운영자 확인이 필요합니다."), | ||
| REFUND_PROCESSING_STALE("환불 처리가 제한 시간을 넘겨 멈춰 있습니다."), | ||
| REFUND_ATTEMPTS_EXHAUSTED("자동 환불 최대 시도 횟수를 소진했습니다."), | ||
| MESSAGE_CREATION_STALE("결제 후 메시지가 장시간 생성되지 않았습니다."), | ||
| MESSAGE_CREATION_FAILED_WITHOUT_REFUND("메시지 생성이 실패했지만 환불이 시작되지 않았습니다."), | ||
| PAID_WITHOUT_MESSAGE("결제는 완료됐지만 연결된 메시지 요청이 없습니다."), | ||
| TOSS_STATUS_MISMATCH("애플리케이션 결제 상태와 토스 결제 상태가 일치하지 않습니다."); | ||
|
|
||
| private final String description; | ||
|
|
||
| GifticonPaymentAttentionReason(String description) { | ||
| this.description = description; | ||
| } | ||
|
|
||
| public String getDescription() { | ||
| return description; | ||
| } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.