Skip to content
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

RAC-257 feat : 결제 기능 추가 및 리팩토링" #89

Merged
merged 1 commit into from
Jan 7, 2024

Conversation

ywj9811
Copy link
Member

@ywj9811 ywj9811 commented Jan 6, 2024

🦝 PR 요약

기본 결제 기능 추가 및 리팩토링

✨ PR 상세 내용

결제 관련 추가적인 부분은 다음 브랜치에서 작업하도록 하겠습니다!
Payment테이블에 대한 수정이 생기면서 여러 테이블에 모두 영향을 끼치게 되었습니다..

변경된 부분

  • 우선, DB가 변경된 부분 -> 노션에 DB 테이블이 올라와 있으니 한번 참고 부탁드립니다! (크게는 Salary와 Payment위주로 보시면 됩니다)
    참고로, Salary에 accountNumber, accountHolder, bank가 추가되었습니다. 그리고 totalAmount가 추가되어 총 정산 금액이 저장되고 있습니다.
    Mentoring에 Pay가 삭제되었습니다. (필요가 없다고 생각했습니다)
  • Salary에 SalaryStatus가 아닌 그냥 TRUE,FALSE로 변경되었습니다. (SalaryStatus는 admin에서 조회시 처리)
  • mentoirng과 payment를 1:1 관계로 연결하여 각 멘토링 건당 결제로 처리되어 Payment를 가지는 Salary가 해당 결제를 통해 정산을 진행하고 있습니다.
  • 매달 정산일 새로운 Salary가 생성되도록 하였으며 Senior가 가입할때도 해당 달의 Salary가 생성됩니다.
  • Done으로 처리되는 경우 Salary의 totalAmount가 올라갑니다. (현재는 20000원 고정)
  • Payment는 로직에 맞춰 크게 변경되었습니다.
  • Account가 생성되거나 변경되는 순간 이번달 Salary의 Account 관련 컬럼도 함께 업데이트 되도록 했습니다.

🚨 주의 사항

Payment는 아직 더 다듬을 생각입니다!
많은 부분에서 수정이 생겼으니 기존의 로직과 충돌이 발생하지는 않는지 세세한 확인이 필요합니다!
또한 많은 로직이 변경되어 해당 부분에 대한 확인 및 물어보시면 되겠습니다!
테스트는 모두 진행을 하였지만 문제가 있는 부분이 있다면 빠른 피드백 바랍니다!

실수로 머지했다가 revert하고 다시 revert하는 pr을 올립니다....ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

✅ 체크 리스트

  • 리뷰어 설정했나요?
  • Label 설정했나요?
  • 제목 양식 맞췄나요? (ex. RAC-1 feat: 기능 추가)
  • 변경 사항에 대한 테스트 진행했나요?

@ywj9811 ywj9811 added ✨ Feature 새로운 기능 추가 🛠️ Refactor 리팩토링 ✅ Test 테스트 코드 작성 labels Jan 6, 2024
@ywj9811 ywj9811 requested a review from ay-eonii January 6, 2024 20:35
@ywj9811 ywj9811 self-assigned this Jan 6, 2024
Comment on lines +54 to +59
List<SalaryInfo> salaryInfos = seniors.stream()
.map(senior -> {
Salary salary = salaryGetService.bySenior(senior.senior());
return getSalaryInfo(senior.senior(), salary);
})
.toList();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

public Salary bySenior(Senior senior) {
    LocalDate salaryDate = SalaryUtil.getSalaryDate();
    return salaryRepository.findBySeniorAndSalaryDate(senior, salaryDate).orElseThrow(SalaryNotFoundException::new);
}

정산정보를 현재의 salaryDate 를 기준으로 가져오던데, 이러면 과거의 정산 정보는 못 보지 않나요?
그리고 완료된 항목만 노출해야 할 것 같아요!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

    @GetMapping("/salary")
    @Operation(summary = "[관리자] 정산 목록 조회", description = "한 달 기준으로 정산 목록을 조회합니다. 기준일은 [11일 ~ 내월 10일]입니다.")
    public ResponseDto<SalaryManageResponse> getSalaries(@RequestParam(required = false) Integer page,
                                                         @RequestParam(required = false) String search) {
        SalaryManageResponse salaries = salaryManageUseCase.getSalaries(page, search);
        return ResponseDto.create(ADMIN_FIND.getCode(), GET_LIST.getMessage(), salaries);
    }

컨트롤러에 이렇게 나와있어서 맞춰서 했었는데 저도 이 부분에 대해서는 논의를 해보려고 했어요!
일단 이 부분은 방식에 대해서 추가로 논의하는게 어떨까요? 관리자 부분은 후순위이다 보니

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 제가 이후에 로직을 수정하고 설명은 수정을 안 했네요 ㅜㅜ

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

멘토링을 취소 또는 거절하는 경우에 payment 변경 로직이 필요할 것 같습니닷..

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이부분은 환불 로직을 추가하면서 하려고 합니다!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다!

@ywj9811 ywj9811 requested a review from ay-eonii January 7, 2024 12:34
Copy link
Collaborator

@ay-eonii ay-eonii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그렇다면 문제는 없어보여용ㅎㅎ

Comment on lines +54 to +59
List<SalaryInfo> salaryInfos = seniors.stream()
.map(senior -> {
Salary salary = salaryGetService.bySenior(senior.senior());
return getSalaryInfo(senior.senior(), salary);
})
.toList();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

아하 제가 이후에 로직을 수정하고 설명은 수정을 안 했네요 ㅜㅜ

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다!

@ywj9811 ywj9811 merged commit 1c47a51 into develop Jan 7, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 새로운 기능 추가 🛠️ Refactor 리팩토링 ✅ Test 테스트 코드 작성
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants