Skip to content

Commit

Permalink
Merge pull request #312 from WE-ARE-RACCOONS/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
ywj9811 authored Aug 17, 2024
2 parents 9bea925 + 37d2ca8 commit b72346f
Show file tree
Hide file tree
Showing 60 changed files with 657 additions and 492 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/CI-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@ jobs:
- name: Create application.yml
run: |
echo "${{env.APPLICATION}}" > ./src/main/resources/application.yml
- name: Create resources directory
run: mkdir -p ./src/main/resources ./src/test/resources

- name: Create application-test.yml
run: |
echo "${{env.APPLICATION_TEST}}" > ./src/test/resources/application-test.yml
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ${{ env.working-directory }}
Expand Down
7 changes: 7 additions & 0 deletions .github/workflows/CI-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,13 @@ jobs:
run: |
echo "${{env.APPLICATION}}" > ./src/main/resources/application.yml
- name: Create resources directory
run: mkdir -p ./src/main/resources ./src/test/resources

- name: Create application-test.yml
run: |
echo "${{env.APPLICATION_TEST}}" > ./src/test/resources/application-test.yml
- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ${{ env.working-directory }}
Expand Down
2 changes: 2 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ dependencies {
testImplementation 'org.springframework.security:spring-security-test'
testCompileOnly 'org.springframework.security:spring-security-test'
testAnnotationProcessor 'org.springframework.security:spring-security-test'
//test
testRuntimeOnly 'com.h2database:h2'

// https://mvnrepository.com/artifact/com.slack.api/slack-api-client
// 슬랙 api 추가
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.postgraduate.admin.application.dto.res;

import com.postgraduate.domain.mentoring.domain.entity.Mentoring;
import com.postgraduate.domain.payment.domain.entity.Payment;

import java.util.Optional;

public record PaymentWithMentoringQuery(Payment payment, Optional<Mentoring> mentoring) {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.postgraduate.admin.application.dto.res;

import com.postgraduate.domain.salary.domain.entity.Salary;
import com.postgraduate.domain.wish.domain.entity.Wish;

import java.util.Optional;

public record SeniorInfoQuery(Salary salary, Optional<Wish> wish){}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.Optional;

import static com.postgraduate.domain.mentoring.domain.entity.constant.TermUnit.SHORT;

@RequiredArgsConstructor
Expand Down Expand Up @@ -57,17 +59,21 @@ public UserInfo mapToUserInfo(Wish wish) {
isSenior
);
}


public SeniorInfo mapToSeniorInfo(Senior senior, int totalAmount, Boolean isUser) {
public SeniorInfo mapToSeniorInfo(SeniorInfoQuery query) {
Salary salary = query.salary();
Optional<Wish> wish = query.wish();
Senior senior = salary.getSenior();
User user = senior.getUser();
return new SeniorInfo(
senior.getSeniorId(),
user.getNickName(),
user.getPhoneNumber(),
senior.getStatus(),
totalAmount,
salary.getTotalAmount(),
user.getMarketingReceive(),
isUser
wish.isPresent()
);
}

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class AdminBatchUseCase {

public void startSalaryBatch() {
try {
jobSchedulerConfig.launchSalaryJob();
jobSchedulerConfig.launchSalaryJobWithAdmin();
} catch (Exception e) {
log.error("Create Salary Batch Exception : {}", e.getStackTrace());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.postgraduate.admin.application.dto.res.UserMentoringInfo;
import com.postgraduate.admin.application.dto.res.MentoringInfo;
import com.postgraduate.admin.application.mapper.AdminMapper;
import com.postgraduate.admin.domain.service.*;
import com.postgraduate.domain.mentoring.domain.entity.Mentoring;
import com.postgraduate.domain.mentoring.domain.service.MentoringGetService;
import com.postgraduate.domain.mentoring.domain.service.MentoringUpdateService;
Expand All @@ -28,19 +29,17 @@
@Transactional
@RequiredArgsConstructor
public class AdminMentoringUseCase {
private final MentoringGetService mentoringGetService;
private final MentoringUpdateService mentoringUpdateService;
private final SeniorGetService seniorGetService;
private final UserGetService userGetService;
private final PaymentManageUseCase paymentManageUseCase;
private final SalaryGetService salaryGetService;
private final SalaryUpdateService salaryUpdateService;
private final AdminSeniorService adminSeniorService;
private final AdminMentoringService adminMentoringService;
private final AdminUserService adminUserService;
private final AdminSalaryService adminSalaryService;
private final AdminMapper adminMapper;

@Transactional(readOnly = true)
public MentoringManageResponse seniorMentorings(Long seniorId) {
Senior senior = seniorGetService.bySeniorId(seniorId);
List<Mentoring> mentorings = mentoringGetService.bySeniorId(seniorId);
Senior senior = adminSeniorService.bySeniorId(seniorId);
List<Mentoring> mentorings = adminMentoringService.allBySeniorId(seniorId);
List<MentoringInfo> mentoringInfos = mentorings.stream()
.map(adminMapper::mapToMentoringInfoWithSenior)
.toList();
Expand All @@ -50,8 +49,8 @@ public MentoringManageResponse seniorMentorings(Long seniorId) {

@Transactional(readOnly = true)
public MentoringManageResponse userMentoringInfos(Long userId) {
User user = userGetService.byUserId(userId);
List<Mentoring> mentorings = mentoringGetService.byUserId(userId);
User user = adminUserService.userByUserId(userId);
List<Mentoring> mentorings = adminMentoringService.allByUserId(userId);
List<MentoringInfo> mentoringInfos = mentorings.stream()
.map(adminMapper::mapToMentoringInfoWithUser)
.toList();
Expand All @@ -60,14 +59,10 @@ public MentoringManageResponse userMentoringInfos(Long userId) {
}

public void refundMentoring(User user, Long mentoringId) {
Mentoring mentoring = mentoringGetService.byMentoringId(mentoringId);
Mentoring mentoring = adminMentoringService.updateCancelWithMentoringId(mentoringId);
Payment payment = mentoring.getPayment();
paymentManageUseCase.refundPayByAdmin(user, payment.getPaymentId());
if (mentoring.getStatus() == DONE) {
Senior senior = mentoring.getSenior();
Salary salary = salaryGetService.bySenior(senior);
salaryUpdateService.minusTotalAmount(salary, mentoring.calculateForSenior());
}
mentoringUpdateService.updateCancel(mentoring);
if (mentoring.getStatus() == DONE)
adminSalaryService.minusTotalAmount(mentoring);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,65 +2,59 @@

import com.postgraduate.admin.application.dto.res.MentoringWithPaymentResponse;
import com.postgraduate.admin.application.dto.res.PaymentInfo;
import com.postgraduate.admin.application.dto.res.PaymentWithMentoringQuery;
import com.postgraduate.admin.application.mapper.AdminMapper;
import com.postgraduate.admin.domain.service.AdminMentoringService;
import com.postgraduate.admin.domain.service.AdminPaymentService;
import com.postgraduate.admin.domain.service.AdminSalaryService;
import com.postgraduate.domain.mentoring.domain.entity.Mentoring;
import com.postgraduate.domain.mentoring.domain.service.MentoringGetService;
import com.postgraduate.domain.mentoring.domain.service.MentoringUpdateService;
import com.postgraduate.domain.mentoring.domain.entity.constant.Status;
import com.postgraduate.domain.payment.application.usecase.PaymentManageUseCase;
import com.postgraduate.domain.payment.domain.entity.Payment;
import com.postgraduate.domain.payment.domain.service.PaymentGetService;
import com.postgraduate.domain.salary.domain.entity.Salary;
import com.postgraduate.domain.salary.domain.service.SalaryGetService;
import com.postgraduate.domain.salary.domain.service.SalaryUpdateService;
import com.postgraduate.domain.senior.domain.entity.Senior;
import com.postgraduate.domain.user.user.domain.entity.User;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.DONE;

@Service
@Transactional
@RequiredArgsConstructor
public class AdminPaymentUseCase {
private final PaymentGetService paymentGetService;
private final MentoringGetService mentoringGetService;
private final MentoringUpdateService mentoringUpdateService;
private final PaymentManageUseCase paymentManageUseCase;
private final SalaryGetService salaryGetService;
private final SalaryUpdateService salaryUpdateService;
private final AdminSalaryService adminSalaryService;
private final AdminPaymentService adminPaymentService;
private final AdminMentoringService adminMentoringService;
private final AdminMapper adminMapper;

@Transactional(readOnly = true)
public List<PaymentInfo> paymentInfos() {
List<Payment> all = paymentGetService.all();
List<PaymentWithMentoringQuery> all = adminPaymentService.allPayments();
return all.stream()
.map(payment -> {
Mentoring mentoring = mentoringGetService.byPaymentWithNull(payment);
if (mentoring == null)
return adminMapper.mapToPaymentInfo(payment);
return adminMapper.mapToPaymentInfo(payment, mentoring);
.map(pm -> {
if (pm.mentoring().isEmpty())
return adminMapper.mapToPaymentInfo(pm.payment());
return adminMapper.mapToPaymentInfo(pm.payment(), pm.mentoring().get());
})
.toList();
}

@Transactional(readOnly = true)
public MentoringWithPaymentResponse paymentMentoringInfo(Long paymentId) {
Payment payment = paymentGetService.byId(paymentId);
Mentoring mentoring = mentoringGetService.byPayment(payment);
Mentoring mentoring = adminMentoringService.byPaymentId(paymentId);
return adminMapper.mapToMentoringWithPaymentResponse(mentoring);
}

public void refundPayment(User user, Long paymentId) {
paymentManageUseCase.refundPayByAdmin(user, paymentId);
Payment payment = paymentGetService.byId(paymentId);
Mentoring mentoring = mentoringGetService.byPaymentWithNull(payment);
if (mentoring != null) {
mentoringUpdateService.updateCancel(mentoring);
Senior senior = mentoring.getSenior();
Salary salary = salaryGetService.bySenior(senior);
salaryUpdateService.minusTotalAmount(salary, mentoring.calculateForSenior());
try {
Mentoring mentoring = adminMentoringService.updateCancelWithPaymentId(paymentId);
if (mentoring.getStatus() == DONE)
adminSalaryService.minusTotalAmount(mentoring);
} catch (Exception ex) {
// todo: 환불 이후 예외 발생시 처리
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,9 @@
import com.postgraduate.admin.application.dto.res.SalaryInfoWithOutId;
import com.postgraduate.admin.application.dto.res.UnSettledSalaryInfo;
import com.postgraduate.admin.application.mapper.AdminMapper;
import com.postgraduate.admin.domain.service.AdminSalaryService;
import com.postgraduate.domain.salary.domain.entity.Salary;
import com.postgraduate.domain.salary.domain.entity.SalaryAccount;
import com.postgraduate.domain.salary.domain.service.SalaryGetService;
import com.postgraduate.domain.salary.domain.service.SalaryUpdateService;
import com.postgraduate.domain.senior.domain.entity.Senior;
import com.postgraduate.domain.senior.domain.service.SeniorGetService;
import com.postgraduate.global.config.security.util.EncryptorUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
Expand All @@ -20,18 +17,16 @@
@Transactional
@RequiredArgsConstructor
public class AdminSalaryUseCase {
private final SeniorGetService seniorGetService;
private final SalaryGetService salaryGetService;
private final SalaryUpdateService salaryUpdateService;
private final EncryptorUtils encryptorUtils;
private final AdminSalaryService adminSalaryService;
private final AdminMapper adminMapper;

@Transactional(readOnly = true)
public List<SalaryInfoWithOutId> salaryInfos() {
List<Salary> all = salaryGetService.findAll();
List<Salary> all = adminSalaryService.findAllDoneSalary();
return all.stream()
.map(salary -> {
if (salary.getSenior() == null)
if (salary.getAccount() == null)
return adminMapper.mapToSalaryResponse(salary);
SalaryAccount account = salary.getAccount();
String accountNumber = encryptorUtils.decryptData(account.getAccountNumber());
Expand All @@ -42,23 +37,21 @@ public List<SalaryInfoWithOutId> salaryInfos() {

@Transactional(readOnly = true)
public SalaryInfoWithOutId seniorSalary(Long seniorId) {
Senior senior = seniorGetService.bySeniorId(seniorId);
Salary salary = salaryGetService.bySenior(senior);
Salary salary = adminSalaryService.findBySeniorId(seniorId);
SalaryAccount account = salary.getAccount();
if (account == null)
return adminMapper.mapToSalaryResponse(senior, salary);
return adminMapper.mapToSalaryResponse(salary.getSenior(), salary);
String accountNumber = encryptorUtils.decryptData(account.getAccountNumber());
return adminMapper.mapToSalaryResponse(senior, accountNumber, salary);
return adminMapper.mapToSalaryResponse(salary.getSenior(), accountNumber, salary);
}

public void salaryDone(Long salaryId) {
Salary salary = salaryGetService.bySalaryId(salaryId);
salaryUpdateService.updateDone(salary);
adminSalaryService.updateDone(salaryId);
}

@Transactional(readOnly = true)
public List<UnSettledSalaryInfo> unSettledSalaryInfo() {
List<Salary> salaries = salaryGetService.allByNotDone();
List<Salary> salaries = adminSalaryService.findAllByNotDone();
return salaries.stream()
.map(salary -> {
SalaryAccount account = salary.getAccount();
Expand Down
Loading

0 comments on commit b72346f

Please sign in to comment.