diff --git a/src/main/java/com/postgraduate/admin/application/mapper/AdminMapper.java b/src/main/java/com/postgraduate/admin/application/mapper/AdminMapper.java index 31d460db..2a0d1696 100644 --- a/src/main/java/com/postgraduate/admin/application/mapper/AdminMapper.java +++ b/src/main/java/com/postgraduate/admin/application/mapper/AdminMapper.java @@ -7,18 +7,24 @@ import com.postgraduate.domain.salary.domain.entity.SalaryAccount; import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import com.postgraduate.domain.wish.domain.entity.Wish; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; import static com.postgraduate.domain.mentoring.domain.entity.constant.TermUnit.SHORT; +@RequiredArgsConstructor +@Component +@Slf4j public class AdminMapper { - private AdminMapper() { - throw new IllegalStateException(); - } + private final UserUtils userUtils; - public static CertificationDetailsResponse mapToCertificationInfo(Senior senior) { + public CertificationDetailsResponse mapToCertificationInfo(Senior senior) { User user = senior.getUser(); Info info = senior.getInfo(); return new CertificationDetailsResponse( @@ -36,7 +42,7 @@ public static CertificationDetailsResponse mapToCertificationInfo(Senior senior) ); } - public static UserInfo mapToUserInfo(Wish wish) { + public UserInfo mapToUserInfo(Wish wish) { User user = wish.getUser(); Boolean isSenior = user.getRole() == Role.SENIOR; return new UserInfo( @@ -52,7 +58,7 @@ public static UserInfo mapToUserInfo(Wish wish) { ); } - public static SeniorInfo mapToSeniorInfo(Senior senior, int totalAmount, Boolean isUser) { + public SeniorInfo mapToSeniorInfo(Senior senior, int totalAmount, Boolean isUser) { User user = senior.getUser(); return new SeniorInfo( senior.getSeniorId(), @@ -65,21 +71,24 @@ public static SeniorInfo mapToSeniorInfo(Senior senior, int totalAmount, Boolean ); } - public static MentoringInfo mapToMentoringInfoWithSenior(Mentoring mentoring) { + public MentoringInfo mapToMentoringInfoWithUser(Mentoring mentoring) { + if (mentoring.getSenior() == null || mentoring.getSenior().getUser().isDelete()) { + return getMentoringInfo(mentoring, userUtils.getArchiveUser()); + } + Senior senior = mentoring.getSenior(); + return getMentoringInfo(mentoring, senior.getUser()); + } + + public MentoringInfo mapToMentoringInfoWithSenior(Mentoring mentoring) { + if (mentoring.getUser() == null || mentoring.getUser().isDelete()) { + return getMentoringInfo(mentoring, userUtils.getArchiveUser()); + } User user = mentoring.getUser(); - return new MentoringInfo( - mentoring.getMentoringId(), - mentoring.getStatus(), - user.getNickName(), - user.getPhoneNumber(), - mentoring.getCreatedAt(), - mentoring.getDate() - ); + return getMentoringInfo(mentoring, user); } - public static MentoringInfo mapToMentoringInfoWithUser(Mentoring mentoring) { - Senior senior = mentoring.getSenior(); - User user = senior.getUser(); + @NotNull + private MentoringInfo getMentoringInfo(Mentoring mentoring, User user) { return new MentoringInfo( mentoring.getMentoringId(), mentoring.getStatus(), @@ -90,14 +99,15 @@ public static MentoringInfo mapToMentoringInfoWithUser(Mentoring mentoring) { ); } - public static UserMentoringInfo mapToUserMentoringInfo(User user) { + + public UserMentoringInfo mapToUserMentoringInfo(User user) { return new UserMentoringInfo( user.getNickName(), user.getPhoneNumber() ); } - public static UserMentoringInfo mapToUserMentoringInfo(Senior senior) { + public UserMentoringInfo mapToUserMentoringInfo(Senior senior) { User user = senior.getUser(); return new UserMentoringInfo( user.getNickName(), @@ -105,25 +115,19 @@ public static UserMentoringInfo mapToUserMentoringInfo(Senior senior) { ); } - public static PaymentInfo mapToPaymentInfo(Mentoring mentoring) { - Payment payment = mentoring.getPayment(); - User user = mentoring.getUser(); - return new PaymentInfo( - payment.getPaymentId(), - mentoring.getMentoringId(), - user.getNickName(), - user.getPhoneNumber(), - payment.getPaidAt(), - payment.getPay(), - payment.getStatus() - ); + public PaymentInfo mapToPaymentInfo(Payment payment, Mentoring mentoring) { + if (payment.getUser() == null) { + return getPaymentInfo(payment, mentoring.getMentoringId(), userUtils.getArchiveUser()); + } + User user = payment.getUser(); + return getPaymentInfo(payment, mentoring.getMentoringId(), user); } - public static PaymentInfo mapToPaymentInfo(Payment payment, Mentoring mentoring) { - User user = payment.getUser(); + @NotNull + private PaymentInfo getPaymentInfo(Payment payment, Long mentoring, User user) { return new PaymentInfo( payment.getPaymentId(), - mentoring.getMentoringId(), + mentoring, user.getNickName(), user.getPhoneNumber(), payment.getPaidAt(), @@ -132,20 +136,12 @@ public static PaymentInfo mapToPaymentInfo(Payment payment, Mentoring mentoring) ); } - public static PaymentInfo mapToPaymentInfo(Payment payment) { + public PaymentInfo mapToPaymentInfo(Payment payment) { User user = payment.getUser(); - return new PaymentInfo( - payment.getPaymentId(), - null, - user.getNickName(), - user.getPhoneNumber(), - payment.getPaidAt(), - payment.getPay(), - payment.getStatus() - ); + return getPaymentInfo(payment, null, user); } - public static SalaryInfoWithOutId mapToSalaryResponse(Senior senior, String accountNumber, Salary salary) { + public SalaryInfoWithOutId mapToSalaryResponse(Senior senior, String accountNumber, Salary salary) { User user = senior.getUser(); SalaryAccount account = salary.getAccount(); return new SalaryInfoWithOutId( @@ -159,7 +155,7 @@ public static SalaryInfoWithOutId mapToSalaryResponse(Senior senior, String acco ); } - public static SalaryInfoWithOutId mapToSalaryResponse(Senior senior, Salary salary) { + public SalaryInfoWithOutId mapToSalaryResponse(Senior senior, Salary salary) { User user = senior.getUser(); return new SalaryInfoWithOutId ( user.getNickName(), @@ -169,7 +165,18 @@ public static SalaryInfoWithOutId mapToSalaryResponse(Senior senior, Salary sala ); } - public static UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary) { + public SalaryInfoWithOutId mapToSalaryResponse(Salary salary) { + User user = userUtils.getArchiveUser(); + return new SalaryInfoWithOutId ( + user.getNickName(), + user.getPhoneNumber(), + salary.getTotalAmount(), + salary.getSalaryDoneDate() + ); + } + + + public UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary) { Senior senior = salary.getSenior(); User user = senior.getUser(); return new UnSettledSalaryInfo( @@ -181,7 +188,7 @@ public static UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary) { ); } - public static UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary, String accountNumber) { + public UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary, String accountNumber) { Senior senior = salary.getSenior(); User user = senior.getUser(); SalaryAccount account = salary.getAccount(); @@ -197,17 +204,36 @@ public static UnSettledSalaryInfo mapToUnSettledSalaryResponse(Salary salary, St ); } - public static MentoringWithPaymentResponse mapToMentoringWithPaymentResponse(Mentoring mentoring) { - User user = mentoring.getUser(); - Senior senior = mentoring.getSenior(); + public MentoringWithPaymentResponse mapToMentoringWithPaymentResponse(Mentoring mentoring) { + User user; + User senior; + if (mentoring.getUser() == null || mentoring.getUser().isDelete()) { + log.info("user is Null"); + user = userUtils.getArchiveUser(); + } + else { + user = mentoring.getUser(); + } + if (mentoring.getSenior().getUser() == null || mentoring.getSenior().getUser().isDelete()) { + log.info("senior is Null"); + senior = userUtils.getArchiveUser(); + } + else { + senior = mentoring.getSenior().getUser(); + } Payment payment = mentoring.getPayment(); + return getMentoringWithPaymentResponse(mentoring, user, senior, payment); + } + + @NotNull + private static MentoringWithPaymentResponse getMentoringWithPaymentResponse(Mentoring mentoring, User user, User senior, Payment payment) { return new MentoringWithPaymentResponse( mentoring.getMentoringId(), payment.getPaymentId(), user.getNickName(), user.getPhoneNumber(), - senior.getUser().getNickName(), - senior.getUser().getPhoneNumber(), + senior.getNickName(), + senior.getPhoneNumber(), mentoring.getDate(), mentoring.getTerm(), payment.getPay(), @@ -215,7 +241,7 @@ public static MentoringWithPaymentResponse mapToMentoringWithPaymentResponse(Men ); } - public static WishResponse mapToWishResponse(Wish wish) { + public WishResponse mapToWishResponse(Wish wish) { User user = wish.getUser(); return new WishResponse( wish.getWishId(), diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminAuthUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminAuthUseCase.java index 66d1c321..b0e20698 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminAuthUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminAuthUseCase.java @@ -2,7 +2,7 @@ import com.postgraduate.admin.application.dto.req.Login; import com.postgraduate.admin.domain.service.AuthGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminMentoringUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminMentoringUseCase.java index 5cd8bae8..28ef21c8 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminMentoringUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminMentoringUseCase.java @@ -14,15 +14,14 @@ 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.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; -import static com.postgraduate.admin.application.mapper.AdminMapper.*; import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.DONE; @Service @@ -36,15 +35,16 @@ public class AdminMentoringUseCase { private final PaymentManageUseCase paymentManageUseCase; private final SalaryGetService salaryGetService; private final SalaryUpdateService salaryUpdateService; + private final AdminMapper adminMapper; @Transactional(readOnly = true) public MentoringManageResponse seniorMentorings(Long seniorId) { Senior senior = seniorGetService.bySeniorId(seniorId); List mentorings = mentoringGetService.bySeniorId(seniorId); List mentoringInfos = mentorings.stream() - .map(AdminMapper::mapToMentoringInfoWithSenior) + .map(adminMapper::mapToMentoringInfoWithSenior) .toList(); - UserMentoringInfo seniorInfo = mapToUserMentoringInfo(senior); + UserMentoringInfo seniorInfo = adminMapper.mapToUserMentoringInfo(senior); return new MentoringManageResponse(mentoringInfos, seniorInfo); } @@ -53,9 +53,9 @@ public MentoringManageResponse userMentoringInfos(Long userId) { User user = userGetService.byUserId(userId); List mentorings = mentoringGetService.byUserId(userId); List mentoringInfos = mentorings.stream() - .map(AdminMapper::mapToMentoringInfoWithUser) + .map(adminMapper::mapToMentoringInfoWithUser) .toList(); - UserMentoringInfo userInfo = mapToUserMentoringInfo(user); + UserMentoringInfo userInfo = adminMapper.mapToUserMentoringInfo(user); return new MentoringManageResponse(mentoringInfos, userInfo); } diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminPaymentUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminPaymentUseCase.java index 72dfd50d..82a92e27 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminPaymentUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminPaymentUseCase.java @@ -2,6 +2,7 @@ import com.postgraduate.admin.application.dto.res.MentoringWithPaymentResponse; import com.postgraduate.admin.application.dto.res.PaymentInfo; +import com.postgraduate.admin.application.mapper.AdminMapper; import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.service.MentoringGetService; import com.postgraduate.domain.mentoring.domain.service.MentoringUpdateService; @@ -12,16 +13,13 @@ 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.domain.entity.User; +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.admin.application.mapper.AdminMapper.mapToMentoringWithPaymentResponse; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToPaymentInfo; - @Service @Transactional @RequiredArgsConstructor @@ -32,6 +30,7 @@ public class AdminPaymentUseCase { private final PaymentManageUseCase paymentManageUseCase; private final SalaryGetService salaryGetService; private final SalaryUpdateService salaryUpdateService; + private final AdminMapper adminMapper; @Transactional(readOnly = true) public List paymentInfos() { @@ -40,8 +39,8 @@ public List paymentInfos() { .map(payment -> { Mentoring mentoring = mentoringGetService.byPaymentWithNull(payment); if (mentoring == null) - return mapToPaymentInfo(payment); - return mapToPaymentInfo(payment, mentoring); + return adminMapper.mapToPaymentInfo(payment); + return adminMapper.mapToPaymentInfo(payment, mentoring); }) .toList(); } @@ -50,7 +49,7 @@ public List paymentInfos() { public MentoringWithPaymentResponse paymentMentoringInfo(Long paymentId) { Payment payment = paymentGetService.byId(paymentId); Mentoring mentoring = mentoringGetService.byPayment(payment); - return mapToMentoringWithPaymentResponse(mentoring); + return adminMapper.mapToMentoringWithPaymentResponse(mentoring); } public void refundPayment(User user, Long paymentId) { diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminSalaryUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminSalaryUseCase.java index 1ab82539..9e36c510 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminSalaryUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminSalaryUseCase.java @@ -2,6 +2,7 @@ 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.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.entity.SalaryAccount; import com.postgraduate.domain.salary.domain.service.SalaryGetService; @@ -15,9 +16,6 @@ import java.util.List; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToSalaryResponse; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToUnSettledSalaryResponse; - @Service @Transactional @RequiredArgsConstructor @@ -26,17 +24,18 @@ public class AdminSalaryUseCase { private final SalaryGetService salaryGetService; private final SalaryUpdateService salaryUpdateService; private final EncryptorUtils encryptorUtils; + private final AdminMapper adminMapper; @Transactional(readOnly = true) public List salaryInfos() { List all = salaryGetService.findAll(); return all.stream() .map(salary -> { + if (salary.getSenior() == null) + return adminMapper.mapToSalaryResponse(salary); SalaryAccount account = salary.getAccount(); - if (account == null) - return mapToSalaryResponse(salary.getSenior(), salary); String accountNumber = encryptorUtils.decryptData(account.getAccountNumber()); - return mapToSalaryResponse(salary.getSenior(), accountNumber, salary); + return adminMapper.mapToSalaryResponse(salary.getSenior(), accountNumber, salary); }) .toList(); } @@ -47,9 +46,9 @@ public SalaryInfoWithOutId seniorSalary(Long seniorId) { Salary salary = salaryGetService.bySenior(senior); SalaryAccount account = salary.getAccount(); if (account == null) - return mapToSalaryResponse(senior, salary); + return adminMapper.mapToSalaryResponse(senior, salary); String accountNumber = encryptorUtils.decryptData(account.getAccountNumber()); - return mapToSalaryResponse(senior, accountNumber, salary); + return adminMapper.mapToSalaryResponse(senior, accountNumber, salary); } public void salaryDone(Long salaryId) { @@ -64,9 +63,9 @@ public List unSettledSalaryInfo() { .map(salary -> { SalaryAccount account = salary.getAccount(); if (account == null) - return mapToUnSettledSalaryResponse(salary); + return adminMapper.mapToUnSettledSalaryResponse(salary); String accountNumber = encryptorUtils.decryptData(account.getAccountNumber()); - return mapToUnSettledSalaryResponse(salary, accountNumber); + return adminMapper.mapToUnSettledSalaryResponse(salary, accountNumber); }) .toList(); } diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminSeniorUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminSeniorUseCase.java index 8b2791bb..a3b9dac9 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminSeniorUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminSeniorUseCase.java @@ -2,6 +2,7 @@ import com.postgraduate.admin.application.dto.res.CertificationDetailsResponse; import com.postgraduate.admin.application.dto.res.SeniorInfo; +import com.postgraduate.admin.application.mapper.AdminMapper; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.service.SalaryGetService; import com.postgraduate.domain.senior.domain.entity.Senior; @@ -18,8 +19,6 @@ import java.util.List; import java.util.Optional; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToCertificationInfo; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToSeniorInfo; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; @Service @@ -31,6 +30,7 @@ public class AdminSeniorUseCase { private final SalaryGetService salaryGetService; private final WishGetService wishGetService; private final BizppurioSeniorMessage bizppurioSeniorMessage; + private final AdminMapper adminMapper; @Transactional(readOnly = true) public List allSenior() { @@ -39,7 +39,7 @@ public List allSenior() { .map(senior -> { Salary salary = salaryGetService.bySenior(senior); Optional wish = wishGetService.byUser(senior.getUser()); - return mapToSeniorInfo(senior, salary.getTotalAmount(), wish.isPresent()); + return adminMapper.mapToSeniorInfo(senior, salary.getTotalAmount(), wish.isPresent()); }) .toList(); } @@ -49,7 +49,7 @@ public CertificationDetailsResponse getCertification(Long seniorId) { Senior senior = seniorGetService.bySeniorId(seniorId); if (senior.getStatus() == APPROVE) throw new SeniorCertificationException(); - return mapToCertificationInfo(senior); + return adminMapper.mapToCertificationInfo(senior); } diff --git a/src/main/java/com/postgraduate/admin/application/usecase/AdminUserUseCase.java b/src/main/java/com/postgraduate/admin/application/usecase/AdminUserUseCase.java index 3dd208d3..98601da6 100644 --- a/src/main/java/com/postgraduate/admin/application/usecase/AdminUserUseCase.java +++ b/src/main/java/com/postgraduate/admin/application/usecase/AdminUserUseCase.java @@ -15,8 +15,6 @@ import java.util.List; -import static com.postgraduate.admin.application.mapper.AdminMapper.mapToWishResponse; - @Service @Transactional @RequiredArgsConstructor @@ -24,19 +22,20 @@ public class AdminUserUseCase { private final WishGetService wishGetService; private final WishUpdateService wishUpdateService; private final BizppurioJuniorMessage bizppurioJuniorMessage; + private final AdminMapper adminMapper; @Transactional(readOnly = true) public List userInfos() { List all = wishGetService.all(); return all.stream() - .map(AdminMapper::mapToUserInfo) + .map(adminMapper::mapToUserInfo) .toList(); } @Transactional(readOnly = true) public WishResponse wishInfo(Long userId) { Wish wish = wishGetService.byUserId(userId); - return mapToWishResponse(wish); + return adminMapper.mapToWishResponse(wish); } public void wishDone(Long wishId) { diff --git a/src/main/java/com/postgraduate/admin/domain/service/AuthGetService.java b/src/main/java/com/postgraduate/admin/domain/service/AuthGetService.java index af2fa657..0822d305 100644 --- a/src/main/java/com/postgraduate/admin/domain/service/AuthGetService.java +++ b/src/main/java/com/postgraduate/admin/domain/service/AuthGetService.java @@ -1,7 +1,7 @@ package com.postgraduate.admin.domain.service; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/postgraduate/admin/presentation/AdminWithThymeLeafController.java b/src/main/java/com/postgraduate/admin/presentation/AdminWithThymeLeafController.java index fccb790b..4b67da52 100644 --- a/src/main/java/com/postgraduate/admin/presentation/AdminWithThymeLeafController.java +++ b/src/main/java/com/postgraduate/admin/presentation/AdminWithThymeLeafController.java @@ -6,9 +6,8 @@ import com.postgraduate.admin.application.usecase.*; import com.postgraduate.domain.auth.application.dto.res.JwtTokenResponse; import com.postgraduate.domain.auth.application.usecase.jwt.JwtUseCase; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -18,7 +17,6 @@ @RequiredArgsConstructor @Controller -@Slf4j @RequestMapping("/adminServer") public class AdminWithThymeLeafController { private final AdminAuthUseCase adminAuthUseCase; diff --git a/src/main/java/com/postgraduate/batch/cancel/CancelJobConfig.java b/src/main/java/com/postgraduate/batch/cancel/CancelJobConfig.java index a0634bce..339f4976 100644 --- a/src/main/java/com/postgraduate/batch/cancel/CancelJobConfig.java +++ b/src/main/java/com/postgraduate/batch/cancel/CancelJobConfig.java @@ -22,7 +22,7 @@ import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.WAITING; import static com.postgraduate.domain.payment.domain.entity.QPayment.payment; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; import static java.time.LocalDateTime.now; @Configuration diff --git a/src/main/java/com/postgraduate/batch/cancel/CancelMentoringProcessor.java b/src/main/java/com/postgraduate/batch/cancel/CancelMentoringProcessor.java index 5cb0a8e0..865ff531 100644 --- a/src/main/java/com/postgraduate/batch/cancel/CancelMentoringProcessor.java +++ b/src/main/java/com/postgraduate/batch/cancel/CancelMentoringProcessor.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.batch.item.ItemProcessor; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/postgraduate/batch/cancel/CancelMentoringWriter.java b/src/main/java/com/postgraduate/batch/cancel/CancelMentoringWriter.java index 4a81521a..4aeb0b5e 100644 --- a/src/main/java/com/postgraduate/batch/cancel/CancelMentoringWriter.java +++ b/src/main/java/com/postgraduate/batch/cancel/CancelMentoringWriter.java @@ -1,8 +1,8 @@ package com.postgraduate.batch.cancel; import com.postgraduate.domain.payment.application.usecase.PaymentManageUseCase; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; import com.postgraduate.global.bizppurio.application.usecase.BizppurioJuniorMessage; import com.postgraduate.global.slack.SlackErrorMessage; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/postgraduate/batch/done/DoneJobConfig.java b/src/main/java/com/postgraduate/batch/done/DoneJobConfig.java index 50ee2df6..6be8a9f8 100644 --- a/src/main/java/com/postgraduate/batch/done/DoneJobConfig.java +++ b/src/main/java/com/postgraduate/batch/done/DoneJobConfig.java @@ -19,7 +19,6 @@ import static com.postgraduate.domain.mentoring.domain.entity.QMentoring.mentoring; import static com.postgraduate.domain.payment.domain.entity.QPayment.payment; -import static com.postgraduate.domain.salary.domain.entity.QSalary.salary; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; @Configuration @@ -70,9 +69,6 @@ public QueryDslNoOffsetPagingItemReader doneReader() { .join(senior) .on(mentoring.senior.eq(senior)) .fetchJoin() - .join(salary) - .on(mentoring.salary.eq(salary)) - .fetchJoin() .where(mentoring.status.eq(Status.EXPECTED)) ); } diff --git a/src/main/java/com/postgraduate/batch/done/DoneMentoringProcessor.java b/src/main/java/com/postgraduate/batch/done/DoneMentoringProcessor.java index 5b02923b..c23ef74f 100644 --- a/src/main/java/com/postgraduate/batch/done/DoneMentoringProcessor.java +++ b/src/main/java/com/postgraduate/batch/done/DoneMentoringProcessor.java @@ -3,7 +3,9 @@ import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.salary.domain.entity.Salary; +import com.postgraduate.domain.salary.domain.service.SalaryGetService; import com.postgraduate.domain.senior.domain.entity.Senior; +import lombok.RequiredArgsConstructor; import org.springframework.batch.item.ItemProcessor; import org.springframework.stereotype.Component; @@ -15,17 +17,20 @@ import static java.time.format.DateTimeFormatter.ofPattern; @Component +@RequiredArgsConstructor public class DoneMentoringProcessor implements ItemProcessor { + private final SalaryGetService salaryGetService; + @Override public DoneMentoring process(Mentoring mentoring) { DateTimeFormatter formatter = ofPattern("yyyy-MM-dd-HH-mm"); LocalDateTime doneDate = parse(mentoring.getDate(), formatter); if (now().minusDays(3).isAfter(doneDate)) { Senior senior = mentoring.getSenior(); - Salary salary = mentoring.getSalary(); Payment payment = mentoring.getPayment(); + Salary salary = salaryGetService.bySenior(senior); return new DoneMentoring(mentoring.getMentoringId(), senior.getSeniorId(), salary.getSalaryId(), mentoring.getDate(), payment.getPay()); } return null; } -} +} \ No newline at end of file diff --git a/src/main/java/com/postgraduate/batch/done/DoneMentoringRepository.java b/src/main/java/com/postgraduate/batch/done/DoneMentoringRepository.java index 15db419f..9011d2df 100644 --- a/src/main/java/com/postgraduate/batch/done/DoneMentoringRepository.java +++ b/src/main/java/com/postgraduate/batch/done/DoneMentoringRepository.java @@ -16,7 +16,7 @@ public class DoneMentoringRepository { private final NamedParameterJdbcTemplate jdbcTemplate; private static final int CHARGE = TermUnit.SHORT.getCharge(); - private static final String UPDATE_MENTORING = "update mentoring set status = 'DONE' where mentoring_id = :mentoringId"; + private static final String UPDATE_MENTORING = "update mentoring set status = 'DONE', salary_id = :salaryId where mentoring_id = :mentoringId"; private static final String UPDATE_SALARY = "update salary set total_amount = total_amount + :amount where salary_id = :salaryId"; public void updateAllSalary(List mentorings) { diff --git a/src/main/java/com/postgraduate/batch/salary/CreateSalaryJobConfig.java b/src/main/java/com/postgraduate/batch/salary/CreateSalaryJobConfig.java index 6d5f6eb7..b129cf5e 100644 --- a/src/main/java/com/postgraduate/batch/salary/CreateSalaryJobConfig.java +++ b/src/main/java/com/postgraduate/batch/salary/CreateSalaryJobConfig.java @@ -26,7 +26,7 @@ import static com.postgraduate.domain.salary.domain.entity.QSalary.salary; import static com.postgraduate.domain.salary.util.SalaryUtil.getSalaryDate; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; @Configuration @Slf4j @@ -92,13 +92,12 @@ public QueryDslZeroPagingItemReader salaryReader() { .on(senior.user.eq(user)) .leftJoin(account) .on(account.senior.eq(senior)) - .where(user.isDelete.isFalse() - .and(senior.seniorId.notIn( + .where(senior.seniorId.notIn( JPAExpressions .select(salary.senior.seniorId) .from(salary) .where(salary.salaryDate.eq(date)) - ))) + )) .orderBy(senior.seniorId.desc()) ); } diff --git a/src/main/java/com/postgraduate/domain/account/domain/repository/AccountRepository.java b/src/main/java/com/postgraduate/domain/account/domain/repository/AccountRepository.java index eef82771..c00a1a17 100644 --- a/src/main/java/com/postgraduate/domain/account/domain/repository/AccountRepository.java +++ b/src/main/java/com/postgraduate/domain/account/domain/repository/AccountRepository.java @@ -8,4 +8,5 @@ public interface AccountRepository extends JpaRepository { Optional findBySenior(Senior senior); + void deleteBySenior(Senior senior); } diff --git a/src/main/java/com/postgraduate/domain/auth/application/dto/req/SignOutRequest.java b/src/main/java/com/postgraduate/domain/auth/application/dto/req/SignOutRequest.java new file mode 100644 index 00000000..818592eb --- /dev/null +++ b/src/main/java/com/postgraduate/domain/auth/application/dto/req/SignOutRequest.java @@ -0,0 +1,8 @@ +package com.postgraduate.domain.auth.application.dto.req; + +import com.postgraduate.domain.user.quit.domain.entity.constant.QuitReason; + +public record SignOutRequest ( + QuitReason reason, + String etc +){} diff --git a/src/main/java/com/postgraduate/domain/auth/application/dto/res/AuthUserResponse.java b/src/main/java/com/postgraduate/domain/auth/application/dto/res/AuthUserResponse.java index 694f8c74..835a8338 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/dto/res/AuthUserResponse.java +++ b/src/main/java/com/postgraduate/domain/auth/application/dto/res/AuthUserResponse.java @@ -1,6 +1,6 @@ package com.postgraduate.domain.auth.application.dto.res; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; public record AuthUserResponse(User user, Long socialId) implements AuthResponse{ public AuthUserResponse(Long socialId) { diff --git a/src/main/java/com/postgraduate/domain/auth/application/dto/res/JwtTokenResponse.java b/src/main/java/com/postgraduate/domain/auth/application/dto/res/JwtTokenResponse.java index a4e85fc4..2d59766e 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/dto/res/JwtTokenResponse.java +++ b/src/main/java/com/postgraduate/domain/auth/application/dto/res/JwtTokenResponse.java @@ -1,6 +1,6 @@ package com.postgraduate.domain.auth.application.dto.res; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; public record JwtTokenResponse(String accessToken, int accessExpiration, String refreshToken, int refreshExpiration, Role role) implements AuthResponse{} diff --git a/src/main/java/com/postgraduate/domain/auth/application/mapper/AuthMapper.java b/src/main/java/com/postgraduate/domain/auth/application/mapper/AuthMapper.java index 10750156..c2743be2 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/mapper/AuthMapper.java +++ b/src/main/java/com/postgraduate/domain/auth/application/mapper/AuthMapper.java @@ -1,7 +1,7 @@ package com.postgraduate.domain.auth.application.mapper; import com.postgraduate.domain.auth.application.dto.res.AuthUserResponse; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; public class AuthMapper { private AuthMapper() { diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseCase.java index 6ce9c9b0..9c7f6c61 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseCase.java @@ -2,10 +2,10 @@ import com.postgraduate.domain.auth.application.dto.res.JwtTokenResponse; import com.postgraduate.domain.senior.exception.NoneSeniorException; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; -import com.postgraduate.domain.user.exception.DeletedUserException; -import com.postgraduate.domain.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.exception.DeletedUserException; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; import com.postgraduate.domain.wish.domain.service.WishGetService; import com.postgraduate.global.config.security.jwt.util.JwtUtils; import jakarta.servlet.http.HttpServletRequest; @@ -13,12 +13,14 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import static com.postgraduate.domain.user.domain.entity.constant.Role.*; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.*; @RequiredArgsConstructor @Service @Slf4j +@Transactional(readOnly = true) public class JwtUseCase { private final JwtUtils jwtUtils; private final WishGetService wishGetService; @@ -28,7 +30,6 @@ public class JwtUseCase { private int accessExpiration; public JwtTokenResponse signIn(User user) { - checkDelete(user); if (user.getRole() == SENIOR) return seniorToken(user); if (user.getRole() == ADMIN) @@ -50,7 +51,6 @@ public JwtTokenResponse regenerateToken(User user, HttpServletRequest request) { } public JwtTokenResponse changeUser(User user) { - checkDelete(user); return userToken(user); } @@ -67,7 +67,6 @@ private JwtTokenResponse userToken(User user) { } private JwtTokenResponse seniorToken(User user) { - checkDelete(user); return generateToken(user, SENIOR); } @@ -76,6 +75,7 @@ private JwtTokenResponse adminToken(User user) { } private JwtTokenResponse generateToken(User user, Role role) { + checkDelete(user); String accessToken = jwtUtils.generateAccessToken(user.getUserId(), role); String refreshToken = jwtUtils.generateRefreshToken(user.getUserId(), role); return new JwtTokenResponse(accessToken, accessExpiration, refreshToken, refreshExpiration, role); diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignInUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignInUseCase.java index 7825b751..5e31060e 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignInUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignInUseCase.java @@ -7,9 +7,4 @@ public interface SignInUseCase { AuthUserResponse getUser(CodeRequest request); AuthUserResponse getDevUser(CodeRequest codeRequest); - - /** - * - */ - AuthUserResponse getUserB(CodeRequest codeRequest); -} +} \ No newline at end of file diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseCase.java index 77e6cbaa..bb3632e5 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseCase.java @@ -8,11 +8,11 @@ import com.postgraduate.domain.senior.application.utils.SeniorUtils; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorSaveService; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.domain.service.UserSaveService; -import com.postgraduate.domain.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserSaveService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; import com.postgraduate.domain.wish.application.mapper.WishMapper; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.service.WishSaveService; @@ -27,7 +27,7 @@ import static com.postgraduate.domain.salary.util.SalaryUtil.getSalaryDate; import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.mapToSenior; -import static com.postgraduate.domain.user.application.mapper.UserMapper.mapToUser; +import static com.postgraduate.domain.user.user.application.mapper.UserMapper.mapToUser; @Transactional @Service @@ -40,6 +40,7 @@ public class SignUpUseCase { private final UserGetService userGetService; private final WishSaveService wishSaveService; private final SeniorSaveService seniorSaveService; + private final SalaryMapper salaryMapper; private final SlackSignUpMessage slackSignUpMessage; private final UserUtils userUtils; private final SeniorUtils seniorUtils; @@ -84,8 +85,8 @@ public void changeUser(User user, UserChangeRequest changeRequest) { private User seniorSignUpFin(Senior senior) { seniorSaveService.saveSenior(senior); - Salary salary = SalaryMapper.mapToSalary(senior, getSalaryDate()); - Salary nextSalary = SalaryMapper.mapToSalary(senior, getSalaryDate().plusDays(7)); + Salary salary = salaryMapper.mapToSalary(senior, getSalaryDate()); + Salary nextSalary = salaryMapper.mapToSalary(senior, getSalaryDate().plusDays(7)); salarySaveService.save(salary); salarySaveService.save(nextSalary); slackSignUpMessage.sendSeniorSignUp(senior); @@ -97,8 +98,8 @@ private User changeSeniorFin(Senior senior, User user) { seniorSaveService.saveSenior(senior); user = userGetService.byUserId(user.getUserId()); userUpdateService.userToSeniorRole(user, rd.nextInt(5)); - Salary salary = SalaryMapper.mapToSalary(senior, getSalaryDate()); - Salary nextSalary = SalaryMapper.mapToSalary(senior, getSalaryDate().plusDays(7)); + Salary salary = salaryMapper.mapToSalary(senior, getSalaryDate()); + Salary nextSalary = salaryMapper.mapToSalary(senior, getSalaryDate().plusDays(7)); salarySaveService.save(salary); salarySaveService.save(nextSalary); slackSignUpMessage.sendSeniorSignUp(senior); diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoAccessTokenUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoAccessTokenUseCase.java index 40b11b42..2e4165b6 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoAccessTokenUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoAccessTokenUseCase.java @@ -5,6 +5,7 @@ import com.postgraduate.domain.auth.application.dto.res.KakaoUserInfoResponse; import com.postgraduate.domain.auth.exception.KakaoCodeException; import com.postgraduate.domain.auth.exception.KakaoException; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -24,8 +25,6 @@ public class KakaoAccessTokenUseCase { private String appId; @Value("${kakao.redirect-uri}") private String redirectUrl; - @Value("${kakao.redirect-uri-b}") - private String redirectUrlB; @Value("${kakao.dev-redirect-uri}") private String devRedirectUrl; @Value("${kakao.authorization-grant-type}") @@ -37,62 +36,24 @@ public class KakaoAccessTokenUseCase { public KakaoUserInfoResponse getAccessToken (CodeRequest codeRequest) { MultiValueMap requestBody = getRequestBody(codeRequest.code()); - try { - KakaoTokenInfoResponse tokenInfoResponse = webClient.post() - .uri(KAKAO_TOKEN_URI) - .headers(h -> h.setContentType(MediaType.APPLICATION_FORM_URLENCODED)) - .bodyValue(requestBody) - .retrieve() - .bodyToMono(KakaoTokenInfoResponse.class) - .block(); - return getUserInfo(tokenInfoResponse.access_token()); - } catch (WebClientResponseException ex) { - log.error("errorMessage : {}", ex.getMessage()); - throw new KakaoCodeException(); - } + return getKakaoUserInfoResponse(requestBody); } public KakaoUserInfoResponse getDevAccessToken (CodeRequest codeRequest) { MultiValueMap requestBody = getDevRequestBody(codeRequest.code()); - try { - KakaoTokenInfoResponse tokenInfoResponse = webClient.post() - .uri(KAKAO_TOKEN_URI) - .headers(h -> h.setContentType(MediaType.APPLICATION_FORM_URLENCODED)) - .bodyValue(requestBody) - .retrieve() - .bodyToMono(KakaoTokenInfoResponse.class) - .block(); - return getUserInfo(tokenInfoResponse.access_token()); - } catch (WebClientResponseException ex) { - log.error("errorMessage : {}", ex.getMessage()); - throw new KakaoCodeException(); - } + return getKakaoUserInfoResponse(requestBody); } private MultiValueMap getRequestBody(String code) { - MultiValueMap requestBody = new LinkedMultiValueMap<>(); - requestBody.add("grant_type", authorizationGrantType); - requestBody.add("client_id", appId); - requestBody.add("redirect_uri", redirectUrl); - requestBody.add("code", code); - return requestBody; + return getMultiValueMap(redirectUrl, code); } - private KakaoUserInfoResponse getUserInfo(String accessToken) { - try { - return webClient.get() - .uri(USER_INFO_URI) - .headers(h -> h.setBearerAuth(accessToken)) - .retrieve() - .bodyToMono(KakaoUserInfoResponse.class) - .block(); - } catch (WebClientResponseException ex) { - log.error("errorMessage : {}", ex.getMessage()); - throw new KakaoException(); - } + private MultiValueMap getDevRequestBody(String code) { + return getMultiValueMap(devRedirectUrl, code); } - private MultiValueMap getDevRequestBody(String code) { + @NotNull + private MultiValueMap getMultiValueMap(String devRedirectUrl, String code) { MultiValueMap requestBody = new LinkedMultiValueMap<>(); requestBody.add("grant_type", authorizationGrantType); requestBody.add("client_id", appId); @@ -101,12 +62,7 @@ private MultiValueMap getDevRequestBody(String code) { return requestBody; } - /** - * case B - */ - - public KakaoUserInfoResponse getAccessTokenB (CodeRequest codeRequest) { - MultiValueMap requestBody = getRequestBodyB(codeRequest.code()); + private KakaoUserInfoResponse getKakaoUserInfoResponse(MultiValueMap requestBody) { try { KakaoTokenInfoResponse tokenInfoResponse = webClient.post() .uri(KAKAO_TOKEN_URI) @@ -122,12 +78,17 @@ public KakaoUserInfoResponse getAccessTokenB (CodeRequest codeRequest) { } } - private MultiValueMap getRequestBodyB(String code) { - MultiValueMap requestBody = new LinkedMultiValueMap<>(); - requestBody.add("grant_type", authorizationGrantType); - requestBody.add("client_id", appId); - requestBody.add("redirect_uri", redirectUrlB); - requestBody.add("code", code); - return requestBody; + private KakaoUserInfoResponse getUserInfo(String accessToken) { + try { + return webClient.get() + .uri(USER_INFO_URI) + .headers(h -> h.setBearerAuth(accessToken)) + .retrieve() + .bodyToMono(KakaoUserInfoResponse.class) + .block(); + } catch (WebClientResponseException ex) { + log.error("errorMessage : {}", ex.getMessage()); + throw new KakaoException(); + } } } \ No newline at end of file diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseCase.java index 2d065bdc..a87b73ac 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseCase.java @@ -5,56 +5,53 @@ import com.postgraduate.domain.auth.application.dto.res.KakaoUserInfoResponse; import com.postgraduate.domain.auth.application.mapper.AuthMapper; import com.postgraduate.domain.auth.application.usecase.oauth.SignInUseCase; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.DeletedUserException; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor -@Transactional(readOnly = true) +@Transactional public class KakaoSignInUseCase implements SignInUseCase { private final KakaoAccessTokenUseCase kakaoTokenUseCase; private final UserGetService userGetService; + private final UserUpdateService userUpdateService; @Override public AuthUserResponse getUser(CodeRequest codeRequest) { KakaoUserInfoResponse userInfo = kakaoTokenUseCase.getAccessToken(codeRequest); - Long socialId = userInfo.id(); - try { - User user = userGetService.bySocialId(socialId); - return AuthMapper.mapToAuthUser(user, socialId); - } catch (UserNotFoundException e) { - return AuthMapper.mapToAuthUser(socialId); - } + return getAuthUserResponse(userInfo); } @Override public AuthUserResponse getDevUser(CodeRequest codeRequest) { KakaoUserInfoResponse userInfo = kakaoTokenUseCase.getDevAccessToken(codeRequest); + return getAuthUserResponse(userInfo); + } + + @NotNull + private AuthUserResponse getAuthUserResponse(KakaoUserInfoResponse userInfo) { Long socialId = userInfo.id(); try { User user = userGetService.bySocialId(socialId); + checkDelete(user); return AuthMapper.mapToAuthUser(user, socialId); } catch (UserNotFoundException e) { return AuthMapper.mapToAuthUser(socialId); } } - /** - * case B - */ - @Override - public AuthUserResponse getUserB(CodeRequest codeRequest) { - KakaoUserInfoResponse userInfo = kakaoTokenUseCase.getAccessTokenB(codeRequest); - Long socialId = userInfo.id(); - try { - User user = userGetService.bySocialId(socialId); - return AuthMapper.mapToAuthUser(user, socialId); - } catch (UserNotFoundException e) { - return AuthMapper.mapToAuthUser(socialId); + private void checkDelete(User user) { + if (user.isDelete()) { + if (user.isRealDelete()) + throw new DeletedUserException(); + userUpdateService.updateRestore(user); } } } \ No newline at end of file diff --git a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignOutUseCase.java b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignOutUseCase.java index ee038f83..e6c078cd 100644 --- a/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignOutUseCase.java +++ b/src/main/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignOutUseCase.java @@ -2,9 +2,9 @@ import com.postgraduate.domain.auth.application.usecase.oauth.SignOutUseCase; import com.postgraduate.domain.auth.exception.KakaoException; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; import com.postgraduate.global.config.security.jwt.util.JwtUtils; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; diff --git a/src/main/java/com/postgraduate/domain/auth/presentation/AuthController.java b/src/main/java/com/postgraduate/domain/auth/presentation/AuthController.java index 71d5b0c8..8a3a093c 100644 --- a/src/main/java/com/postgraduate/domain/auth/presentation/AuthController.java +++ b/src/main/java/com/postgraduate/domain/auth/presentation/AuthController.java @@ -5,12 +5,12 @@ import com.postgraduate.domain.auth.application.dto.res.AuthUserResponse; import com.postgraduate.domain.auth.application.dto.res.JwtTokenResponse; import com.postgraduate.domain.auth.application.usecase.oauth.SelectOauth; -import com.postgraduate.domain.auth.application.usecase.oauth.SignOutUseCase; import com.postgraduate.domain.auth.application.usecase.oauth.SignUpUseCase; import com.postgraduate.domain.auth.application.usecase.jwt.JwtUseCase; import com.postgraduate.domain.auth.application.usecase.oauth.SignInUseCase; import com.postgraduate.domain.auth.presentation.constant.Provider; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.quit.application.usecase.QuitManageUseCase; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -34,6 +34,7 @@ public class AuthController { private final SelectOauth selectOauth; private final SignUpUseCase signUpUseCase; + private final QuitManageUseCase quitManageUseCase; private final JwtUseCase jwtUseCase; @PostMapping("/login/{provider}") @@ -65,14 +66,6 @@ public ResponseEntity> logout(@AuthenticationPrincipal User us return ResponseEntity.ok(create(AUTH_DELETE.getCode(), LOGOUT_USER.getMessage())); } - @PostMapping("/signout/{provider}/{userId}") - @Operation(summary = "회원 탈퇴 | 관리자 토큰 필요", description = "회원 탈퇴 진행") - public ResponseEntity> signOut(@PathVariable Provider provider, @PathVariable Long userId) { - SignOutUseCase signOutUseCase = selectOauth.selectSignOut(provider); - signOutUseCase.signOut(userId); - return ResponseEntity.ok(create(AUTH_DELETE.getCode(), SIGNOUT_USER.getMessage())); - } - @PostMapping("/user/signup") @Operation(summary = "대학생 회원가입", description = "로그인 API에서 반환한 socialId, 닉네임, 번호, 마케팅 수신여부, 희망 학과, 희망 분야, 매칭 희망 여부") public ResponseEntity> signUpUser(@RequestBody @Valid SignUpRequest request) { @@ -127,4 +120,12 @@ public ResponseEntity> refresh(@AuthenticationPrin JwtTokenResponse jwtToken = jwtUseCase.regenerateToken(user, request); return ResponseEntity.ok(create(AUTH_UPDATE.getCode(), SUCCESS_REGENERATE_TOKEN.getMessage(), jwtToken)); } + + @PostMapping("/signout") + @Operation(summary = "회원 탈퇴", description = "회원 탈퇴 진행") + public ResponseEntity> signOut(@AuthenticationPrincipal User user, @RequestBody SignOutRequest signOutRequest) { + quitManageUseCase.updateDelete(user, signOutRequest); + return ResponseEntity.ok(create(AUTH_DELETE.getCode(), SIGNOUT_USER.getMessage())); + } + } diff --git a/src/main/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseCase.java b/src/main/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseCase.java index 3208efe2..b32006ae 100644 --- a/src/main/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseCase.java +++ b/src/main/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseCase.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.auth.util.ProfileUtils; import com.postgraduate.domain.image.application.dto.res.ImageUrlResponse; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.config.s3.S3UploadService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/postgraduate/domain/image/presentation/ImageController.java b/src/main/java/com/postgraduate/domain/image/presentation/ImageController.java index fa3e5a64..459167a6 100644 --- a/src/main/java/com/postgraduate/domain/image/presentation/ImageController.java +++ b/src/main/java/com/postgraduate/domain/image/presentation/ImageController.java @@ -5,7 +5,7 @@ import com.postgraduate.domain.image.application.dto.res.ImageUrlResponse; import com.postgraduate.domain.image.application.usecase.ImageUploadUseCase; import com.postgraduate.domain.image.application.usecase.PreSignedUseCase; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/postgraduate/domain/mentoring/application/mapper/MentoringMapper.java b/src/main/java/com/postgraduate/domain/mentoring/application/mapper/MentoringMapper.java index bc805454..53906b29 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/application/mapper/MentoringMapper.java +++ b/src/main/java/com/postgraduate/domain/mentoring/application/mapper/MentoringMapper.java @@ -9,14 +9,19 @@ import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; +@Component +@RequiredArgsConstructor public class MentoringMapper { - private MentoringMapper() { - throw new IllegalArgumentException(); - } - public static ExpectedMentoringInfo mapToExpectedInfo(Mentoring mentoring) { + private final UserUtils userUtils; + + public ExpectedMentoringInfo mapToExpectedInfo(Mentoring mentoring) { Senior senior = mentoring.getSenior(); User user = senior.getUser(); Info info = senior.getInfo(); @@ -34,8 +39,16 @@ public static ExpectedMentoringInfo mapToExpectedInfo(Mentoring mentoring) { ); } - public static DoneMentoringInfo mapToDoneInfo(Mentoring mentoring) { + public DoneMentoringInfo mapToDoneInfo(Mentoring mentoring) { + if (mentoring.getSenior() == null || mentoring.getSenior().getUser().isDelete()) { + return getDoneMentoringInfo(mentoring, userUtils.getArchiveUser()); + } Senior senior = mentoring.getSenior(); + return getDoneMentoringInfo(mentoring, senior); + } + + @NotNull + private DoneMentoringInfo getDoneMentoringInfo(Mentoring mentoring, Senior senior) { User user = senior.getUser(); Info info = senior.getInfo(); return new DoneMentoringInfo( @@ -51,7 +64,22 @@ public static DoneMentoringInfo mapToDoneInfo(Mentoring mentoring) { ); } - public static WaitingMentoringInfo mapToWaitingInfo(Mentoring mentoring) { + @NotNull + private DoneMentoringInfo getDoneMentoringInfo(Mentoring mentoring, User user) { + return new DoneMentoringInfo( + mentoring.getMentoringId(), + null, + user.getProfile(), + user.getNickName(), + null, + null, + null, + mentoring.getDate(), + mentoring.getTerm() + ); + } + + public WaitingMentoringInfo mapToWaitingInfo(Mentoring mentoring) { Senior senior = mentoring.getSenior(); User user = senior.getUser(); Info info = senior.getInfo(); @@ -62,7 +90,7 @@ public static WaitingMentoringInfo mapToWaitingInfo(Mentoring mentoring) { info.getPostgradu(), info.getMajor(), info.getLab(), mentoring.getTerm()); } - public static AppliedMentoringDetailResponse mapToAppliedDetailInfo(Mentoring mentoring) { + public AppliedMentoringDetailResponse mapToAppliedDetailInfo(Mentoring mentoring) { Senior senior = mentoring.getSenior(); String[] dates = mentoring.getDate().split(","); return new AppliedMentoringDetailResponse( @@ -78,7 +106,7 @@ public static AppliedMentoringDetailResponse mapToAppliedDetailInfo(Mentoring me ); } - public static Mentoring mapToMentoring(User user, Senior senior, Payment payment, MentoringApplyRequest request) { + public Mentoring mapToMentoring(User user, Senior senior, Payment payment, MentoringApplyRequest request) { return Mentoring.builder() .user(user) .senior(senior) @@ -89,7 +117,7 @@ public static Mentoring mapToMentoring(User user, Senior senior, Payment payment .build(); } - public static WaitingSeniorMentoringInfo mapToSeniorWaitingInfo(Mentoring mentoring, String remainTime) { + public WaitingSeniorMentoringInfo mapToSeniorWaitingInfo(Mentoring mentoring, String remainTime) { User user = mentoring.getUser(); return new WaitingSeniorMentoringInfo( mentoring.getMentoringId(), @@ -98,7 +126,7 @@ public static WaitingSeniorMentoringInfo mapToSeniorWaitingInfo(Mentoring mentor remainTime); } - public static ExpectedSeniorMentoringInfo mapToSeniorExpectedInfo(Mentoring mentoring, long dDay) { + public ExpectedSeniorMentoringInfo mapToSeniorExpectedInfo(Mentoring mentoring, long dDay) { User user = mentoring.getUser(); return new ExpectedSeniorMentoringInfo(mentoring.getMentoringId(), user.getProfile(), user.getNickName(), @@ -107,9 +135,17 @@ public static ExpectedSeniorMentoringInfo mapToSeniorExpectedInfo(Mentoring ment dDay); } - public static DoneSeniorMentoringInfo mapToSeniorDoneInfo(Mentoring mentoring) { - Salary salary = mentoring.getSalary(); + public DoneSeniorMentoringInfo mapToSeniorDoneInfo(Mentoring mentoring) { + if (mentoring.getUser() == null || mentoring.getUser().isDelete()) { + return getDoneSeniorMentoringInfo(mentoring, userUtils.getArchiveUser()); + } User user = mentoring.getUser(); + return getDoneSeniorMentoringInfo(mentoring, user); + } + + @NotNull + private DoneSeniorMentoringInfo getDoneSeniorMentoringInfo(Mentoring mentoring, User user) { + Salary salary = mentoring.getSalary(); return new DoneSeniorMentoringInfo(mentoring.getMentoringId(), user.getProfile(), user.getNickName(), mentoring.getTerm(), @@ -117,7 +153,7 @@ public static DoneSeniorMentoringInfo mapToSeniorDoneInfo(Mentoring mentoring) { salary.getSalaryDate(), salary.status()); } - public static SeniorMentoringDetailResponse mapToSeniorMentoringDetail(Mentoring mentoring) { + public SeniorMentoringDetailResponse mapToSeniorMentoringDetail(Mentoring mentoring) { String[] dates = mentoring.getDate().split(","); User user = mentoring.getUser(); return new SeniorMentoringDetailResponse( diff --git a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseCase.java b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseCase.java index 23152a2c..0d7a16ba 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseCase.java +++ b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseCase.java @@ -13,7 +13,7 @@ import com.postgraduate.domain.payment.domain.service.PaymentGetService; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.usecase.BizppurioJuniorMessage; import com.postgraduate.global.bizppurio.application.usecase.BizppurioSeniorMessage; import lombok.RequiredArgsConstructor; @@ -31,6 +31,7 @@ public class MentoringApplyingUseCase { private final MentoringGetService mentoringGetService; private final MentoringSaveService mentoringSaveService; private final AccountGetService accountGetService; + private final MentoringMapper mentoringMapper; private final BizppurioSeniorMessage bizppurioSeniorMessage; private final BizppurioJuniorMessage bizppurioJuniorMessage; @@ -41,7 +42,7 @@ public ApplyingResponse applyMentoringWithPayment(User user, MentoringApplyReque if (dates.length != 3) throw new MentoringDateException(); Senior senior = payment.getSenior(); - Mentoring mentoring = MentoringMapper.mapToMentoring(user, senior, payment, request); + Mentoring mentoring = mentoringMapper.mapToMentoring(user, senior, payment, request); mentoringSaveService.save(mentoring); seniorUpdateService.plusMentoring(senior); Optional account = accountGetService.bySenior(senior); diff --git a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseCase.java b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseCase.java index 4e5580ea..85ad2bac 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseCase.java +++ b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseCase.java @@ -21,7 +21,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.usecase.BizppurioJuniorMessage; import com.postgraduate.global.bizppurio.application.usecase.BizppurioSeniorMessage; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseCase.java b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseCase.java index 45578033..25d51934 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseCase.java +++ b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseCase.java @@ -10,7 +10,7 @@ import com.postgraduate.domain.mentoring.util.DateUtils; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -18,7 +18,6 @@ import java.time.LocalDateTime; import java.util.List; -import static com.postgraduate.domain.mentoring.application.mapper.MentoringMapper.*; import static com.postgraduate.domain.mentoring.util.DateUtils.stringToLocalDateTime; import static java.time.Duration.between; @@ -27,12 +26,13 @@ @RequiredArgsConstructor public class MentoringSeniorInfoUseCase { private final MentoringGetService mentoringGetService; + private final MentoringMapper mentoringMapper; private final SeniorGetService seniorGetService; public SeniorMentoringDetailResponse getSeniorMentoringDetail(User user, Long mentoringId) { Senior senior = seniorGetService.byUser(user); Mentoring mentoring = mentoringGetService.byIdAndSeniorForDetails(mentoringId, senior); - return mapToSeniorMentoringDetail(mentoring); + return mentoringMapper.mapToSeniorMentoringDetail(mentoring); } public WaitingSeniorMentoringResponse getSeniorWaiting(User user) { @@ -46,7 +46,7 @@ public WaitingSeniorMentoringResponse getSeniorWaiting(User user) { .atStartOfDay(); LocalDateTime now = LocalDateTime.now(); String remain = DateUtils.remainTime(between(now, expiredAt)); - return mapToSeniorWaitingInfo(mentoring, remain); + return mentoringMapper.mapToSeniorWaitingInfo(mentoring, remain); }) .toList(); return new WaitingSeniorMentoringResponse(waitingMentoringInfos); @@ -60,7 +60,7 @@ public ExpectedSeniorMentoringResponse getSeniorExpected(User user) { LocalDateTime date = DateUtils.stringToLocalDateTime(mentoring.getDate()); LocalDateTime now = LocalDateTime.now(); long dDay = between(now, date).toDays(); - return mapToSeniorExpectedInfo(mentoring, dDay); + return mentoringMapper.mapToSeniorExpectedInfo(mentoring, dDay); }) .toList(); return new ExpectedSeniorMentoringResponse(expectedMentoringInfos); @@ -70,7 +70,7 @@ public DoneSeniorMentoringResponse getSeniorDone(User user) { Senior senior = seniorGetService.byUser(user); List mentorings = mentoringGetService.bySeniorDone(senior); List doneSeniorMentoringInfos = mentorings.stream() - .map(MentoringMapper::mapToSeniorDoneInfo) + .map(mentoring -> mentoringMapper.mapToSeniorDoneInfo(mentoring)) .sorted((o1, o2) -> { if (stringToLocalDateTime(o1.date()) .isAfter(stringToLocalDateTime(o2.date()))) diff --git a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseCase.java b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseCase.java index 7549d16c..43451395 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseCase.java +++ b/src/main/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseCase.java @@ -10,14 +10,13 @@ import com.postgraduate.domain.mentoring.application.mapper.MentoringMapper; import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.service.MentoringGetService; -import com.postgraduate.domain.user.domain.entity.User; +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.application.mapper.MentoringMapper.mapToAppliedDetailInfo; import static com.postgraduate.domain.mentoring.util.DateUtils.stringToLocalDateTime; @Service @@ -25,16 +24,17 @@ @RequiredArgsConstructor public class MentoringUserInfoUseCase { private final MentoringGetService mentoringGetService; + private final MentoringMapper mentoringMapper; public AppliedMentoringDetailResponse getMentoringDetail(User user, Long mentoringId) { Mentoring mentoring = mentoringGetService.byIdAndUserForDetails(mentoringId, user); - return mapToAppliedDetailInfo(mentoring); + return mentoringMapper.mapToAppliedDetailInfo(mentoring); } public WaitingMentoringResponse getWaiting(User user) { List mentorings = mentoringGetService.byUserWaiting(user); List waitingMentoringInfos = mentorings.stream() - .map(MentoringMapper::mapToWaitingInfo) + .map(mentoring -> mentoringMapper.mapToWaitingInfo(mentoring)) .toList(); return new WaitingMentoringResponse(waitingMentoringInfos); } @@ -42,7 +42,7 @@ public WaitingMentoringResponse getWaiting(User user) { public ExpectedMentoringResponse getExpected(User user) { List mentorings = mentoringGetService.byUserExpected(user); List expectedMentoringInfos = mentorings.stream() - .map(MentoringMapper::mapToExpectedInfo) + .map(mentoring -> mentoringMapper.mapToExpectedInfo(mentoring)) .toList(); return new ExpectedMentoringResponse(expectedMentoringInfos); } @@ -50,7 +50,7 @@ public ExpectedMentoringResponse getExpected(User user) { public DoneMentoringResponse getDone(User user) { List mentorings = mentoringGetService.byUserDone(user); List doneMentoringInfos = mentorings.stream() - .map(MentoringMapper::mapToDoneInfo) + .map(mentoring -> mentoringMapper.mapToDoneInfo(mentoring)) .sorted((o1, o2) -> { if (stringToLocalDateTime(o1.date()) .isAfter(stringToLocalDateTime(o2.date()))) diff --git a/src/main/java/com/postgraduate/domain/mentoring/domain/entity/Mentoring.java b/src/main/java/com/postgraduate/domain/mentoring/domain/entity/Mentoring.java index f4c95d51..e2a179da 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/domain/entity/Mentoring.java +++ b/src/main/java/com/postgraduate/domain/mentoring/domain/entity/Mentoring.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; @@ -81,6 +81,14 @@ public void updateDate(String date) { this.date = date; } + public void updateUserDelete() { + this.user = null; + } + + public void updateSeniorDelete() { + this.senior = null; + } + public boolean checkAutoDone() { DateTimeFormatter formatter = ofPattern("yyyy-MM-dd-HH-mm"); LocalDateTime doneDate = parse(this.date, formatter); diff --git a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepository.java b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepository.java index 7f323a6c..e676abdd 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepository.java +++ b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepository.java @@ -3,11 +3,8 @@ import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.entity.constant.Status; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; +import com.postgraduate.domain.user.user.domain.entity.User; -import java.time.LocalDateTime; import java.util.List; import java.util.Optional; @@ -18,11 +15,9 @@ public interface MentoringDslRepository { List findAllByUserAndStatus(User user, Status status); Optional findByMentoringId(Long mentoringId); List findAllBySeniorAndSalaryStatus(Senior senior, Boolean status); - Page findAllBySearchPayment(String search, Pageable pageable); - List findAllByStatusAndCreatedAtIsBefore(Status status, LocalDateTime now); - List findAllByStatus(Status status); Optional findByMentoringIdAndUserForDetails(Long mentoringId, User user); Optional findByMentoringIdAndSeniorForDetails(Long mentoringId, Senior senior); - List findAllForMessage(); + boolean existSeniorMentoring(Senior senior); + boolean existUserMentoring(User user); } diff --git a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepositoryImpl.java b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepositoryImpl.java index 10b8b77d..457b8777 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepositoryImpl.java +++ b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringDslRepositoryImpl.java @@ -3,18 +3,12 @@ import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.entity.constant.Status; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.QUser; -import com.postgraduate.domain.user.domain.entity.User; -import com.querydsl.core.types.dsl.BooleanExpression; +import com.postgraduate.domain.user.user.domain.entity.QUser; +import com.postgraduate.domain.user.user.domain.entity.User; import com.querydsl.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import org.springframework.util.StringUtils; -import java.time.LocalDateTime; import java.util.List; import java.util.Optional; @@ -24,8 +18,7 @@ import static com.postgraduate.domain.payment.domain.entity.QPayment.payment; import static com.postgraduate.domain.salary.domain.entity.QSalary.salary; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; -import static com.postgraduate.domain.user.domain.entity.QUser.user; -import static com.querydsl.core.types.dsl.Expressions.FALSE; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; @RequiredArgsConstructor @Repository @@ -113,68 +106,6 @@ public List findAllBySeniorAndSalaryStatus(Senior senior, Boolean sta .fetch(); } - @Override - public Page findAllBySearchPayment(String search, Pageable pageable) { - List mentorings = queryFactory.selectFrom(mentoring) - .distinct() - .where( - searchLike(search), - mentoring.user.isDelete.eq(FALSE) - ) - .leftJoin(mentoring.user, user) - .fetchJoin() - .leftJoin(mentoring.payment, payment) - .fetchJoin() - .orderBy(mentoring.payment.paidAt.desc()) - .offset(pageable.getOffset()) - .limit(pageable.getPageSize()) - .fetch(); - - Long total = queryFactory.select(mentoring.count()) - .distinct() - .from(mentoring) - .where( - searchLike(search), - mentoring.user.isDelete.eq(FALSE) - ) - .fetchOne(); - - return new PageImpl<>(mentorings, pageable, total); - } - - - private BooleanExpression searchLike(String search) { - if (StringUtils.hasText(search)) { - return mentoring.user.nickName.contains(search) - .or(mentoring.user.phoneNumber.contains(search)); - } - return null; - } - - @Override - public List findAllByStatusAndCreatedAtIsBefore(Status status, LocalDateTime now) { - return queryFactory.selectFrom(mentoring) - .distinct() - .leftJoin(mentoring.user, user) - .fetchJoin() - .leftJoin(mentoring.payment, payment) - .fetchJoin() - .where(mentoring.status.eq(status), mentoring.createdAt.before(now)) - .fetch(); - } - - @Override - public List findAllByStatus(Status status) { - return queryFactory.selectFrom(mentoring) - .distinct() - .leftJoin(mentoring.senior, senior) - .fetchJoin() - .leftJoin(mentoring.salary, salary) - .fetchJoin() - .where(mentoring.status.eq(status)) - .fetch(); - } - @Override public Optional findByMentoringIdAndUserForDetails(Long mentoringId, User user) { return Optional.ofNullable(queryFactory.selectFrom(mentoring) @@ -221,4 +152,28 @@ public List findAllForMessage() { .where(mentoring.status.eq(EXPECTED)) .fetch(); } + + @Override + public boolean existSeniorMentoring(Senior senior) { + Integer fetchFirst = queryFactory.selectOne() + .from(mentoring) + .where(mentoring.senior.eq(senior) + .and( + mentoring.status.eq(WAITING).or(mentoring.status.eq(EXPECTED)) + )) + .fetchFirst(); + return fetchFirst != null; + } + + @Override + public boolean existUserMentoring(User user) { + Integer fetchFirst = queryFactory.selectOne() + .from(mentoring) + .where(mentoring.user.eq(user) + .and( + mentoring.status.eq(WAITING).or(mentoring.status.eq(EXPECTED)) + )) + .fetchFirst(); + return fetchFirst != null; + } } diff --git a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringRepository.java b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringRepository.java index 8aa65c21..49ec2ce0 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringRepository.java +++ b/src/main/java/com/postgraduate/domain/mentoring/domain/repository/MentoringRepository.java @@ -4,12 +4,9 @@ import com.postgraduate.domain.mentoring.domain.entity.constant.Status; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.data.jpa.repository.JpaRepository; -import java.time.LocalDateTime; import java.util.List; import java.util.Optional; @@ -17,5 +14,6 @@ public interface MentoringRepository extends JpaRepository, Men Optional findByPayment(Payment payment); Optional findByMentoringIdAndUserAndStatus(Long mentoringId, User user, Status status); Optional findByMentoringIdAndSeniorAndStatus(Long mentoringId, Senior senior, Status status); - Page findAllByStatusAndCreatedAtBefore(Status status, LocalDateTime createdAt, Pageable pageable); + List findAllByUser(User user); + List findAllBySenior(Senior senior); } diff --git a/src/main/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetService.java b/src/main/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetService.java index 28722256..83ea8eb9 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetService.java +++ b/src/main/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetService.java @@ -6,14 +6,10 @@ import com.postgraduate.domain.mentoring.exception.MentoringPresentException; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import java.time.LocalDateTime; import java.util.List; import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.*; @@ -23,7 +19,6 @@ @Service @RequiredArgsConstructor public class MentoringGetService { - private static final int ADMIN_PAGE_SIZE = 15; private final MentoringRepository mentoringRepository; @@ -93,11 +88,6 @@ public Mentoring byIdAndUserAndExpected(Long mentoringId, User user) { .orElseThrow(MentoringNotFoundException::new); } - public Mentoring byIdAndUserAndDone(Long mentoringId, User user) { - return mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, DONE) - .orElseThrow(MentoringNotFoundException::new); - } - public Mentoring byIdAndSeniorAndWaiting(Long mentoringId, Senior senior) { return mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, WAITING) .orElseThrow(MentoringNotFoundException::new); @@ -108,24 +98,6 @@ public Mentoring byIdAndSeniorAndExpected(Long mentoringId, Senior senior) { .orElseThrow(MentoringNotFoundException::new); } - public Mentoring byIdAndSeniorAndDone(Long mentoringId, Senior senior) { - return mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, DONE) - .orElseThrow(MentoringNotFoundException::new); - } - - public Mentoring byMentoringIdWithLazy(Long mentoringId) { - return mentoringRepository.findById(mentoringId) - .orElseThrow(MentoringNotFoundException::new); - } - - public List byWaitingAndCreatedAt(LocalDateTime now) { - return mentoringRepository.findAllByStatusAndCreatedAtIsBefore(WAITING, now); - } - - public List byExpected() { - return mentoringRepository.findAllByStatus(EXPECTED); - } - public List byUserId(Long userId) { return mentoringRepository.findAllByUserId(userId); } @@ -142,12 +114,6 @@ public List bySeniorAndSalaryFalse(Senior senior) { return mentoringRepository.findAllBySeniorAndSalaryStatus(senior, FALSE); } - public Page all(Integer page, String search) { - page = page == null ? 1 : page; - Pageable pageable = PageRequest.of(page - 1, ADMIN_PAGE_SIZE); - return mentoringRepository.findAllBySearchPayment(search, pageable); - } - public List byForMessage() { return mentoringRepository.findAllForMessage(); } diff --git a/src/main/java/com/postgraduate/domain/mentoring/presentation/MentoringController.java b/src/main/java/com/postgraduate/domain/mentoring/presentation/MentoringController.java index 6bb430a3..22593d24 100644 --- a/src/main/java/com/postgraduate/domain/mentoring/presentation/MentoringController.java +++ b/src/main/java/com/postgraduate/domain/mentoring/presentation/MentoringController.java @@ -7,7 +7,7 @@ import com.postgraduate.domain.mentoring.application.usecase.MentoringSeniorInfoUseCase; import com.postgraduate.domain.mentoring.application.usecase.MentoringUserInfoUseCase; import com.postgraduate.domain.refuse.application.dto.req.MentoringRefuseRequest; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/postgraduate/domain/payment/application/mapper/PaymentMapper.java b/src/main/java/com/postgraduate/domain/payment/application/mapper/PaymentMapper.java index 15ea2286..47abe3fa 100644 --- a/src/main/java/com/postgraduate/domain/payment/application/mapper/PaymentMapper.java +++ b/src/main/java/com/postgraduate/domain/payment/application/mapper/PaymentMapper.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.payment.application.dto.req.PaymentResultRequest; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; diff --git a/src/main/java/com/postgraduate/domain/payment/application/usecase/PaymentManageUseCase.java b/src/main/java/com/postgraduate/domain/payment/application/usecase/PaymentManageUseCase.java index ac2b05cd..bceb58ea 100644 --- a/src/main/java/com/postgraduate/domain/payment/application/usecase/PaymentManageUseCase.java +++ b/src/main/java/com/postgraduate/domain/payment/application/usecase/PaymentManageUseCase.java @@ -12,8 +12,8 @@ import com.postgraduate.domain.payment.exception.RefundFailException; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; import com.postgraduate.global.slack.SlackPaymentMessage; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -30,7 +30,7 @@ import static com.postgraduate.domain.payment.application.usecase.constant.PaymentParameter.*; import static com.postgraduate.domain.payment.presentation.constant.PaymentResponseMessage.FAIL_PAYMENT; -import static com.postgraduate.domain.user.domain.entity.constant.Role.ADMIN; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.ADMIN; import static org.springframework.http.CacheControl.noCache; @Service diff --git a/src/main/java/com/postgraduate/domain/payment/domain/entity/Payment.java b/src/main/java/com/postgraduate/domain/payment/domain/entity/Payment.java index c7baa557..ab6ccddd 100644 --- a/src/main/java/com/postgraduate/domain/payment/domain/entity/Payment.java +++ b/src/main/java/com/postgraduate/domain/payment/domain/entity/Payment.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.payment.domain.entity.constant.Status; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; @@ -52,4 +52,11 @@ public void updateStatus(Status status) { this.status = status; this.deletedAt = LocalDateTime.now(); } + + public void updateUserDelete() { + this.user = null; + } + public void updateSeniorDelete() { + this.senior = null; + } } diff --git a/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentDslRepositoryImpl.java b/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentDslRepositoryImpl.java index c7919446..94880a59 100644 --- a/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentDslRepositoryImpl.java +++ b/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentDslRepositoryImpl.java @@ -8,7 +8,7 @@ import java.util.List; import static com.postgraduate.domain.payment.domain.entity.QPayment.payment; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; @Repository @RequiredArgsConstructor diff --git a/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentRepository.java b/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentRepository.java index 153061aa..ed2f47f5 100644 --- a/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentRepository.java +++ b/src/main/java/com/postgraduate/domain/payment/domain/repository/PaymentRepository.java @@ -3,13 +3,16 @@ import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.payment.domain.entity.constant.Status; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface PaymentRepository extends JpaRepository, PaymentDslRepository { Optional findByUserAndOrderIdAndStatus(User user, String orderId, Status status); Optional findByUser_UserIdAndPaymentIdAndStatus(Long userId, Long paymentId, Status status); Optional findBySeniorAndOrderIdAndStatus(Senior senior, String orderId, Status status); + List findAllByUser(User user); + List findAllBySenior(Senior senior); } diff --git a/src/main/java/com/postgraduate/domain/payment/domain/service/PaymentGetService.java b/src/main/java/com/postgraduate/domain/payment/domain/service/PaymentGetService.java index 6ebd2190..7f4daaa6 100644 --- a/src/main/java/com/postgraduate/domain/payment/domain/service/PaymentGetService.java +++ b/src/main/java/com/postgraduate/domain/payment/domain/service/PaymentGetService.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.payment.domain.repository.PaymentRepository; import com.postgraduate.domain.payment.exception.PaymentNotFoundException; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/postgraduate/domain/salary/application/mapper/SalaryMapper.java b/src/main/java/com/postgraduate/domain/salary/application/mapper/SalaryMapper.java index 9d9da974..7ddbe79f 100644 --- a/src/main/java/com/postgraduate/domain/salary/application/mapper/SalaryMapper.java +++ b/src/main/java/com/postgraduate/domain/salary/application/mapper/SalaryMapper.java @@ -6,36 +6,38 @@ import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.entity.SalaryAccount; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; import java.time.LocalDate; +@RequiredArgsConstructor +@Component public class SalaryMapper { - private SalaryMapper() { - throw new IllegalArgumentException(); - } + private final UserUtils userUtils; - public static Salary mapToSalary(Senior senior, LocalDate salaryDate) { + public Salary mapToSalary(Senior senior, LocalDate salaryDate) { return Salary.builder() .senior(senior) .salaryDate(salaryDate) .build(); } - public static Salary mapToSalary(Senior senior, LocalDate salaryDate, Account account) { - if (account == null) - return mapToSalary(senior, salaryDate); - SalaryAccount salaryAccount = mapToSalaryAccount(account); - return Salary.builder() - .senior(senior) - .salaryDate(salaryDate) - .account(salaryAccount) - .build(); - } - - public static SalaryDetails mapToSalaryDetail(Mentoring mentoring) { + public SalaryDetails mapToSalaryDetail(Mentoring mentoring) { Salary salary = mentoring.getSalary(); + if (mentoring.getUser() == null || mentoring.getUser().isDelete()){ + User user = userUtils.getArchiveUser(); + return getSalaryDetails(mentoring, salary, user); + } User user = mentoring.getUser(); + return getSalaryDetails(mentoring, salary, user); + } + + @NotNull + private SalaryDetails getSalaryDetails(Mentoring mentoring, Salary salary, User user) { return new SalaryDetails( user.getProfile(), user.getNickName(), @@ -46,7 +48,7 @@ public static SalaryDetails mapToSalaryDetail(Mentoring mentoring) { ); } - public static SalaryAccount mapToSalaryAccount(Account account) { + public SalaryAccount mapToSalaryAccount(Account account) { return new SalaryAccount( account.getBank(), account.getAccountNumber(), diff --git a/src/main/java/com/postgraduate/domain/salary/application/usecase/SalaryInfoUseCase.java b/src/main/java/com/postgraduate/domain/salary/application/usecase/SalaryInfoUseCase.java index 188c48ca..1e7b8584 100644 --- a/src/main/java/com/postgraduate/domain/salary/application/usecase/SalaryInfoUseCase.java +++ b/src/main/java/com/postgraduate/domain/salary/application/usecase/SalaryInfoUseCase.java @@ -10,7 +10,7 @@ import com.postgraduate.domain.salary.domain.service.SalaryGetService; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,6 +23,7 @@ public class SalaryInfoUseCase { private final SeniorGetService seniorGetService; private final SalaryGetService salaryGetService; + private final SalaryMapper salaryMapper; private final MentoringGetService mentoringGetService; public SalaryInfoResponse getSalary(User user) { @@ -38,7 +39,7 @@ public SalaryDetailsResponse getSalaryDetail(User user, Boolean status) { mentoringGetService.bySeniorAndSalaryTrue(senior) : mentoringGetService.bySeniorAndSalaryFalse(senior); List salaryDetails = mentorings.stream() - .map(SalaryMapper::mapToSalaryDetail) + .map(salary -> salaryMapper.mapToSalaryDetail(salary)) .toList(); return new SalaryDetailsResponse(salaryDetails); } diff --git a/src/main/java/com/postgraduate/domain/salary/domain/entity/Salary.java b/src/main/java/com/postgraduate/domain/salary/domain/entity/Salary.java index 372df497..c486e679 100644 --- a/src/main/java/com/postgraduate/domain/salary/domain/entity/Salary.java +++ b/src/main/java/com/postgraduate/domain/salary/domain/entity/Salary.java @@ -60,4 +60,8 @@ public void plusAmount(int amount) { public void minusAmount(int amount) { this.totalAmount -= amount; } + public void updateSeniorDelete() { + this.senior = null; + this.account = null; + } } diff --git a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepository.java b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepository.java index c2e2b214..061c1601 100644 --- a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepository.java +++ b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepository.java @@ -15,4 +15,5 @@ public interface SalaryDslRepository { List findAllByNotDoneFromLast(LocalDate salaryDate); List findAllByDone(); List findAllBySalaryNoneAccount(LocalDate salaryDate, Senior senior); + boolean existIncompleteSalary(Senior senior); } diff --git a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepositoryImpl.java b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepositoryImpl.java index 3a73d664..467ef961 100644 --- a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepositoryImpl.java +++ b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryDslRepositoryImpl.java @@ -19,7 +19,7 @@ import static com.postgraduate.domain.account.domain.entity.QAccount.account; import static com.postgraduate.domain.salary.domain.entity.QSalary.salary; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; import static com.querydsl.core.types.Projections.constructor; import static java.lang.Boolean.FALSE; @@ -54,7 +54,7 @@ public Page findDistinctBySearchSenior(String search, Pageable pag .from(salary) .where( searchLike(search), - salary.senior.user.isDelete.eq(FALSE) + salary.senior.user.isDelete.isFalse() ) .fetchOne(); @@ -86,7 +86,10 @@ private BooleanExpression searchAccount(String search) { public List findAllLastSalary(LocalDate salaryDate) { return queryFactory.selectFrom(salary) .distinct() - .where(salary.salaryDate.eq(salaryDate)) + .where( + salary.salaryDate.eq(salaryDate), + salary.senior.user.isDelete.isFalse() + ) .leftJoin(salary.senior, senior) .fetchJoin() .leftJoin(salary.senior.user, user) @@ -101,7 +104,8 @@ public List findAllByNotDoneFromLast(LocalDate salaryDate) { .where( salary.status.isFalse(), salary.salaryDate.lt(salaryDate), - salary.totalAmount.gt(0) + salary.totalAmount.gt(0), + salary.senior.user.isDelete.isFalse() ) .leftJoin(salary.senior, senior) .fetchJoin() @@ -115,12 +119,14 @@ public List findAllByNotDoneFromLast(LocalDate salaryDate) { public List findAllByDone() { return queryFactory.selectFrom(salary) .distinct() - .where(salary.status.isTrue()) + .where( + salary.status.isTrue(), + salary.totalAmount.gt(0) + ) .leftJoin(salary.senior, senior) .fetchJoin() .leftJoin(senior.user, user) .fetchJoin() - .where(salary.totalAmount.gt(0)) .orderBy(salary.salaryDoneDate.desc()) .fetch(); } @@ -130,7 +136,8 @@ public List findAllBySalaryNoneAccount(LocalDate salaryDate, Senior sear List nowSalaries = queryFactory.selectFrom(salary) .where( salary.senior.eq(searchSenior), - salary.salaryDate.eq(salaryDate) + salary.salaryDate.eq(salaryDate), + salary.senior.user.isDelete.isFalse() .or(salary.salaryDate.goe(salaryDate)) ) .fetch(); @@ -138,8 +145,9 @@ public List findAllBySalaryNoneAccount(LocalDate salaryDate, Senior sear return queryFactory.selectFrom(salary) .distinct() .where( - salary.senior.eq(searchSenior) - .and(salary.account.isNull()) + salary.senior.eq(searchSenior), + salary.account.isNull(), + salary.senior.user.isDelete.isFalse() ) .leftJoin(salary.senior, senior) .fetchJoin() @@ -147,5 +155,16 @@ public List findAllBySalaryNoneAccount(LocalDate salaryDate, Senior sear } return nowSalaries; } + + @Override + public boolean existIncompleteSalary(Senior senior) { + Integer fetchFirst = queryFactory.selectOne() + .from(salary) + .where(salary.senior.eq(senior), + salary.status.isFalse(), + salary.totalAmount.gt(0)) + .fetchFirst(); + return fetchFirst != null; + } } diff --git a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryRepository.java b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryRepository.java index 57b74903..48167122 100644 --- a/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryRepository.java +++ b/src/main/java/com/postgraduate/domain/salary/domain/repository/SalaryRepository.java @@ -5,8 +5,10 @@ import org.springframework.data.jpa.repository.JpaRepository; import java.time.LocalDate; +import java.util.List; import java.util.Optional; public interface SalaryRepository extends JpaRepository, SalaryDslRepository { - Optional findBySeniorAndSalaryDate(Senior senior, LocalDate salaryDate); + Optional findBySeniorAndSalaryDateAndSenior_User_IsDeleteIsFalse(Senior senior, LocalDate salaryDate); + List findAllBySenior(Senior senior); } diff --git a/src/main/java/com/postgraduate/domain/salary/domain/service/SalaryGetService.java b/src/main/java/com/postgraduate/domain/salary/domain/service/SalaryGetService.java index 4727b3bb..ee75b967 100644 --- a/src/main/java/com/postgraduate/domain/salary/domain/service/SalaryGetService.java +++ b/src/main/java/com/postgraduate/domain/salary/domain/service/SalaryGetService.java @@ -1,16 +1,12 @@ package com.postgraduate.domain.salary.domain.service; import com.postgraduate.domain.salary.domain.entity.Salary; -import com.postgraduate.domain.salary.application.dto.SeniorSalary; import com.postgraduate.domain.salary.domain.repository.SalaryRepository; import com.postgraduate.domain.salary.exception.SalaryNotFoundException; import com.postgraduate.domain.salary.util.SalaryUtil; import com.postgraduate.domain.senior.domain.entity.Senior; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -20,7 +16,6 @@ @RequiredArgsConstructor @Slf4j public class SalaryGetService { - private static final int ADMIN_PAGE_SIZE = 15; private final SalaryRepository salaryRepository; @@ -37,7 +32,7 @@ public Salary bySalaryId(Long salaryId) { public Salary bySenior(Senior senior) { LocalDate salaryDate = SalaryUtil.getSalaryDate(); - return salaryRepository.findBySeniorAndSalaryDate(senior, salaryDate) + return salaryRepository.findBySeniorAndSalaryDateAndSenior_User_IsDeleteIsFalse(senior, salaryDate) .orElseThrow(SalaryNotFoundException::new); } @@ -46,12 +41,6 @@ public List allBySeniorAndAccountIsNull(Senior senior) { return salaryRepository.findAllBySalaryNoneAccount(salaryDate, senior); } - public Page findDistinctSeniors(String search, Integer page) { - page = page == null ? 1 : page; - Pageable pageable = PageRequest.of(page - 1, ADMIN_PAGE_SIZE); - return salaryRepository.findDistinctBySearchSenior(search, pageable); - } - public List findAllLast() { LocalDate salaryDate = SalaryUtil.getSalaryDate() diff --git a/src/main/java/com/postgraduate/domain/salary/presentation/SalaryController.java b/src/main/java/com/postgraduate/domain/salary/presentation/SalaryController.java index d70a69e7..f4871c56 100644 --- a/src/main/java/com/postgraduate/domain/salary/presentation/SalaryController.java +++ b/src/main/java/com/postgraduate/domain/salary/presentation/SalaryController.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.salary.application.dto.res.SalaryDetailsResponse; import com.postgraduate.domain.salary.application.dto.res.SalaryInfoResponse; import com.postgraduate.domain.salary.application.usecase.SalaryInfoUseCase; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/postgraduate/domain/salary/util/SalaryUtil.java b/src/main/java/com/postgraduate/domain/salary/util/SalaryUtil.java index c80ab98f..88e9fdf5 100644 --- a/src/main/java/com/postgraduate/domain/salary/util/SalaryUtil.java +++ b/src/main/java/com/postgraduate/domain/salary/util/SalaryUtil.java @@ -1,5 +1,6 @@ package com.postgraduate.domain.salary.util; +import com.postgraduate.domain.salary.domain.entity.SalaryAccount; import lombok.extern.slf4j.Slf4j; import java.time.DayOfWeek; @@ -22,4 +23,8 @@ public static LocalDate getSalaryDate() { ? now.plusDays(ONE_WEEK + SALARY_DATE) : now.plusDays(ONE_WEEK + (SALARY_DATE - dayOfWeek.getValue())); } -} + + public static SalaryAccount archiveSalary() { + return new SalaryAccount("탈퇴한 회원","탈퇴한 회원","탈퇴한 회원"); + } +} \ No newline at end of file diff --git a/src/main/java/com/postgraduate/domain/senior/application/mapper/SeniorMapper.java b/src/main/java/com/postgraduate/domain/senior/application/mapper/SeniorMapper.java index a8587005..22bf62ac 100644 --- a/src/main/java/com/postgraduate/domain/senior/application/mapper/SeniorMapper.java +++ b/src/main/java/com/postgraduate/domain/senior/application/mapper/SeniorMapper.java @@ -13,7 +13,7 @@ import com.postgraduate.domain.senior.domain.entity.constant.Field; import com.postgraduate.domain.senior.domain.entity.constant.Postgradu; import com.postgraduate.domain.senior.domain.entity.constant.Status; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import java.util.Arrays; import java.util.List; diff --git a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseCase.java b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseCase.java index 7397a4b7..92cea62e 100644 --- a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseCase.java +++ b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseCase.java @@ -10,7 +10,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.stereotype.Service; @@ -19,7 +19,7 @@ import java.util.List; import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.*; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; @Service @Transactional diff --git a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseCase.java b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseCase.java index 09dffa69..9ca7c916 100644 --- a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseCase.java +++ b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseCase.java @@ -8,6 +8,7 @@ import com.postgraduate.domain.available.domain.entity.Available; import com.postgraduate.domain.available.domain.service.AvailableDeleteService; import com.postgraduate.domain.available.domain.service.AvailableSaveService; +import com.postgraduate.domain.salary.application.mapper.SalaryMapper; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.entity.SalaryAccount; import com.postgraduate.domain.salary.domain.service.SalaryGetService; @@ -21,9 +22,9 @@ import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; import com.postgraduate.domain.senior.exception.NoneAccountException; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; import com.postgraduate.global.config.security.util.EncryptorUtils; import com.postgraduate.global.slack.SlackCertificationMessage; import lombok.RequiredArgsConstructor; @@ -35,7 +36,6 @@ import static com.postgraduate.domain.account.application.mapper.AccountMapper.mapToAccount; import static com.postgraduate.domain.available.application.util.AvailableUtil.sortAvailable; -import static com.postgraduate.domain.salary.application.mapper.SalaryMapper.mapToSalaryAccount; import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.mapToInfo; import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.mapToProfile; @@ -53,6 +53,7 @@ public class SeniorManageUseCase { private final AccountUpdateService accountUpdateService; private final SalaryGetService salaryGetService; private final SalaryUpdateService salaryUpdateService; + private final SalaryMapper salaryMapper; private final EncryptorUtils encryptorUtils; private final UserUtils userUtils; private final SeniorUtils seniorUtils; @@ -127,7 +128,7 @@ private void updateSeniorMyPageUserAccountNoneAccount(Senior senior, SeniorMyPag private void updateSalaryAccount(Senior senior, Account account) { List salaries = salaryGetService.allBySeniorAndAccountIsNull(senior); - SalaryAccount salaryAccount = mapToSalaryAccount(account); + SalaryAccount salaryAccount = salaryMapper.mapToSalaryAccount(account); salaries.forEach(salary -> salaryUpdateService.updateAccount(salary, salaryAccount)); } } diff --git a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseCase.java b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseCase.java index 00688c11..b917c308 100644 --- a/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseCase.java +++ b/src/main/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseCase.java @@ -10,7 +10,7 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.service.WishGetService; import com.postgraduate.global.config.security.util.EncryptorUtils; diff --git a/src/main/java/com/postgraduate/domain/senior/domain/entity/Senior.java b/src/main/java/com/postgraduate/domain/senior/domain/entity/Senior.java index 5fecc444..70c66012 100644 --- a/src/main/java/com/postgraduate/domain/senior/domain/entity/Senior.java +++ b/src/main/java/com/postgraduate/domain/senior/domain/entity/Senior.java @@ -1,7 +1,7 @@ package com.postgraduate.domain.senior.domain.entity; import com.postgraduate.domain.senior.domain.entity.constant.Status; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; diff --git a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepository.java b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepository.java index 9afd0e75..dbc352d8 100644 --- a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepository.java +++ b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepository.java @@ -1,7 +1,7 @@ package com.postgraduate.domain.senior.domain.repository; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; diff --git a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepositoryImpl.java b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepositoryImpl.java index a1297219..84073366 100644 --- a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepositoryImpl.java +++ b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorDslRepositoryImpl.java @@ -1,7 +1,7 @@ package com.postgraduate.domain.senior.domain.repository; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.querydsl.core.Tuple; import com.querydsl.core.types.OrderSpecifier; import com.querydsl.core.types.dsl.BooleanExpression; @@ -20,7 +20,7 @@ import java.util.Optional; import static com.postgraduate.domain.senior.domain.entity.QSenior.senior; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; import static com.querydsl.core.types.Order.ASC; import static com.querydsl.core.types.Order.DESC; import static com.querydsl.core.types.dsl.Expressions.FALSE; @@ -44,7 +44,7 @@ public Page findAllBySearchSenior(String search, String sort, Pageable p .where( senior.info.totalInfo.like("%" + search + "%") .or(senior.user.nickName.like("%" + search + "%")), - senior.user.isDelete.eq(FALSE) + senior.user.isDelete.isFalse() ) .orderBy(mentoringOrderSpecifier(sort)) .orderBy(hitOrderSpecifier(sort)) @@ -76,7 +76,7 @@ public Page findAllBySearchSenior(String search, String sort, Pageable p .where( senior.info.totalInfo.like("%" + search + "%") .or(senior.user.nickName.like("%" + search + "%")), - senior.user.isDelete.eq(FALSE) + senior.user.isDelete.isFalse() ) .fetchOne(); @@ -109,7 +109,7 @@ public Page findAllByFieldSenior(String field, String postgradu, Pageabl .where( fieldSpecifier(field), postgraduSpecifier(postgradu), - senior.user.isDelete.eq(FALSE) + senior.user.isDelete.isFalse() ) .orderBy(senior.mentoringHit.desc()) .orderBy(senior.hit.desc()) @@ -140,7 +140,7 @@ public Page findAllByFieldSenior(String field, String postgradu, Pageabl .where( fieldSpecifier(field), postgraduSpecifier(postgradu), - senior.user.isDelete.eq(FALSE) + senior.user.isDelete.isFalse() ) .fetchOne(); @@ -188,7 +188,10 @@ public Optional findByUserWithAll(User seniorUser) { .distinct() .join(senior.user, user) .fetchJoin() - .where(senior.user.eq(seniorUser)) + .where( + senior.user.eq(seniorUser), + senior.user.isDelete.isFalse() + ) .fetchOne() ); } @@ -199,7 +202,7 @@ public List findAllSenior() { .distinct() .leftJoin(senior.user, user) .fetchJoin() - .where(senior.user.isDelete.eq(FALSE)) + .where(senior.user.isDelete.isFalse()) .orderBy(senior.createdAt.desc()) .fetch(); } diff --git a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorRepository.java b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorRepository.java index a2428c43..753d6961 100644 --- a/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorRepository.java +++ b/src/main/java/com/postgraduate/domain/senior/domain/repository/SeniorRepository.java @@ -1,14 +1,15 @@ package com.postgraduate.domain.senior.domain.repository; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; import java.util.Optional; public interface SeniorRepository extends JpaRepository, SeniorDslRepository { - Optional findByUser(User user); + Optional findByUserAndUser_IsDeleteIsFalse(User user); Optional findByUser_NickNameAndUser_IsDelete(String nickName, Boolean isDelete); List findAllByUser_IsDelete(Boolean isDelete); + Optional findByUserAndUser_IsDelete(User user, Boolean isDelete); } diff --git a/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorDeleteService.java b/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorDeleteService.java new file mode 100644 index 00000000..5250390a --- /dev/null +++ b/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorDeleteService.java @@ -0,0 +1,50 @@ +package com.postgraduate.domain.senior.domain.service; + +import com.postgraduate.domain.account.domain.repository.AccountRepository; +import com.postgraduate.domain.available.domain.repository.AvailableRepository; +import com.postgraduate.domain.mentoring.domain.entity.Mentoring; +import com.postgraduate.domain.mentoring.domain.repository.MentoringRepository; +import com.postgraduate.domain.payment.domain.entity.Payment; +import com.postgraduate.domain.payment.domain.repository.PaymentRepository; +import com.postgraduate.domain.salary.domain.entity.Salary; +import com.postgraduate.domain.salary.domain.repository.SalaryRepository; +import com.postgraduate.domain.senior.domain.entity.Senior; +import com.postgraduate.domain.senior.domain.repository.SeniorRepository; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class SeniorDeleteService { + private final SeniorRepository seniorRepository; + private final PaymentRepository paymentRepository; + private final MentoringRepository mentoringRepository; + private final AccountRepository accountRepository; + private final AvailableRepository availableRepository; + private final SalaryRepository salaryRepository; + + public void deleteSenior(User user) { + Senior senior = seniorRepository.findByUserAndUser_IsDelete(user, true) + .orElseThrow(UserNotFoundException::new); + //account 삭제 + accountRepository.deleteBySenior(senior); + //available 삭제 + availableRepository.deleteAllBySenior(senior); + //mentoring senior null + mentoringRepository.findAllBySenior(senior) + .stream() + .forEach(Mentoring::updateSeniorDelete); + //salary senior null + salaryRepository.findAllBySenior(senior) + .stream() + .forEach(Salary::updateSeniorDelete); + //payment senior null + paymentRepository.findAllBySenior(senior) + .stream() + .forEach(Payment::updateSeniorDelete); + //senior 삭제 + seniorRepository.deleteById(senior.getSeniorId()); + } +} diff --git a/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorGetService.java b/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorGetService.java index 39d562f0..3f8e0e1f 100644 --- a/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorGetService.java +++ b/src/main/java/com/postgraduate/domain/senior/domain/service/SeniorGetService.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.repository.SeniorRepository; import com.postgraduate.domain.senior.exception.NoneSeniorException; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; @@ -21,7 +21,8 @@ public class SeniorGetService { private static final int SENIOR_PAGE_SIZE = 10; public Senior byUser(User user) { - return seniorRepository.findByUser(user).orElseThrow(NoneSeniorException::new); + return seniorRepository.findByUserAndUser_IsDeleteIsFalse(user) + .orElseThrow(NoneSeniorException::new); } public Senior byUserWithAll(User user) { diff --git a/src/main/java/com/postgraduate/domain/senior/presentation/SeniorController.java b/src/main/java/com/postgraduate/domain/senior/presentation/SeniorController.java index 08a43f0b..662e554f 100644 --- a/src/main/java/com/postgraduate/domain/senior/presentation/SeniorController.java +++ b/src/main/java/com/postgraduate/domain/senior/presentation/SeniorController.java @@ -6,7 +6,7 @@ import com.postgraduate.domain.senior.application.usecase.SeniorInfoUseCase; import com.postgraduate.domain.senior.application.usecase.SeniorManageUseCase; import com.postgraduate.domain.senior.application.usecase.SeniorMyPageUseCase; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseCase.java b/src/main/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseCase.java deleted file mode 100644 index 0e8a6a43..00000000 --- a/src/main/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseCase.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.postgraduate.domain.user.application.usecase; - -import com.postgraduate.domain.user.application.dto.res.UserInfoResponse; -import com.postgraduate.domain.user.application.dto.res.UserMyPageResponse; -import com.postgraduate.domain.user.application.dto.res.UserPossibleResponse; -import com.postgraduate.domain.user.application.mapper.UserMapper; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -import static com.postgraduate.domain.user.application.mapper.UserMapper.mapToInfo; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; - -@Service -@RequiredArgsConstructor -public class UserMyPageUseCase { - public UserMyPageResponse getUserInfo(User user) { - return UserMapper.mapToMyPageInfo(user); - } - - public UserInfoResponse getUserOriginInfo(User user) { - return mapToInfo(user); - } - - public UserPossibleResponse checkSenior(User user) { - Role role = user.getRole(); - if (role.equals(SENIOR)) - return new UserPossibleResponse(true, user.getSocialId()); - return new UserPossibleResponse(false, user.getSocialId()); - } -} diff --git a/src/main/java/com/postgraduate/domain/user/application/utils/UserUtils.java b/src/main/java/com/postgraduate/domain/user/application/utils/UserUtils.java deleted file mode 100644 index edaf772a..00000000 --- a/src/main/java/com/postgraduate/domain/user/application/utils/UserUtils.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.postgraduate.domain.user.application.utils; - -import com.postgraduate.domain.user.exception.PhoneNumberException; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Component; - -@RequiredArgsConstructor -@Component -public class UserUtils { - public void checkPhoneNumber(String phoneNumber) { - if (phoneNumber.length() != 11) - throw new PhoneNumberException(); - try { - Long.parseLong(phoneNumber); - } catch (Exception e) { - throw new PhoneNumberException(); - } - } -} diff --git a/src/main/java/com/postgraduate/domain/user/exception/UserNotFoundException.java b/src/main/java/com/postgraduate/domain/user/exception/UserNotFoundException.java deleted file mode 100644 index 899eee2b..00000000 --- a/src/main/java/com/postgraduate/domain/user/exception/UserNotFoundException.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.postgraduate.domain.user.exception; - -import com.postgraduate.global.exception.ApplicationException; - -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_NOT_FOUND; -import static com.postgraduate.domain.user.presentation.constant.UserResponseMessage.NOT_FOUND_USER; - -public class UserNotFoundException extends ApplicationException { - public UserNotFoundException() { - super(NOT_FOUND_USER.getMessage(), USER_NOT_FOUND.getCode()); - } -} diff --git a/src/main/java/com/postgraduate/domain/user/quit/application/mapper/QuitMapper.java b/src/main/java/com/postgraduate/domain/user/quit/application/mapper/QuitMapper.java new file mode 100644 index 00000000..941bb72f --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/application/mapper/QuitMapper.java @@ -0,0 +1,26 @@ +package com.postgraduate.domain.user.quit.application.mapper; + +import com.postgraduate.domain.auth.application.dto.req.SignOutRequest; +import com.postgraduate.domain.user.quit.domain.entity.Quit; +import com.postgraduate.domain.user.quit.domain.entity.Quit.QuitBuilder; +import com.postgraduate.domain.user.user.domain.entity.User; +import lombok.AccessLevel; +import lombok.NoArgsConstructor; + +import static com.postgraduate.domain.user.quit.domain.entity.constant.QuitReason.ETC; + +@NoArgsConstructor(access = AccessLevel.PRIVATE) +public class QuitMapper { + public static Quit mapToQuit(User user, SignOutRequest request) { + QuitBuilder builder = getBuilder(user, request); + if (request.reason().equals(ETC)) + builder.etc(request.etc()); + return builder.build(); + } + + private static QuitBuilder getBuilder(User user, SignOutRequest request) { + return Quit.builder() + .role(user.getRole()) + .reason(request.reason()); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/application/usecase/QuitManageUseCase.java b/src/main/java/com/postgraduate/domain/user/quit/application/usecase/QuitManageUseCase.java new file mode 100644 index 00000000..6b6c23f3 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/application/usecase/QuitManageUseCase.java @@ -0,0 +1,69 @@ +package com.postgraduate.domain.user.quit.application.usecase; + +import com.postgraduate.domain.auth.application.dto.req.SignOutRequest; +import com.postgraduate.domain.senior.domain.entity.Senior; +import com.postgraduate.domain.senior.domain.service.SeniorDeleteService; +import com.postgraduate.domain.senior.domain.service.SeniorGetService; +import com.postgraduate.domain.user.quit.application.mapper.QuitMapper; +import com.postgraduate.domain.user.quit.application.utils.QuitUtils; +import com.postgraduate.domain.user.quit.domain.entity.Quit; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.quit.domain.service.QuitSaveService; +import com.postgraduate.domain.user.user.domain.service.UserDeleteService; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.DeletedUserException; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@RequiredArgsConstructor +@Transactional +@Service +@Slf4j +public class QuitManageUseCase { + private final UserGetService userGetService; + private final UserDeleteService userDeleteService; + private final UserUpdateService userUpdateService; + private final SeniorGetService seniorGetService; + private final SeniorDeleteService seniorDeleteService; + private final QuitSaveService quitSaveService; + private final QuitUtils quitUtils; + + public void updateDelete(User user, SignOutRequest signOutRequest) { + user = userGetService.byUserId(user.getUserId()); + checkDeleteCondition(user); + Quit quit = QuitMapper.mapToQuit(user, signOutRequest); + quitSaveService.save(quit); + userUpdateService.updateDelete(user); + } + + private void checkDeleteCondition(User user) { + if (user.isDelete()) + throw new DeletedUserException(); + if (user.getRole().equals(Role.SENIOR)) { + Senior senior = seniorGetService.byUser(user); + quitUtils.checkDeleteCondition(senior); + return; + } + quitUtils.checkDeleteCondition(user); + } + + @Scheduled(cron = "0 0 1 * * *", zone = "Asia/Seoul") + public void updateRealDelete() { + userGetService.byDelete() + .stream() + .filter(User::isRealDelete) + .forEach( + user -> { + if (user.isSenior()) { + seniorDeleteService.deleteSenior(user); + } + userDeleteService.deleteUser(user); + } + ); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/application/utils/QuitUtils.java b/src/main/java/com/postgraduate/domain/user/quit/application/utils/QuitUtils.java new file mode 100644 index 00000000..86897802 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/application/utils/QuitUtils.java @@ -0,0 +1,33 @@ +package com.postgraduate.domain.user.quit.application.utils; + +import com.postgraduate.domain.mentoring.domain.repository.MentoringRepository; +import com.postgraduate.domain.salary.domain.repository.SalaryRepository; +import com.postgraduate.domain.senior.domain.entity.Senior; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.exception.IncompleteJuniorMentoringException; +import com.postgraduate.domain.user.user.exception.IncompleteSalaryException; +import com.postgraduate.domain.user.user.exception.IncompleteSeniorMentoringException; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Component; + +@Component +@RequiredArgsConstructor +public class QuitUtils { + private final MentoringRepository mentoringRepository; + private final SalaryRepository salaryRepository; + + + public void checkDeleteCondition(Senior senior) { + if (mentoringRepository.existSeniorMentoring(senior)) + throw new IncompleteSeniorMentoringException(); + if (mentoringRepository.existUserMentoring(senior.getUser())) + throw new IncompleteJuniorMentoringException(); + if (salaryRepository.existIncompleteSalary(senior)) + throw new IncompleteSalaryException(); + } + + public void checkDeleteCondition(User user) { + if (mentoringRepository.existUserMentoring(user)) + throw new IncompleteJuniorMentoringException(); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/domain/entity/Quit.java b/src/main/java/com/postgraduate/domain/user/quit/domain/entity/Quit.java new file mode 100644 index 00000000..e18a2345 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/domain/entity/Quit.java @@ -0,0 +1,28 @@ +package com.postgraduate.domain.user.quit.domain.entity; + +import com.postgraduate.domain.user.quit.domain.entity.constant.QuitReason; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Builder +@AllArgsConstructor +@NoArgsConstructor +@Getter +public class Quit { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long quitId; + + @Enumerated(EnumType.STRING) + private QuitReason reason; + + private String etc; + + @Enumerated(EnumType.STRING) + private Role role; +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/domain/entity/constant/QuitReason.java b/src/main/java/com/postgraduate/domain/user/quit/domain/entity/constant/QuitReason.java new file mode 100644 index 00000000..13505f98 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/domain/entity/constant/QuitReason.java @@ -0,0 +1,18 @@ +package com.postgraduate.domain.user.quit.domain.entity.constant; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@RequiredArgsConstructor +@Getter +public enum QuitReason { + PRIVACY("개인정보 문제"), + REVENUE("수익창출의 어려움"), + FEW_JUNIOR("다양하지 않은 후배 풀"), + FEW_SENIOR("다양하지 않은 선배 풀"), + DIS_SATISFACTION("멘토링 진행의 불만족"), + EXPENSE("비용 문제"), + ETC("기타"); + + private final String reason; +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/domain/repository/QuitRepository.java b/src/main/java/com/postgraduate/domain/user/quit/domain/repository/QuitRepository.java new file mode 100644 index 00000000..a7fb2716 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/domain/repository/QuitRepository.java @@ -0,0 +1,7 @@ +package com.postgraduate.domain.user.quit.domain.repository; + +import com.postgraduate.domain.user.quit.domain.entity.Quit; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface QuitRepository extends JpaRepository { +} diff --git a/src/main/java/com/postgraduate/domain/user/quit/domain/service/QuitSaveService.java b/src/main/java/com/postgraduate/domain/user/quit/domain/service/QuitSaveService.java new file mode 100644 index 00000000..a39f8f83 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/quit/domain/service/QuitSaveService.java @@ -0,0 +1,16 @@ +package com.postgraduate.domain.user.quit.domain.service; + +import com.postgraduate.domain.user.quit.domain.entity.Quit; +import com.postgraduate.domain.user.quit.domain.repository.QuitRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class QuitSaveService { + private final QuitRepository quitRepository; + + public void save(Quit quit) { + quitRepository.save(quit); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/application/dto/req/UserInfoRequest.java b/src/main/java/com/postgraduate/domain/user/user/application/dto/req/UserInfoRequest.java similarity index 72% rename from src/main/java/com/postgraduate/domain/user/application/dto/req/UserInfoRequest.java rename to src/main/java/com/postgraduate/domain/user/user/application/dto/req/UserInfoRequest.java index 5eb65b7d..2338b4e4 100644 --- a/src/main/java/com/postgraduate/domain/user/application/dto/req/UserInfoRequest.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/dto/req/UserInfoRequest.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.application.dto.req; +package com.postgraduate.domain.user.user.application.dto.req; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserInfoResponse.java b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserInfoResponse.java similarity index 64% rename from src/main/java/com/postgraduate/domain/user/application/dto/res/UserInfoResponse.java rename to src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserInfoResponse.java index eeb72296..61ea1d81 100644 --- a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserInfoResponse.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserInfoResponse.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.application.dto.res; +package com.postgraduate.domain.user.user.application.dto.res; public record UserInfoResponse( String profile, diff --git a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserMyPageResponse.java b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserMyPageResponse.java similarity index 58% rename from src/main/java/com/postgraduate/domain/user/application/dto/res/UserMyPageResponse.java rename to src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserMyPageResponse.java index 8165d6a7..5b8c62df 100644 --- a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserMyPageResponse.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserMyPageResponse.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.application.dto.res; +package com.postgraduate.domain.user.user.application.dto.res; public record UserMyPageResponse( String nickName, diff --git a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserPossibleResponse.java b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserPossibleResponse.java similarity index 53% rename from src/main/java/com/postgraduate/domain/user/application/dto/res/UserPossibleResponse.java rename to src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserPossibleResponse.java index c18b30cd..a0eb6c9c 100644 --- a/src/main/java/com/postgraduate/domain/user/application/dto/res/UserPossibleResponse.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/dto/res/UserPossibleResponse.java @@ -1,3 +1,3 @@ -package com.postgraduate.domain.user.application.dto.res; +package com.postgraduate.domain.user.user.application.dto.res; public record UserPossibleResponse(Boolean possible, Long socialId) {} diff --git a/src/main/java/com/postgraduate/domain/user/application/mapper/UserMapper.java b/src/main/java/com/postgraduate/domain/user/user/application/mapper/UserMapper.java similarity index 79% rename from src/main/java/com/postgraduate/domain/user/application/mapper/UserMapper.java rename to src/main/java/com/postgraduate/domain/user/user/application/mapper/UserMapper.java index e7f861cd..5b1fb3a0 100644 --- a/src/main/java/com/postgraduate/domain/user/application/mapper/UserMapper.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/mapper/UserMapper.java @@ -1,12 +1,12 @@ -package com.postgraduate.domain.user.application.mapper; +package com.postgraduate.domain.user.user.application.mapper; import com.postgraduate.domain.auth.application.dto.req.SeniorSignUpRequest; import com.postgraduate.domain.auth.application.dto.req.SignUpRequest; -import com.postgraduate.domain.user.application.dto.res.UserInfoResponse; -import com.postgraduate.domain.user.application.dto.res.UserMyPageResponse; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.dto.res.UserInfoResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserMyPageResponse; +import com.postgraduate.domain.user.user.domain.entity.User; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; public class UserMapper { diff --git a/src/main/java/com/postgraduate/domain/user/application/usecase/UserManageUseCase.java b/src/main/java/com/postgraduate/domain/user/user/application/usecase/UserManageUseCase.java similarity index 65% rename from src/main/java/com/postgraduate/domain/user/application/usecase/UserManageUseCase.java rename to src/main/java/com/postgraduate/domain/user/user/application/usecase/UserManageUseCase.java index c22c7f33..c64ba51e 100644 --- a/src/main/java/com/postgraduate/domain/user/application/usecase/UserManageUseCase.java +++ b/src/main/java/com/postgraduate/domain/user/user/application/usecase/UserManageUseCase.java @@ -1,10 +1,10 @@ -package com.postgraduate.domain.user.application.usecase; +package com.postgraduate.domain.user.user.application.usecase; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; diff --git a/src/main/java/com/postgraduate/domain/user/user/application/usecase/UserMyPageUseCase.java b/src/main/java/com/postgraduate/domain/user/user/application/usecase/UserMyPageUseCase.java new file mode 100644 index 00000000..7e28cf88 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/application/usecase/UserMyPageUseCase.java @@ -0,0 +1,29 @@ +package com.postgraduate.domain.user.user.application.usecase; + +import com.postgraduate.domain.user.user.application.dto.res.UserInfoResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserMyPageResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserPossibleResponse; +import com.postgraduate.domain.user.user.application.mapper.UserMapper; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +@Service +@RequiredArgsConstructor +public class UserMyPageUseCase { + public UserMyPageResponse getUserInfo(User user) { + return UserMapper.mapToMyPageInfo(user); + } + + public UserInfoResponse getUserOriginInfo(User user) { + return UserMapper.mapToInfo(user); + } + + public UserPossibleResponse checkSenior(User user) { + Role role = user.getRole(); + if (role.equals(Role.SENIOR)) + return new UserPossibleResponse(true, user.getSocialId()); + return new UserPossibleResponse(false, user.getSocialId()); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/user/application/utils/UserUtils.java b/src/main/java/com/postgraduate/domain/user/user/application/utils/UserUtils.java new file mode 100644 index 00000000..90d17cf3 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/application/utils/UserUtils.java @@ -0,0 +1,35 @@ +package com.postgraduate.domain.user.user.application.utils; + +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; +import jakarta.annotation.PostConstruct; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class UserUtils { + @Value("${profile.senior.default1}") + private String profile; + private User archiveUser; + + @PostConstruct + public void init() { + archiveUser = new User(-100L, -100L, null, "알수없음", "탈퇴한회원", profile, 0, null, false, null, null, false); + } + + public User getArchiveUser() { + return archiveUser; + } + + public void checkPhoneNumber(String phoneNumber) { + if (phoneNumber.length() != 11) + throw new PhoneNumberException(); + try { + Long.parseLong(phoneNumber); + } catch (Exception e) { + throw new PhoneNumberException(); + } + } +} diff --git a/src/main/java/com/postgraduate/domain/user/domain/entity/User.java b/src/main/java/com/postgraduate/domain/user/user/domain/entity/User.java similarity index 76% rename from src/main/java/com/postgraduate/domain/user/domain/entity/User.java rename to src/main/java/com/postgraduate/domain/user/user/domain/entity/User.java index bd5eaeed..f79faa85 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/entity/User.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/entity/User.java @@ -1,6 +1,6 @@ -package com.postgraduate.domain.user.domain.entity; +package com.postgraduate.domain.user.user.domain.entity; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import jakarta.persistence.*; import jakarta.persistence.Index; import jakarta.persistence.Table; @@ -13,6 +13,8 @@ import java.time.LocalDateTime; import java.util.List; +import static java.time.LocalDate.now; + @Entity @Table(indexes = { @Index(name = "user_nick_name_index", columnList = "nickName"), @@ -81,6 +83,10 @@ public void updateDelete() { this.isDelete = true; } + public void restoreDelete() { + this.isDelete = false; + } + public boolean isDelete() { return this.isDelete; } @@ -88,4 +94,19 @@ public boolean isDelete() { public boolean isDefaultProfile(List defaultProfile) { return defaultProfile.contains(profile); } + + public boolean isRealDelete() { + return ( + this.isDelete + && + this.updatedAt.isBefore( + now().minusMonths(3) + .atStartOfDay() + ) + ); + } + + public boolean isSenior() { + return this.role.equals(Role.SENIOR); + } } diff --git a/src/main/java/com/postgraduate/domain/user/domain/entity/constant/Role.java b/src/main/java/com/postgraduate/domain/user/user/domain/entity/constant/Role.java similarity index 66% rename from src/main/java/com/postgraduate/domain/user/domain/entity/constant/Role.java rename to src/main/java/com/postgraduate/domain/user/user/domain/entity/constant/Role.java index 1d05e107..41e03a05 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/entity/constant/Role.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/entity/constant/Role.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.domain.entity.constant; +package com.postgraduate.domain.user.user.domain.entity.constant; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/postgraduate/domain/user/domain/repository/UserRepository.java b/src/main/java/com/postgraduate/domain/user/user/domain/repository/UserRepository.java similarity index 63% rename from src/main/java/com/postgraduate/domain/user/domain/repository/UserRepository.java rename to src/main/java/com/postgraduate/domain/user/user/domain/repository/UserRepository.java index b33ff09a..c24d987a 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/repository/UserRepository.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/repository/UserRepository.java @@ -1,11 +1,13 @@ -package com.postgraduate.domain.user.domain.repository; +package com.postgraduate.domain.user.user.domain.repository; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; import java.util.Optional; public interface UserRepository extends JpaRepository { + List findAllByIsDelete(boolean isDelete); Optional findBySocialId(Long socialId); Optional findByNickName(String nickName); Optional findByNickNameAndPhoneNumber(String nickName, String phoneNumber); diff --git a/src/main/java/com/postgraduate/domain/user/user/domain/service/UserDeleteService.java b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserDeleteService.java new file mode 100644 index 00000000..03baf30e --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserDeleteService.java @@ -0,0 +1,37 @@ +package com.postgraduate.domain.user.user.domain.service; + +import com.postgraduate.domain.mentoring.domain.entity.Mentoring; +import com.postgraduate.domain.mentoring.domain.repository.MentoringRepository; +import com.postgraduate.domain.payment.domain.entity.Payment; +import com.postgraduate.domain.payment.domain.repository.PaymentRepository; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; +import com.postgraduate.domain.wish.domain.repository.WishRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +@Slf4j +@Service +@RequiredArgsConstructor +public class UserDeleteService { + private final UserRepository userRepository; + private final WishRepository wishRepository; + private final MentoringRepository mentoringRepository; + private final PaymentRepository paymentRepository; + + public void deleteUser(User user) { + mentoringRepository.findAllByUser(user) + .stream() + .forEach(Mentoring::updateUserDelete); + // payment 에서 User null로 변경 + paymentRepository.findAllByUser(user) + .stream() + .forEach(Payment::updateUserDelete); + log.info("wish 삭제"); + wishRepository.deleteByUser(user); + log.info("user 삭제"); + userRepository.delete(user); + // mentoring 에서 user null로 변경 + } +} diff --git a/src/main/java/com/postgraduate/domain/user/domain/service/UserGetService.java b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserGetService.java similarity index 62% rename from src/main/java/com/postgraduate/domain/user/domain/service/UserGetService.java rename to src/main/java/com/postgraduate/domain/user/user/domain/service/UserGetService.java index b94a5402..9a26de72 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/service/UserGetService.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserGetService.java @@ -1,8 +1,8 @@ -package com.postgraduate.domain.user.domain.service; +package com.postgraduate.domain.user.user.domain.service; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.repository.UserRepository; -import com.postgraduate.domain.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -27,6 +27,10 @@ public Optional byNickName(String nickName) { } public List all() { - return userRepository.findAll(); + return userRepository.findAllByIsDelete(false); + } + + public List byDelete() { + return userRepository.findAllByIsDelete(true); } } diff --git a/src/main/java/com/postgraduate/domain/user/domain/service/UserSaveService.java b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserSaveService.java similarity index 59% rename from src/main/java/com/postgraduate/domain/user/domain/service/UserSaveService.java rename to src/main/java/com/postgraduate/domain/user/user/domain/service/UserSaveService.java index 96843dd8..a42cbad2 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/service/UserSaveService.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserSaveService.java @@ -1,7 +1,7 @@ -package com.postgraduate.domain.user.domain.service; +package com.postgraduate.domain.user.user.domain.service; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/postgraduate/domain/user/domain/service/UserUpdateService.java b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserUpdateService.java similarity index 77% rename from src/main/java/com/postgraduate/domain/user/domain/service/UserUpdateService.java rename to src/main/java/com/postgraduate/domain/user/user/domain/service/UserUpdateService.java index 526e3faa..3665bca6 100644 --- a/src/main/java/com/postgraduate/domain/user/domain/service/UserUpdateService.java +++ b/src/main/java/com/postgraduate/domain/user/user/domain/service/UserUpdateService.java @@ -1,13 +1,13 @@ -package com.postgraduate.domain.user.domain.service; +package com.postgraduate.domain.user.user.domain.service; import com.postgraduate.domain.auth.util.ProfileUtils; import com.postgraduate.domain.senior.application.dto.req.SeniorMyPageUserAccountRequest; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; @Service @RequiredArgsConstructor @@ -38,4 +38,8 @@ public void updateSeniorUserAccount(User user, SeniorMyPageUserAccountRequest my myPageUserAccountRequest.phoneNumber() ); } + + public void updateRestore(User user) { + user.restoreDelete(); + } } diff --git a/src/main/java/com/postgraduate/domain/user/exception/DeletedUserException.java b/src/main/java/com/postgraduate/domain/user/user/exception/DeletedUserException.java similarity index 55% rename from src/main/java/com/postgraduate/domain/user/exception/DeletedUserException.java rename to src/main/java/com/postgraduate/domain/user/user/exception/DeletedUserException.java index 117d2094..700be352 100644 --- a/src/main/java/com/postgraduate/domain/user/exception/DeletedUserException.java +++ b/src/main/java/com/postgraduate/domain/user/user/exception/DeletedUserException.java @@ -1,7 +1,7 @@ -package com.postgraduate.domain.user.exception; +package com.postgraduate.domain.user.user.exception; -import com.postgraduate.domain.user.presentation.constant.UserResponseCode; -import com.postgraduate.domain.user.presentation.constant.UserResponseMessage; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseCode; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage; import com.postgraduate.global.exception.ApplicationException; public class DeletedUserException extends ApplicationException { diff --git a/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteJuniorMentoringException.java b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteJuniorMentoringException.java new file mode 100644 index 00000000..0e164199 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteJuniorMentoringException.java @@ -0,0 +1,9 @@ +package com.postgraduate.domain.user.user.exception; + +import com.postgraduate.global.exception.ApplicationException; + +public class IncompleteJuniorMentoringException extends ApplicationException { + public IncompleteJuniorMentoringException() { + super("신청한 멘토링 중 완료되지 않은 멘토링이 있습니다", "code"); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSalaryException.java b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSalaryException.java new file mode 100644 index 00000000..8a3b9cbf --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSalaryException.java @@ -0,0 +1,9 @@ +package com.postgraduate.domain.user.user.exception; + +import com.postgraduate.global.exception.ApplicationException; + +public class IncompleteSalaryException extends ApplicationException { + public IncompleteSalaryException() { + super("아직 정산이 완료되지 않았습니다", "code"); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSeniorMentoringException.java b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSeniorMentoringException.java new file mode 100644 index 00000000..7d2dd954 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/exception/IncompleteSeniorMentoringException.java @@ -0,0 +1,9 @@ +package com.postgraduate.domain.user.user.exception; + +import com.postgraduate.global.exception.ApplicationException; + +public class IncompleteSeniorMentoringException extends ApplicationException { + public IncompleteSeniorMentoringException() { + super("신청받은 멘토링 중 완료되지 않은 멘토링이 있습니다", "code"); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/exception/PhoneNumberException.java b/src/main/java/com/postgraduate/domain/user/user/exception/PhoneNumberException.java similarity index 57% rename from src/main/java/com/postgraduate/domain/user/exception/PhoneNumberException.java rename to src/main/java/com/postgraduate/domain/user/user/exception/PhoneNumberException.java index 3a68bb78..530292fa 100644 --- a/src/main/java/com/postgraduate/domain/user/exception/PhoneNumberException.java +++ b/src/main/java/com/postgraduate/domain/user/user/exception/PhoneNumberException.java @@ -1,7 +1,7 @@ -package com.postgraduate.domain.user.exception; +package com.postgraduate.domain.user.user.exception; -import com.postgraduate.domain.user.presentation.constant.UserResponseCode; -import com.postgraduate.domain.user.presentation.constant.UserResponseMessage; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseCode; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage; import com.postgraduate.global.exception.ApplicationException; public class PhoneNumberException extends ApplicationException { diff --git a/src/main/java/com/postgraduate/domain/user/user/exception/UserNotFoundException.java b/src/main/java/com/postgraduate/domain/user/user/exception/UserNotFoundException.java new file mode 100644 index 00000000..c146bf52 --- /dev/null +++ b/src/main/java/com/postgraduate/domain/user/user/exception/UserNotFoundException.java @@ -0,0 +1,12 @@ +package com.postgraduate.domain.user.user.exception; + +import com.postgraduate.global.exception.ApplicationException; + +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_NOT_FOUND; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage.NOT_FOUND_USER; + +public class UserNotFoundException extends ApplicationException { + public UserNotFoundException() { + super(NOT_FOUND_USER.getMessage(), USER_NOT_FOUND.getCode()); + } +} diff --git a/src/main/java/com/postgraduate/domain/user/presentation/UserController.java b/src/main/java/com/postgraduate/domain/user/user/presentation/UserController.java similarity index 62% rename from src/main/java/com/postgraduate/domain/user/presentation/UserController.java rename to src/main/java/com/postgraduate/domain/user/user/presentation/UserController.java index 6ab5b550..4fa38c81 100644 --- a/src/main/java/com/postgraduate/domain/user/presentation/UserController.java +++ b/src/main/java/com/postgraduate/domain/user/user/presentation/UserController.java @@ -1,12 +1,14 @@ -package com.postgraduate.domain.user.presentation; +package com.postgraduate.domain.user.user.presentation; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.application.dto.res.UserInfoResponse; -import com.postgraduate.domain.user.application.dto.res.UserMyPageResponse; -import com.postgraduate.domain.user.application.dto.res.UserPossibleResponse; -import com.postgraduate.domain.user.application.usecase.UserManageUseCase; -import com.postgraduate.domain.user.application.usecase.UserMyPageUseCase; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.application.dto.res.UserInfoResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserMyPageResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserPossibleResponse; +import com.postgraduate.domain.user.user.application.usecase.UserManageUseCase; +import com.postgraduate.domain.user.user.application.usecase.UserMyPageUseCase; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseCode; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage; import com.postgraduate.global.dto.ResponseDto; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -16,9 +18,6 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.*; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_FIND; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_UPDATE; -import static com.postgraduate.domain.user.presentation.constant.UserResponseMessage.*; import static com.postgraduate.global.dto.ResponseDto.create; @RestController @@ -33,14 +32,14 @@ public class UserController { @Operation(summary = "사용자 마이페이지 정보 조회 | 토큰 필요", description = "닉네임, 프로필") public ResponseEntity> getUserInfo(@AuthenticationPrincipal User user) { UserMyPageResponse userInfo = myPageUseCase.getUserInfo(user); - return ResponseEntity.ok(create(USER_FIND.getCode(), GET_USER_INFO.getMessage(), userInfo)); + return ResponseEntity.ok(create(UserResponseCode.USER_FIND.getCode(), UserResponseMessage.GET_USER_INFO.getMessage(), userInfo)); } @GetMapping("/me/info") @Operation(summary = "대학생 마이페이지 정보 수정 화면 기존 정보 | 토큰 필요", description = "프로필사진, 닉네임, 번호") public ResponseEntity> getOriginUserInfo(@AuthenticationPrincipal User user) { UserInfoResponse originInfo = myPageUseCase.getUserOriginInfo(user); - return ResponseEntity.ok(create(USER_FIND.getCode(), GET_USER_INFO.getMessage(), originInfo)); + return ResponseEntity.ok(create(UserResponseCode.USER_FIND.getCode(), UserResponseMessage.GET_USER_INFO.getMessage(), originInfo)); } @PatchMapping("/me/info") @@ -48,20 +47,20 @@ public ResponseEntity> getOriginUserInfo(@Authenti public ResponseEntity> updateInfo(@AuthenticationPrincipal User user, @RequestBody @Valid UserInfoRequest userInfoRequest) { manageUseCase.updateInfo(user, userInfoRequest); - return ResponseEntity.ok(create(USER_UPDATE.getCode(), UPDATE_USER_INFO.getMessage())); + return ResponseEntity.ok(create(UserResponseCode.USER_UPDATE.getCode(), UserResponseMessage.UPDATE_USER_INFO.getMessage())); } @GetMapping("/me/role") @Operation(summary = "선배 전환시 가능 여부 확인 | 토큰 필요", description = "true-가능, false-불가능") public ResponseEntity> checkRole(@AuthenticationPrincipal User user) { UserPossibleResponse possibleResponse = myPageUseCase.checkSenior(user); - return ResponseEntity.ok(create(USER_FIND.getCode(), GET_SENIOR_CHECK.getMessage(), possibleResponse)); + return ResponseEntity.ok(create(UserResponseCode.USER_FIND.getCode(), UserResponseMessage.GET_SENIOR_CHECK.getMessage(), possibleResponse)); } @GetMapping("/nickname") @Operation(summary = "사용자 닉네임 중복체크", description = "true-사용가능, false-사용불가능") public ResponseEntity> duplicatedNickName(@RequestParam String nickName) { Boolean checkDup = manageUseCase.duplicatedNickName(nickName); - return ResponseEntity.ok(create(USER_FIND.getCode(), GET_NICKNAME_CHECK.getMessage(), checkDup)); + return ResponseEntity.ok(create(UserResponseCode.USER_FIND.getCode(), UserResponseMessage.GET_NICKNAME_CHECK.getMessage(), checkDup)); } } diff --git a/src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseCode.java b/src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseCode.java similarity index 84% rename from src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseCode.java rename to src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseCode.java index 8ace55c7..d9ff7a21 100644 --- a/src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseCode.java +++ b/src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseCode.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.presentation.constant; +package com.postgraduate.domain.user.user.presentation.constant; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseMessage.java b/src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseMessage.java similarity index 91% rename from src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseMessage.java rename to src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseMessage.java index 50e34c53..be6fef1b 100644 --- a/src/main/java/com/postgraduate/domain/user/presentation/constant/UserResponseMessage.java +++ b/src/main/java/com/postgraduate/domain/user/user/presentation/constant/UserResponseMessage.java @@ -1,4 +1,4 @@ -package com.postgraduate.domain.user.presentation.constant; +package com.postgraduate.domain.user.user.presentation.constant; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/postgraduate/domain/wish/application/mapper/WishMapper.java b/src/main/java/com/postgraduate/domain/wish/application/mapper/WishMapper.java index d2bfffaa..42c64de3 100644 --- a/src/main/java/com/postgraduate/domain/wish/application/mapper/WishMapper.java +++ b/src/main/java/com/postgraduate/domain/wish/application/mapper/WishMapper.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.auth.application.dto.req.SignUpRequest; import com.postgraduate.domain.auth.application.dto.req.UserChangeRequest; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.entity.constant.Status; diff --git a/src/main/java/com/postgraduate/domain/wish/domain/entity/Wish.java b/src/main/java/com/postgraduate/domain/wish/domain/entity/Wish.java index 91bec5e0..3dc9fc2d 100644 --- a/src/main/java/com/postgraduate/domain/wish/domain/entity/Wish.java +++ b/src/main/java/com/postgraduate/domain/wish/domain/entity/Wish.java @@ -1,6 +1,6 @@ package com.postgraduate.domain.wish.domain.entity; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.constant.Status; import jakarta.persistence.*; import lombok.AllArgsConstructor; diff --git a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepository.java b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepository.java index a2ca72c8..9e706cfb 100644 --- a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepository.java +++ b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepository.java @@ -1,12 +1,9 @@ package com.postgraduate.domain.wish.domain.repository; import com.postgraduate.domain.wish.domain.entity.Wish; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; import java.util.List; public interface WishDslRepository { - Page findAllBySearchWish(String search, Pageable pageable); List findAllWish(); } diff --git a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepositoryImpl.java b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepositoryImpl.java index edfb5329..759839f6 100644 --- a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepositoryImpl.java +++ b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishDslRepositoryImpl.java @@ -1,59 +1,20 @@ package com.postgraduate.domain.wish.domain.repository; import com.postgraduate.domain.wish.domain.entity.Wish; -import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository; -import org.springframework.util.StringUtils; import java.util.List; -import static com.postgraduate.domain.user.domain.entity.QUser.user; +import static com.postgraduate.domain.user.user.domain.entity.QUser.user; import static com.postgraduate.domain.wish.domain.entity.QWish.wish; -import static com.querydsl.core.types.dsl.Expressions.FALSE; @Repository @RequiredArgsConstructor public class WishDslRepositoryImpl implements WishDslRepository { private final JPAQueryFactory queryFactory; - @Override - public Page findAllBySearchWish(String search, Pageable pageable) { - List wishes = queryFactory.selectFrom(wish) - .distinct() - .leftJoin(wish.user, user) - .fetchJoin() - .where( - searchLike(search), - wish.user.isDelete.eq(FALSE) - ) - .orderBy(wish.user.createdAt.desc()).offset(pageable.getOffset()) - .limit(pageable.getPageSize()) - .fetch(); - - Long total = queryFactory.select(wish.count()) - .from(wish) - .where( - searchLike(search), - wish.user.isDelete.eq(FALSE) - ) - .fetchOne(); - - return new PageImpl<>(wishes, pageable, total); - } - - private BooleanExpression searchLike(String search) { - if (StringUtils.hasText(search)) { - return wish.user.phoneNumber.contains(search) - .or(wish.user.nickName.contains(search)); - } - return null; - } - @Override public List findAllWish() { return queryFactory.selectFrom(wish) diff --git a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishRepository.java b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishRepository.java index 978f6de7..39d2bbc8 100644 --- a/src/main/java/com/postgraduate/domain/wish/domain/repository/WishRepository.java +++ b/src/main/java/com/postgraduate/domain/wish/domain/repository/WishRepository.java @@ -1,14 +1,14 @@ package com.postgraduate.domain.wish.domain.repository; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import org.springframework.data.jpa.repository.JpaRepository; import java.util.Optional; public interface WishRepository extends JpaRepository, WishDslRepository { - Optional findByUser(User user); - Optional findByMatchingReceiveIsTrueAndUser_UserId(Long userId); - - Optional findByWishIdAndMatchingReceiveIsTrue(Long wishId); + Optional findByUserAndUser_IsDeleteIsFalse(User user); + Optional findByMatchingReceiveIsTrueAndUser_UserIdAndUser_IsDeleteIsFalse(Long userId); + Optional findByWishIdAndMatchingReceiveIsTrueAndUser_IsDeleteIsFalse(Long wishId); + void deleteByUser(User user); } diff --git a/src/main/java/com/postgraduate/domain/wish/domain/service/WishGetService.java b/src/main/java/com/postgraduate/domain/wish/domain/service/WishGetService.java index d9e14181..fbbb9b0c 100644 --- a/src/main/java/com/postgraduate/domain/wish/domain/service/WishGetService.java +++ b/src/main/java/com/postgraduate/domain/wish/domain/service/WishGetService.java @@ -1,13 +1,10 @@ package com.postgraduate.domain.wish.domain.service; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.repository.WishRepository; import com.postgraduate.domain.wish.exception.WishNotFoundException; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import java.util.List; @@ -16,29 +13,22 @@ @Service @RequiredArgsConstructor public class WishGetService { - private static final int ADMIN_PAGE_SIZE = 15; - private final WishRepository wishRepository; public Wish byWishId(Long wishId) { - return wishRepository.findByWishIdAndMatchingReceiveIsTrue(wishId).orElseThrow(WishNotFoundException::new); + return wishRepository.findByWishIdAndMatchingReceiveIsTrueAndUser_IsDeleteIsFalse(wishId) + .orElseThrow(WishNotFoundException::new); } public Optional byUser(User user) { - return wishRepository.findByUser(user); + return wishRepository.findByUserAndUser_IsDeleteIsFalse(user); } public Wish byUserId(Long userId) { - return wishRepository.findByMatchingReceiveIsTrueAndUser_UserId(userId) + return wishRepository.findByMatchingReceiveIsTrueAndUser_UserIdAndUser_IsDeleteIsFalse(userId) .orElseThrow(WishNotFoundException::new); } - public Page all(Integer page, String search) { - page = page == null ? 1 : page; - Pageable pageable = PageRequest.of(page - 1, ADMIN_PAGE_SIZE); - return wishRepository.findAllBySearchWish(search, pageable); - } - public List all() { return wishRepository.findAllWish(); } diff --git a/src/main/java/com/postgraduate/global/aop/logging/LogAspect.java b/src/main/java/com/postgraduate/global/aop/logging/LogAspect.java index ffd59ad7..58d04550 100644 --- a/src/main/java/com/postgraduate/global/aop/logging/LogAspect.java +++ b/src/main/java/com/postgraduate/global/aop/logging/LogAspect.java @@ -2,8 +2,6 @@ import com.postgraduate.global.aop.logging.dto.TraceStatus; import com.postgraduate.global.exception.ApplicationException; -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.aop.logging.service.LogService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; @@ -23,7 +21,6 @@ public class LogAspect { @Value("${log.Type}") private String env; private final LogTrace logTrace; - private final LogService logService; @Around("com.postgraduate.global.aop.logging.LogPointCuts.allService()") public Object serviceLog(ProceedingJoinPoint joinPoint) throws Throwable { @@ -47,20 +44,17 @@ private Object getObject(ProceedingJoinPoint joinPoint) throws Throwable { Object result = joinPoint.proceed(); Integer executionTime = logTrace.end(traceStatus); log.info("ExecutionTime : {}", executionTime); - logService.save(new LogRequest(env, traceStatus.threadId(), executionTime, traceStatus.methodName())); return result; }catch (ApplicationException e) { if (traceStatus != null) { log.error("ErrorCode {} errorMessage {}",e.getCode(), e.getMessage()); log.error("{}", e.getStackTrace()); - logService.save(new LogRequest(env, traceStatus.threadId(), traceStatus.methodName(), e.getMessage())); } throw e; }catch (Exception e) { if (traceStatus != null) { log.error("500 ERROR {}", e.getMessage()); log.error("{}", e.getStackTrace()); - logService.save(new LogRequest(env, traceStatus.threadId(), traceStatus.methodName(), e.getMessage())); } throw e; } diff --git a/src/main/java/com/postgraduate/global/aop/logging/service/LogService.java b/src/main/java/com/postgraduate/global/aop/logging/service/LogService.java deleted file mode 100644 index 58c7598d..00000000 --- a/src/main/java/com/postgraduate/global/aop/logging/service/LogService.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.postgraduate.global.aop.logging.service; - -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.slack.SlackLogErrorMessage; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.http.HttpStatusCode; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Service; -import org.springframework.web.reactive.function.client.WebClient; -import reactor.core.publisher.Mono; - -@Service -@Slf4j -@RequiredArgsConstructor -public class LogService { - private final WebClient webClient; - private final SlackLogErrorMessage slackLogErrorMessage; - - @Value("${log.uri}") - private String logUri; - - public void save(LogRequest logRequest) { - // webClient.post() - // .uri(logUri) - // .accept(MediaType.APPLICATION_JSON) - // .bodyValue(logRequest) - // .retrieve() - // .onStatus(HttpStatusCode::is4xxClientError, clientResponse -> { - // log.error("클라이언트 에러 발생: " + clientResponse.statusCode()); - // return Mono.error(new RuntimeException("클라이언트 에러")); - // }) - // .onStatus(HttpStatusCode::is5xxServerError, clientResponse -> { - // log.error("서버 에러 발생: " + clientResponse.statusCode()); - // return Mono.error(new RuntimeException("서버 에러")); - // }) - // .bodyToMono(Void.class) - // .doOnError(ex -> { - // log.error("예상치 못한 에러 발생: " + ex.getMessage()); - // slackLogErrorMessage.sendSlackLog(new IllegalArgumentException("로그 서버 예외 발생")); - // }) - // .subscribe(); - - } -} diff --git a/src/main/java/com/postgraduate/global/bizppurio/application/mapper/BizppurioMapper.java b/src/main/java/com/postgraduate/global/bizppurio/application/mapper/BizppurioMapper.java index 9e673e81..ff20ea92 100644 --- a/src/main/java/com/postgraduate/global/bizppurio/application/mapper/BizppurioMapper.java +++ b/src/main/java/com/postgraduate/global/bizppurio/application/mapper/BizppurioMapper.java @@ -1,6 +1,6 @@ package com.postgraduate.global.bizppurio.application.mapper; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.dto.req.CommonRequest; import com.postgraduate.global.bizppurio.application.dto.req.ContentRequest; import com.postgraduate.global.bizppurio.application.dto.req.JuniorMatchingFailRequest; diff --git a/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioJuniorMessage.java b/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioJuniorMessage.java index 6cc445a8..7edaa57f 100644 --- a/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioJuniorMessage.java +++ b/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioJuniorMessage.java @@ -1,7 +1,7 @@ package com.postgraduate.global.bizppurio.application.usecase; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.dto.req.JuniorMatchingFailRequest; import com.postgraduate.global.bizppurio.application.dto.req.JuniorMatchingSuccessRequest; import com.postgraduate.global.bizppurio.application.mapper.BizppurioMapper; diff --git a/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioSeniorMessage.java b/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioSeniorMessage.java index 36b53432..5d5019e1 100644 --- a/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioSeniorMessage.java +++ b/src/main/java/com/postgraduate/global/bizppurio/application/usecase/BizppurioSeniorMessage.java @@ -1,7 +1,7 @@ package com.postgraduate.global.bizppurio.application.usecase; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.mapper.BizppurioMapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/src/main/java/com/postgraduate/global/config/security/SecurityConfig.java b/src/main/java/com/postgraduate/global/config/security/SecurityConfig.java index b0ea38a9..c27b30c2 100644 --- a/src/main/java/com/postgraduate/global/config/security/SecurityConfig.java +++ b/src/main/java/com/postgraduate/global/config/security/SecurityConfig.java @@ -1,6 +1,6 @@ package com.postgraduate.global.config.security; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import com.postgraduate.global.config.security.jwt.filter.CustomAccessDeniedHandler; import com.postgraduate.global.config.security.jwt.filter.CustomAuthenticationEntryPoint; import com.postgraduate.global.config.security.jwt.filter.JwtFilter; @@ -91,6 +91,7 @@ protected SecurityFilterChain config(HttpSecurity http) throws Exception { .requestMatchers("/auth/senior/change").hasAuthority(Role.USER.name()) .requestMatchers("/auth/refresh").authenticated() .requestMatchers("/auth/logout").authenticated() + .requestMatchers("/signout/**").authenticated() .anyRequest().permitAll() ) diff --git a/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetails.java b/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetails.java index 53a1227e..fdcbac12 100644 --- a/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetails.java +++ b/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetails.java @@ -1,6 +1,6 @@ package com.postgraduate.global.config.security.jwt.auth; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.security.core.GrantedAuthority; diff --git a/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetailsService.java b/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetailsService.java index d1ebfece..88db5178 100644 --- a/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetailsService.java +++ b/src/main/java/com/postgraduate/global/config/security/jwt/auth/AuthDetailsService.java @@ -1,8 +1,8 @@ package com.postgraduate.global.config.security.jwt.auth; -import com.postgraduate.domain.user.exception.UserNotFoundException; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAccessDeniedHandler.java b/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAccessDeniedHandler.java index 1bc021b8..12281967 100644 --- a/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAccessDeniedHandler.java +++ b/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAccessDeniedHandler.java @@ -2,13 +2,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.postgraduate.global.dto.ErrorResponse; -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.aop.logging.service.LogService; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.security.access.AccessDeniedException; @@ -24,18 +21,13 @@ @RequiredArgsConstructor @Slf4j public class CustomAccessDeniedHandler implements AccessDeniedHandler { - @Value("${log.Type}") - private String env; - private final ObjectMapper objectMapper; - private final LogService logService; @Override public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException { response.setStatus(HttpStatus.OK.value()); response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("UTF-8"); - logService.save(new LogRequest(env, CustomAccessDeniedHandler.class.getSimpleName(), PERMISSION_DENIED.getMessage())); log.error("AuthenticationEntryPoint : {} {}", PERMISSION_DENIED.getMessage(), request.getRequestURI()); objectMapper.writeValue( response.getOutputStream(), diff --git a/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAuthenticationEntryPoint.java b/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAuthenticationEntryPoint.java index 912549ad..b6e3ad10 100644 --- a/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAuthenticationEntryPoint.java +++ b/src/main/java/com/postgraduate/global/config/security/jwt/filter/CustomAuthenticationEntryPoint.java @@ -2,14 +2,11 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.postgraduate.global.dto.ErrorResponse; -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.aop.logging.service.LogService; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.security.core.AuthenticationException; @@ -25,18 +22,13 @@ @RequiredArgsConstructor @Slf4j public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint { - @Value("${log.Type}") - private String env; - private final ObjectMapper objectMapper; - private final LogService logService; @Override public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { response.setStatus(HttpStatus.OK.value()); response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setCharacterEncoding("UTF-8"); - logService.save(new LogRequest(env, CustomAuthenticationEntryPoint.class.getSimpleName(), FAILED_AUTH.getMessage())); log.error("AuthenticationEntryPoint : {} {}", FAILED_AUTH.getMessage(), request.getRequestURI()); objectMapper.writeValue( response.getOutputStream(), diff --git a/src/main/java/com/postgraduate/global/config/security/jwt/util/JwtUtils.java b/src/main/java/com/postgraduate/global/config/security/jwt/util/JwtUtils.java index fa462457..8a78a60e 100644 --- a/src/main/java/com/postgraduate/global/config/security/jwt/util/JwtUtils.java +++ b/src/main/java/com/postgraduate/global/config/security/jwt/util/JwtUtils.java @@ -1,23 +1,23 @@ package com.postgraduate.global.config.security.jwt.util; import com.fasterxml.jackson.databind.ObjectMapper; -import com.postgraduate.domain.user.exception.UserNotFoundException; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; +import com.postgraduate.global.config.redis.RedisRepository; import com.postgraduate.global.config.security.jwt.auth.AuthDetails; import com.postgraduate.global.config.security.jwt.auth.AuthDetailsService; import com.postgraduate.global.config.security.jwt.constant.Type; import com.postgraduate.global.config.security.jwt.exception.InvalidRefreshTokenException; import com.postgraduate.global.config.security.jwt.exception.InvalidTokenException; -import com.postgraduate.global.config.redis.RedisRepository; -import com.postgraduate.global.config.security.jwt.filter.JwtFilter; -import com.postgraduate.global.dto.ResponseDto; -import com.postgraduate.global.exception.ApplicationException; import com.postgraduate.global.config.security.jwt.exception.NoneRefreshTokenException; import com.postgraduate.global.config.security.jwt.exception.TokenExpiredException; -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.aop.logging.service.LogService; -import io.jsonwebtoken.*; +import com.postgraduate.global.dto.ResponseDto; +import com.postgraduate.global.exception.ApplicationException; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.ExpiredJwtException; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; import jakarta.servlet.http.HttpServletRequest; @@ -42,7 +42,8 @@ import java.util.List; import static com.postgraduate.global.config.security.jwt.constant.Type.*; -import static org.springframework.http.HttpStatus.*; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.OK; @Component @RequiredArgsConstructor @@ -50,7 +51,6 @@ public class JwtUtils { private final AuthDetailsService authDetailsService; private final RedisRepository redisRepository; - private final LogService logService; @Value("${jwt.secret-key}") private String secret; @@ -58,8 +58,6 @@ public class JwtUtils { private int refreshExpiration; @Value("${jwt.accessExpiration}") private int accessExpiration; - @Value("${log.Type}") - private String env; private static final String ROLE = "role"; private static final String TYPE = "type"; @@ -185,7 +183,6 @@ private void jwtExceptionHandler(HttpStatus status, HttpServletResponse response response.setCharacterEncoding(CHARACTER_ENCODING); log.error("errorCode {}, errorMessage {}", ex.getCode(), ex.getMessage()); try { - logService.save(new LogRequest(env, JwtFilter.class.getSimpleName(), ex.getMessage())); String json = new ObjectMapper().writeValueAsString(ResponseDto.create(ex.getCode(), ex.getMessage())); response.getWriter().write(json); } catch (Exception e) { diff --git a/src/main/java/com/postgraduate/global/exception/GlobalExceptionHandler.java b/src/main/java/com/postgraduate/global/exception/GlobalExceptionHandler.java index 06b96a5a..1708d2ff 100644 --- a/src/main/java/com/postgraduate/global/exception/GlobalExceptionHandler.java +++ b/src/main/java/com/postgraduate/global/exception/GlobalExceptionHandler.java @@ -1,14 +1,10 @@ package com.postgraduate.global.exception; +import com.postgraduate.global.constant.ErrorCode; import com.postgraduate.global.dto.ErrorResponse; import com.postgraduate.global.dto.ResponseDto; -import com.postgraduate.global.constant.ErrorCode; -import com.postgraduate.global.aop.logging.dto.LogRequest; -import com.postgraduate.global.aop.logging.service.LogService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.http.HttpStatus; -import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; @@ -20,20 +16,16 @@ @RestControllerAdvice @RequiredArgsConstructor public class GlobalExceptionHandler { - private final LogService logService; - - @Value("${log.Type}") - private String env; private static final String LOG_FORMAT = "Code : {}, Message : {}"; @ExceptionHandler(ApplicationException.class) public ResponseEntity> handleApplicationException(ApplicationException ex) { + log.error(LOG_FORMAT, ex.getCode(), ex.getMessage()); return ResponseEntity.ok(create(ex.getCode(), ex.getMessage())); } @ExceptionHandler(MethodArgumentNotValidException.class) public ResponseEntity> handleArgumentValidException(MethodArgumentNotValidException ex) { - logService.save(new LogRequest(env, "@Valid", ex.getBindingResult().getAllErrors().get(0).getDefaultMessage())); log.error(LOG_FORMAT, "@Valid Error", "MethodArgumentNotValidException"); return ResponseEntity.ok(create(ErrorCode.VALID_BLANK.getCode(), ex.getBindingResult().getAllErrors().get(0).getDefaultMessage())); } @@ -41,6 +33,7 @@ public ResponseEntity> handleArgumentValidException(M @ExceptionHandler(Exception.class) public ResponseEntity> handleInternalServerException(Exception ex) { log.error(LOG_FORMAT, "500", ex.getStackTrace()); + log.error("errorMessage : {}", ex.getMessage()); return ResponseEntity.internalServerError().build(); } } diff --git a/src/main/java/com/postgraduate/global/slack/SlackCertificationMessage.java b/src/main/java/com/postgraduate/global/slack/SlackCertificationMessage.java index 0438c243..adf97015 100644 --- a/src/main/java/com/postgraduate/global/slack/SlackCertificationMessage.java +++ b/src/main/java/com/postgraduate/global/slack/SlackCertificationMessage.java @@ -1,7 +1,7 @@ package com.postgraduate.global.slack; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.slack.api.Slack; import com.slack.api.model.Attachment; import com.slack.api.webhook.Payload; diff --git a/src/main/java/com/postgraduate/global/slack/SlackPaymentMessage.java b/src/main/java/com/postgraduate/global/slack/SlackPaymentMessage.java index ae8014b0..7d365f53 100644 --- a/src/main/java/com/postgraduate/global/slack/SlackPaymentMessage.java +++ b/src/main/java/com/postgraduate/global/slack/SlackPaymentMessage.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.slack.api.Slack; import com.slack.api.model.Attachment; import com.slack.api.webhook.Payload; diff --git a/src/main/java/com/postgraduate/global/slack/SlackSignUpMessage.java b/src/main/java/com/postgraduate/global/slack/SlackSignUpMessage.java index 75ae29ab..458307be 100644 --- a/src/main/java/com/postgraduate/global/slack/SlackSignUpMessage.java +++ b/src/main/java/com/postgraduate/global/slack/SlackSignUpMessage.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.entity.constant.Status; import com.slack.api.Slack; diff --git a/src/test/java/com/postgraduate/Integration/AuthControllerTest.java b/src/test/java/com/postgraduate/Integration/AuthControllerTest.java index eb4bc06e..f94565da 100644 --- a/src/test/java/com/postgraduate/Integration/AuthControllerTest.java +++ b/src/test/java/com/postgraduate/Integration/AuthControllerTest.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.auth.application.dto.req.*; import com.postgraduate.domain.auth.application.dto.res.KakaoUserInfoResponse; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.support.IntegrationTest; import com.postgraduate.support.Resource; @@ -22,10 +22,10 @@ import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseCode.SENIOR_NOT_FOUND; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseMessage.CREATE_SENIOR; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseMessage.NOT_FOUND_SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_NOT_FOUND; -import static com.postgraduate.domain.user.presentation.constant.UserResponseMessage.NOT_FOUND_USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_NOT_FOUND; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage.NOT_FOUND_USER; import static com.postgraduate.global.constant.ErrorCode.VALID_BLANK; import static java.lang.Boolean.FALSE; import static org.mockito.ArgumentMatchers.any; diff --git a/src/test/java/com/postgraduate/Integration/MentoringControllerTest.java b/src/test/java/com/postgraduate/Integration/MentoringControllerTest.java index 2411e9d5..9e860e46 100644 --- a/src/test/java/com/postgraduate/Integration/MentoringControllerTest.java +++ b/src/test/java/com/postgraduate/Integration/MentoringControllerTest.java @@ -6,10 +6,9 @@ import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.refuse.application.dto.req.MentoringRefuseRequest; import com.postgraduate.domain.salary.domain.entity.Salary; -import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import com.postgraduate.global.constant.ErrorCode; import com.postgraduate.support.IntegrationTest; import com.postgraduate.support.Resource; @@ -27,7 +26,6 @@ import static com.postgraduate.domain.auth.presentation.constant.AuthResponseMessage.PERMISSION_DENIED; import static com.postgraduate.domain.mentoring.presentation.constant.MentoringResponseCode.*; import static com.postgraduate.domain.mentoring.presentation.constant.MentoringResponseMessage.*; -import static com.postgraduate.domain.senior.domain.entity.constant.Status.WAITING; import static java.time.LocalDateTime.now; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; diff --git a/src/test/java/com/postgraduate/Integration/SalaryControllerTest.java b/src/test/java/com/postgraduate/Integration/SalaryControllerTest.java index 3cbb058a..72c6cbed 100644 --- a/src/test/java/com/postgraduate/Integration/SalaryControllerTest.java +++ b/src/test/java/com/postgraduate/Integration/SalaryControllerTest.java @@ -2,8 +2,8 @@ import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import com.postgraduate.support.IntegrationTest; import com.postgraduate.support.Resource; import org.junit.jupiter.api.BeforeEach; diff --git a/src/test/java/com/postgraduate/Integration/SeniorControllerTest.java b/src/test/java/com/postgraduate/Integration/SeniorControllerTest.java index 720d2e97..fe656357 100644 --- a/src/test/java/com/postgraduate/Integration/SeniorControllerTest.java +++ b/src/test/java/com/postgraduate/Integration/SeniorControllerTest.java @@ -8,8 +8,8 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.presentation.constant.SeniorResponseCode; import com.postgraduate.domain.senior.presentation.constant.SeniorResponseMessage; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; import com.postgraduate.global.constant.ErrorCode; import com.postgraduate.support.IntegrationTest; import com.postgraduate.support.Resource; diff --git a/src/test/java/com/postgraduate/Integration/UserControllerTest.java b/src/test/java/com/postgraduate/Integration/UserControllerTest.java index 1e716b95..c2dc2d17 100644 --- a/src/test/java/com/postgraduate/Integration/UserControllerTest.java +++ b/src/test/java/com/postgraduate/Integration/UserControllerTest.java @@ -1,9 +1,9 @@ package com.postgraduate.Integration; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.entity.constant.Role; -import com.postgraduate.domain.user.presentation.constant.UserResponseCode; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.constant.Role; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseCode; import com.postgraduate.support.IntegrationTest; import com.postgraduate.support.Resource; import org.junit.jupiter.api.BeforeEach; @@ -15,9 +15,9 @@ import java.io.IOException; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_FIND; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.USER_UPDATE; -import static com.postgraduate.domain.user.presentation.constant.UserResponseMessage.*; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_FIND; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_UPDATE; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doNothing; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; diff --git a/src/test/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseTypeTest.java b/src/test/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseTypeTest.java index c01c7640..a68cbef7 100644 --- a/src/test/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/auth/application/usecase/jwt/JwtUseTypeTest.java @@ -1,8 +1,9 @@ package com.postgraduate.domain.auth.application.usecase.jwt; import com.postgraduate.domain.auth.application.dto.res.JwtTokenResponse; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.exception.DeletedUserException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.exception.DeletedUserException; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.service.WishGetService; import com.postgraduate.global.config.security.jwt.exception.InvalidRefreshTokenException; @@ -20,8 +21,8 @@ import java.time.LocalDateTime; import java.util.Optional; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static java.time.LocalDate.now; @@ -103,10 +104,10 @@ void logout() { void signInWithUserDelete() { user = new User(1L, 1L, "a", "a", "123", "a", - 1, USER, TRUE, LocalDateTime.now(), LocalDateTime.now(), TRUE); + 1, USER, TRUE, LocalDateTime.now(), LocalDateTime.now().minusDays(20), TRUE); assertThatThrownBy(() -> jwtUseCase.signIn(user)) - .isInstanceOf(DeletedUserException.class); + .isInstanceOf(UserNotFoundException.class); } @Test @@ -114,7 +115,7 @@ void signInWithUserDelete() { void signInWithSeniorDelete() { user = new User(1L, 1L, "a", "a", "123", "a", - 1, SENIOR, TRUE, LocalDateTime.now(), LocalDateTime.now(), TRUE); + 1, SENIOR, TRUE, LocalDateTime.now(), LocalDateTime.now().minusDays(20), TRUE); assertThatThrownBy(() -> jwtUseCase.signIn(user)) .isInstanceOf(DeletedUserException.class); diff --git a/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseTypeTest.java b/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseTypeTest.java index 92c995ea..8a7ac0b9 100644 --- a/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/SignUpUseTypeTest.java @@ -4,6 +4,7 @@ import com.postgraduate.domain.auth.application.dto.req.SeniorSignUpRequest; import com.postgraduate.domain.auth.application.dto.req.SignUpRequest; import com.postgraduate.domain.auth.util.ProfileUtils; +import com.postgraduate.domain.salary.application.mapper.SalaryMapper; import com.postgraduate.domain.salary.domain.service.SalarySaveService; import com.postgraduate.domain.senior.application.utils.SeniorUtils; import com.postgraduate.domain.senior.domain.entity.Info; @@ -11,12 +12,12 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorSaveService; import com.postgraduate.domain.senior.exception.KeywordException; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.domain.service.UserSaveService; -import com.postgraduate.domain.user.domain.service.UserUpdateService; -import com.postgraduate.domain.user.exception.PhoneNumberException; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserSaveService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.entity.constant.Status; import com.postgraduate.domain.wish.domain.service.WishSaveService; @@ -34,8 +35,8 @@ import java.time.LocalDateTime; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; @@ -64,6 +65,8 @@ class SignUpUseTypeTest { @Mock private SalarySaveService salarySaveService; @Mock + private SalaryMapper salaryMapper; + @Mock private UserUtils userUtils; @Mock private SeniorUtils seniorUtils; diff --git a/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseTypeTest.java b/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseTypeTest.java index 4e1a542d..8bf07332 100644 --- a/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/auth/application/usecase/oauth/kakao/KakaoSignInUseTypeTest.java @@ -3,9 +3,10 @@ import com.postgraduate.domain.auth.application.dto.req.CodeRequest; import com.postgraduate.domain.auth.application.dto.res.AuthUserResponse; import com.postgraduate.domain.auth.application.dto.res.KakaoUserInfoResponse; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -18,7 +19,7 @@ import java.time.LocalDateTime; import static com.postgraduate.domain.auth.application.dto.res.KakaoUserInfoResponse.KakaoAccount; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.TRUE; import static org.mockito.BDDMockito.given; @@ -28,6 +29,8 @@ class KakaoSignInUseTypeTest { private KakaoAccessTokenUseCase kakaoAccessTokenUseCase; @Mock private UserGetService userGetService; + @Mock + private UserUpdateService userUpdateService; @InjectMocks private KakaoSignInUseCase kakaoSignInUseCase; diff --git a/src/test/java/com/postgraduate/domain/auth/presentation/AuthControllerTest.java b/src/test/java/com/postgraduate/domain/auth/presentation/AuthControllerTest.java index f7e51752..ad2f559b 100644 --- a/src/test/java/com/postgraduate/domain/auth/presentation/AuthControllerTest.java +++ b/src/test/java/com/postgraduate/domain/auth/presentation/AuthControllerTest.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.auth.application.dto.res.AuthUserResponse; import com.postgraduate.domain.auth.application.dto.res.JwtTokenResponse; import com.postgraduate.domain.auth.presentation.constant.Provider; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.support.ControllerTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -16,7 +16,7 @@ import static com.postgraduate.domain.auth.presentation.constant.AuthResponseMessage.*; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseCode.SENIOR_CREATE; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseMessage.CREATE_SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.willDoNothing; diff --git a/src/test/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseTypeTest.java b/src/test/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseTypeTest.java index 59831de2..0aa7fee5 100644 --- a/src/test/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/image/application/usecase/ImageUploadUseTypeTest.java @@ -2,7 +2,7 @@ import com.postgraduate.domain.auth.util.ProfileUtils; import com.postgraduate.domain.image.application.dto.res.ImageUrlResponse; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.config.s3.S3UploadService; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.DisplayName; @@ -15,7 +15,7 @@ import java.time.LocalDateTime; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.mockito.BDDMockito.*; diff --git a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseTypeTest.java b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseTypeTest.java index 8d14d5ca..d275f641 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringApplyingUseTypeTest.java @@ -4,6 +4,7 @@ import com.postgraduate.domain.account.domain.service.AccountGetService; import com.postgraduate.domain.mentoring.application.dto.req.MentoringApplyRequest; import com.postgraduate.domain.mentoring.application.dto.res.ApplyingResponse; +import com.postgraduate.domain.mentoring.application.mapper.MentoringMapper; import com.postgraduate.domain.mentoring.domain.service.MentoringGetService; import com.postgraduate.domain.mentoring.domain.service.MentoringSaveService; import com.postgraduate.domain.mentoring.exception.MentoringDateException; @@ -17,7 +18,7 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.usecase.BizppurioJuniorMessage; import com.postgraduate.global.bizppurio.application.usecase.BizppurioSeniorMessage; import org.junit.jupiter.api.BeforeEach; @@ -33,8 +34,8 @@ import java.util.Optional; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; @@ -53,6 +54,8 @@ class MentoringApplyingUseTypeTest { @Mock private MentoringSaveService mentoringSaveService; @Mock + private MentoringMapper mentoringMapper; + @Mock private AccountGetService accountGetService; @Mock private SeniorUpdateService seniorUpdateService; diff --git a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseTypeTest.java b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseTypeTest.java index 0176f725..bbb1af03 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringManageUseTypeTest.java @@ -25,7 +25,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.global.bizppurio.application.usecase.BizppurioJuniorMessage; import com.postgraduate.global.bizppurio.application.usecase.BizppurioSeniorMessage; import com.postgraduate.global.slack.SlackErrorMessage; @@ -43,8 +43,8 @@ import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.WAITING; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseTypeTest.java b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseTypeTest.java index 5162ffb6..7bc3a360 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringSeniorInfoUseTypeTest.java @@ -3,7 +3,9 @@ import com.postgraduate.domain.mentoring.application.dto.DoneSeniorMentoringInfo; import com.postgraduate.domain.mentoring.application.dto.res.DoneSeniorMentoringResponse; import com.postgraduate.domain.mentoring.application.dto.res.ExpectedSeniorMentoringResponse; +import com.postgraduate.domain.mentoring.application.dto.res.SeniorMentoringDetailResponse; import com.postgraduate.domain.mentoring.application.dto.res.WaitingSeniorMentoringResponse; +import com.postgraduate.domain.mentoring.application.mapper.MentoringMapper; import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.service.MentoringGetService; import com.postgraduate.domain.mentoring.exception.MentoringNotFoundException; @@ -14,7 +16,7 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -29,8 +31,8 @@ import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.WAITING; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; @@ -44,6 +46,8 @@ class MentoringSeniorInfoUseTypeTest { private MentoringGetService mentoringGetService; @Mock private SeniorGetService seniorGetService; + @Mock + private MentoringMapper mentoringMapper; @InjectMocks private MentoringSeniorInfoUseCase mentoringSeniorInfoUseCase; @@ -82,6 +86,8 @@ void getSeniorMentoringDetail() { .willReturn(senior); given(mentoringGetService.byIdAndSeniorForDetails(mentoringId, senior)) .willReturn(mentoring); + given(mentoringMapper.mapToSeniorMentoringDetail(mentoring)) + .willReturn(mock(SeniorMentoringDetailResponse.class)); assertThat(mentoringSeniorInfoUseCase.getSeniorMentoringDetail(user, mentoringId)) .isNotNull(); @@ -165,6 +171,12 @@ void getSeniorDone() { .willReturn(senior); given(mentoringGetService.bySeniorDone(senior)) .willReturn(mentorings); + given(mentoringMapper.mapToSeniorDoneInfo(mentoring1)) + .willReturn(new DoneSeniorMentoringInfo(mentoring1.getMentoringId(), "a", "a", 30, mentoring1.getDate(), LocalDate.now(), true)); + given(mentoringMapper.mapToSeniorDoneInfo(mentoring2)) + .willReturn(new DoneSeniorMentoringInfo(mentoring2.getMentoringId(), "a", "a", 30, mentoring2.getDate(), LocalDate.now(), true)); + given(mentoringMapper.mapToSeniorDoneInfo(mentoring3)) + .willReturn(new DoneSeniorMentoringInfo(mentoring3.getMentoringId(), "a", "a", 30, mentoring3.getDate(), LocalDate.now(), true)); DoneSeniorMentoringResponse seniorDone = mentoringSeniorInfoUseCase.getSeniorDone(user); List doneSeniorMentoringInfos = seniorDone.seniorMentoringInfos(); diff --git a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseTypeTest.java b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseTypeTest.java index f05fafea..66d864f4 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/application/usecase/MentoringUserInfoUseTypeTest.java @@ -1,8 +1,11 @@ package com.postgraduate.domain.mentoring.application.usecase; +import com.postgraduate.domain.mentoring.application.dto.DoneMentoringInfo; +import com.postgraduate.domain.mentoring.application.dto.res.AppliedMentoringDetailResponse; import com.postgraduate.domain.mentoring.application.dto.res.DoneMentoringResponse; import com.postgraduate.domain.mentoring.application.dto.res.ExpectedMentoringResponse; import com.postgraduate.domain.mentoring.application.dto.res.WaitingMentoringResponse; +import com.postgraduate.domain.mentoring.application.mapper.MentoringMapper; import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.mentoring.domain.service.MentoringGetService; import com.postgraduate.domain.mentoring.exception.MentoringNotFoundException; @@ -12,7 +15,7 @@ import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -27,18 +30,22 @@ import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.*; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; @ExtendWith(MockitoExtension.class) class MentoringUserInfoUseTypeTest { @Mock private MentoringGetService mentoringGetService; + @Mock + private MentoringMapper mentoringMapper; @InjectMocks private MentoringUserInfoUseCase mentoringUserInfoUseCase; @@ -76,6 +83,8 @@ void setting() { void getMentoringDetail() { given(mentoringGetService.byIdAndUserForDetails(mentoringId, user)) .willReturn(mentoring); + given(mentoringMapper.mapToAppliedDetailInfo(mentoring)) + .willReturn(mock(AppliedMentoringDetailResponse.class)); assertThat(mentoringUserInfoUseCase.getMentoringDetail(user, mentoringId)) .isNotNull(); @@ -162,7 +171,12 @@ void getDone() { given(mentoringGetService.byUserDone(user)) .willReturn(mentorings); - + given(mentoringMapper.mapToDoneInfo(mentoring1)) + .willReturn(new DoneMentoringInfo(mentoring1.getMentoringId(), 1L, "a", "a", "a", "a", "a", mentoring1.getDate(), 30)); + given(mentoringMapper.mapToDoneInfo(mentoring2)) + .willReturn(new DoneMentoringInfo(mentoring2.getMentoringId(), 1L, "a", "a", "a", "a", "a", mentoring2.getDate(), 30)); + given(mentoringMapper.mapToDoneInfo(mentoring3)) + .willReturn(new DoneMentoringInfo(mentoring3.getMentoringId(), 1L, "a", "a", "a", "a", "a", mentoring3.getDate(), 30)); DoneMentoringResponse done = mentoringUserInfoUseCase.getDone(user); assertThat(done.mentoringInfos()) diff --git a/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetServiceTest.java b/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetServiceTest.java index 3fd828ab..03641435 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringGetServiceTest.java @@ -1,13 +1,12 @@ package com.postgraduate.domain.mentoring.domain.service; import com.postgraduate.domain.mentoring.domain.entity.Mentoring; -import com.postgraduate.domain.mentoring.domain.entity.constant.Status; import com.postgraduate.domain.mentoring.domain.repository.MentoringRepository; import com.postgraduate.domain.mentoring.exception.MentoringNotFoundException; import com.postgraduate.domain.mentoring.exception.MentoringPresentException; import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -19,7 +18,6 @@ import java.util.Optional; import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.*; -import static java.lang.Boolean.FALSE; import static java.util.Optional.of; import static java.util.Optional.ofNullable; import static org.assertj.core.api.Assertions.assertThat; @@ -165,72 +163,4 @@ void byIdAndSeniorForDetails() { assertThatThrownBy(() -> mentoringGetService.byIdAndSeniorForDetails(mentoringId, senior)) .isInstanceOf(MentoringNotFoundException.class); } - - @Test - @DisplayName("User 기반 멘토링 상태별 조회 테스트") - void byIdAndUserAndStatusTest() { - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, WAITING)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndUserAndWaiting(mentoringId, user)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, EXPECTED)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndUserAndExpected(mentoringId, user)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, DONE)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndUserAndDone(mentoringId, user)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, WAITING)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndUserAndWaiting(mentoringId, user)) - .isInstanceOf(MentoringNotFoundException.class); - - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, EXPECTED)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndUserAndExpected(mentoringId, user)) - .isInstanceOf(MentoringNotFoundException.class); - - given(mentoringRepository.findByMentoringIdAndUserAndStatus(mentoringId, user, DONE)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndUserAndDone(mentoringId, user)) - .isInstanceOf(MentoringNotFoundException.class); - } - - @Test - @DisplayName("Senior 기반 멘토링 상태별 조회 테스트") - void byIdAndSeniorAndStatusTest() { - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, WAITING)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndSeniorAndWaiting(mentoringId, senior)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, EXPECTED)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndSeniorAndExpected(mentoringId, senior)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, DONE)) - .willReturn(Optional.of(mentoring)); - assertThat(mentoringGetService.byIdAndSeniorAndDone(mentoringId, senior)) - .isEqualTo(mentoring); - - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, WAITING)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndSeniorAndWaiting(mentoringId, senior)) - .isInstanceOf(MentoringNotFoundException.class); - - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, EXPECTED)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndSeniorAndExpected(mentoringId, senior)) - .isInstanceOf(MentoringNotFoundException.class); - - given(mentoringRepository.findByMentoringIdAndSeniorAndStatus(mentoringId, senior, DONE)) - .willReturn(Optional.ofNullable(null)); - assertThatThrownBy(() ->mentoringGetService.byIdAndSeniorAndDone(mentoringId, senior)) - .isInstanceOf(MentoringNotFoundException.class); - } } \ No newline at end of file diff --git a/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringUpdateServiceTest.java b/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringUpdateServiceTest.java index 81f1e977..3beff751 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringUpdateServiceTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/domain/service/MentoringUpdateServiceTest.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.payment.domain.entity.Payment; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/postgraduate/domain/mentoring/presentation/MentoringControllerTest.java b/src/test/java/com/postgraduate/domain/mentoring/presentation/MentoringControllerTest.java index a6a15ea3..c2a93523 100644 --- a/src/test/java/com/postgraduate/domain/mentoring/presentation/MentoringControllerTest.java +++ b/src/test/java/com/postgraduate/domain/mentoring/presentation/MentoringControllerTest.java @@ -9,7 +9,7 @@ import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.support.ControllerTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/postgraduate/domain/payment/domain/service/PaymentGetServiceTest.java b/src/test/java/com/postgraduate/domain/payment/domain/service/PaymentGetServiceTest.java index 9c670787..66c009fe 100644 --- a/src/test/java/com/postgraduate/domain/payment/domain/service/PaymentGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/payment/domain/service/PaymentGetServiceTest.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.payment.domain.repository.PaymentRepository; import com.postgraduate.domain.payment.exception.PaymentNotFoundException; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/src/test/java/com/postgraduate/domain/payment/usecase/PaymentManageUseTypeTest.java b/src/test/java/com/postgraduate/domain/payment/usecase/PaymentManageUseTypeTest.java index c5310fd1..735c3e62 100644 --- a/src/test/java/com/postgraduate/domain/payment/usecase/PaymentManageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/payment/usecase/PaymentManageUseTypeTest.java @@ -9,8 +9,8 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; import com.postgraduate.global.slack.SlackPaymentMessage; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -24,8 +24,8 @@ import java.time.LocalDateTime; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.TRUE; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.given; diff --git a/src/test/java/com/postgraduate/domain/salary/application/usecase/CreateSalaryUseTypeTest.java b/src/test/java/com/postgraduate/domain/salary/application/usecase/CreateSalaryUseTypeTest.java index f8fb2c0a..f8795d61 100644 --- a/src/test/java/com/postgraduate/domain/salary/application/usecase/CreateSalaryUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/salary/application/usecase/CreateSalaryUseTypeTest.java @@ -6,12 +6,13 @@ import com.postgraduate.domain.payment.domain.entity.constant.Status; import com.postgraduate.domain.salary.application.dto.res.SalaryDetailsResponse; import com.postgraduate.domain.salary.application.dto.res.SalaryInfoResponse; +import com.postgraduate.domain.salary.application.mapper.SalaryMapper; 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.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -40,6 +41,8 @@ class CreateSalaryUseTypeTest { private SalaryGetService salaryGetService; @Mock private MentoringGetService mentoringGetService; + @Mock + private SalaryMapper salaryMapper; @InjectMocks private SalaryInfoUseCase salaryInfoUseCase; diff --git a/src/test/java/com/postgraduate/domain/salary/domain/service/SalaryGetServiceTest.java b/src/test/java/com/postgraduate/domain/salary/domain/service/SalaryGetServiceTest.java index aaa00b87..64cfc1df 100644 --- a/src/test/java/com/postgraduate/domain/salary/domain/service/SalaryGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/salary/domain/service/SalaryGetServiceTest.java @@ -1,6 +1,5 @@ package com.postgraduate.domain.salary.domain.service; -import com.postgraduate.domain.mentoring.domain.entity.Mentoring; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.repository.SalaryRepository; import com.postgraduate.domain.salary.exception.SalaryNotFoundException; @@ -17,8 +16,6 @@ import java.util.List; import java.util.Optional; -import static java.util.Optional.of; -import static java.util.Optional.ofNullable; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; @@ -71,7 +68,7 @@ void bySalaryIdFail() { @DisplayName("SeniorId 통한 Salary 조회 테스트") void bySeniorId() { LocalDate salaryDate = SalaryUtil.getSalaryDate(); - given(salaryRepository.findBySeniorAndSalaryDate(senior, salaryDate)) + given(salaryRepository.findBySeniorAndSalaryDateAndSenior_User_IsDeleteIsFalse(senior, salaryDate)) .willReturn(Optional.of(salary)); assertThat(salaryGetService.bySenior(senior)) @@ -82,7 +79,7 @@ void bySeniorId() { @DisplayName("SeniorId 통한 Salary 조회 예외 테스트") void bySeniorIdFail() { LocalDate salaryDate = SalaryUtil.getSalaryDate(); - given(salaryRepository.findBySeniorAndSalaryDate(senior, salaryDate)) + given(salaryRepository.findBySeniorAndSalaryDateAndSenior_User_IsDeleteIsFalse(senior, salaryDate)) .willThrow(SalaryNotFoundException.class); assertThatThrownBy(() -> salaryGetService.bySenior(senior)) diff --git a/src/test/java/com/postgraduate/domain/salary/presentation/SalaryControllerTest.java b/src/test/java/com/postgraduate/domain/salary/presentation/SalaryControllerTest.java index d1536ba0..cc2c2d0a 100644 --- a/src/test/java/com/postgraduate/domain/salary/presentation/SalaryControllerTest.java +++ b/src/test/java/com/postgraduate/domain/salary/presentation/SalaryControllerTest.java @@ -4,7 +4,7 @@ import com.postgraduate.domain.salary.application.dto.res.SalaryDetailsResponse; import com.postgraduate.domain.salary.application.dto.res.SalaryInfoResponse; import com.postgraduate.domain.salary.domain.entity.Salary; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.support.ControllerTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; diff --git a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseTypeTest.java b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseTypeTest.java index 7782af95..8fd3d443 100644 --- a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorInfoUseTypeTest.java @@ -11,7 +11,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -26,7 +26,7 @@ import java.util.List; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; diff --git a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseTypeTest.java b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseTypeTest.java index 58cdc9f6..7cc651c3 100644 --- a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorManageUseTypeTest.java @@ -8,6 +8,7 @@ import com.postgraduate.domain.available.domain.entity.Available; import com.postgraduate.domain.available.domain.service.AvailableDeleteService; import com.postgraduate.domain.available.domain.service.AvailableSaveService; +import com.postgraduate.domain.salary.application.mapper.SalaryMapper; import com.postgraduate.domain.salary.domain.entity.Salary; import com.postgraduate.domain.salary.domain.service.SalaryGetService; import com.postgraduate.domain.salary.domain.service.SalaryUpdateService; @@ -20,10 +21,10 @@ import com.postgraduate.domain.senior.domain.service.SeniorGetService; import com.postgraduate.domain.senior.domain.service.SeniorUpdateService; import com.postgraduate.domain.senior.exception.KeywordException; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserUpdateService; -import com.postgraduate.domain.user.exception.PhoneNumberException; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; import com.postgraduate.global.config.security.util.EncryptorUtils; import com.postgraduate.global.slack.SlackCertificationMessage; import org.junit.jupiter.api.BeforeEach; @@ -39,7 +40,7 @@ import java.util.Optional; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -68,6 +69,8 @@ class SeniorManageUseTypeTest { @Mock private SalaryUpdateService salaryUpdateService; @Mock + private SalaryMapper salaryMapper; + @Mock private EncryptorUtils encryptorUtils; @Mock private UserUtils userUtils; diff --git a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseTypeTest.java b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseTypeTest.java index 048d3aeb..61a73711 100644 --- a/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/senior/application/usecase/SeniorMyPageUseTypeTest.java @@ -12,8 +12,7 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.service.SeniorGetService; -import com.postgraduate.domain.senior.exception.NoneProfileException; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; import com.postgraduate.domain.wish.domain.service.WishGetService; import com.postgraduate.global.config.security.util.EncryptorUtils; @@ -31,7 +30,7 @@ import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; import static com.postgraduate.domain.senior.domain.entity.constant.Status.WAITING; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static java.time.LocalDate.now; diff --git a/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorGetServiceTest.java b/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorGetServiceTest.java index 3bcefca9..b8d1f83b 100644 --- a/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorGetServiceTest.java @@ -3,7 +3,7 @@ import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.repository.SeniorRepository; import com.postgraduate.domain.senior.exception.NoneSeniorException; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -34,7 +34,7 @@ class SeniorGetServiceTest { @Test @DisplayName("User 기반 Senior 조회 예외 테스트") void byUserFail() { - given(seniorRepository.findByUser(user)) + given(seniorRepository.findByUserAndUser_IsDeleteIsFalse(user)) .willReturn(ofNullable(null)); assertThatThrownBy(() -> seniorGetService.byUser(user)) @@ -44,7 +44,7 @@ void byUserFail() { @Test @DisplayName("User 기반 Senior 조회 테스트") void byUser() { - given(seniorRepository.findByUser(user)) + given(seniorRepository.findByUserAndUser_IsDeleteIsFalse(user)) .willReturn(of(senior)); assertThat(seniorGetService.byUser(user)) diff --git a/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorUpdateServiceTest.java b/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorUpdateServiceTest.java index f282c1a2..3c5a98df 100644 --- a/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorUpdateServiceTest.java +++ b/src/test/java/com/postgraduate/domain/senior/domain/service/SeniorUpdateServiceTest.java @@ -6,7 +6,7 @@ import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; import com.postgraduate.domain.senior.domain.entity.constant.Status; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -17,7 +17,7 @@ import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.mapToInfo; import static com.postgraduate.domain.senior.application.mapper.SeniorMapper.mapToProfile; import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static java.time.LocalDateTime.now; diff --git a/src/test/java/com/postgraduate/domain/senior/presentation/SeniorControllerTest.java b/src/test/java/com/postgraduate/domain/senior/presentation/SeniorControllerTest.java index 2d2c8347..b5161b4c 100644 --- a/src/test/java/com/postgraduate/domain/senior/presentation/SeniorControllerTest.java +++ b/src/test/java/com/postgraduate/domain/senior/presentation/SeniorControllerTest.java @@ -9,7 +9,7 @@ import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.support.ControllerTest; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -18,11 +18,9 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.web.servlet.ResultMatcher; import java.util.List; -import static com.postgraduate.domain.senior.domain.entity.constant.Status.APPROVE; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseCode.*; import static com.postgraduate.domain.senior.presentation.constant.SeniorResponseMessage.*; import static org.mockito.ArgumentMatchers.any; diff --git a/src/test/java/com/postgraduate/domain/user/application/usecase/UserManageUseTypeTest.java b/src/test/java/com/postgraduate/domain/user/application/usecase/UserManageUseTypeTest.java index 5589f2ac..679fabb8 100644 --- a/src/test/java/com/postgraduate/domain/user/application/usecase/UserManageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/user/application/usecase/UserManageUseTypeTest.java @@ -1,11 +1,12 @@ package com.postgraduate.domain.user.application.usecase; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.application.utils.UserUtils; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.service.UserGetService; -import com.postgraduate.domain.user.domain.service.UserUpdateService; -import com.postgraduate.domain.user.exception.PhoneNumberException; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.application.usecase.UserManageUseCase; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; diff --git a/src/test/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseTypeTest.java b/src/test/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseTypeTest.java index 223c37f2..a6a0a44a 100644 --- a/src/test/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseTypeTest.java +++ b/src/test/java/com/postgraduate/domain/user/application/usecase/UserMyPageUseTypeTest.java @@ -1,9 +1,10 @@ package com.postgraduate.domain.user.application.usecase; -import com.postgraduate.domain.user.application.dto.res.UserInfoResponse; -import com.postgraduate.domain.user.application.dto.res.UserMyPageResponse; -import com.postgraduate.domain.user.application.dto.res.UserPossibleResponse; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.dto.res.UserInfoResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserMyPageResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserPossibleResponse; +import com.postgraduate.domain.user.user.application.usecase.UserMyPageUseCase; +import com.postgraduate.domain.user.user.domain.entity.User; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -13,8 +14,8 @@ import java.time.LocalDateTime; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.TRUE; import static java.time.LocalDate.now; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/com/postgraduate/domain/user/application/utils/UserUtilsTest.java b/src/test/java/com/postgraduate/domain/user/application/utils/UserUtilsTest.java index 41fcd522..a0e90ae6 100644 --- a/src/test/java/com/postgraduate/domain/user/application/utils/UserUtilsTest.java +++ b/src/test/java/com/postgraduate/domain/user/application/utils/UserUtilsTest.java @@ -1,7 +1,7 @@ package com.postgraduate.domain.user.application.utils; -import com.postgraduate.domain.user.exception.PhoneNumberException; -import org.assertj.core.api.Assertions; +import com.postgraduate.domain.user.user.application.utils.UserUtils; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.extension.ExtendWith; import org.junit.jupiter.params.ParameterizedTest; diff --git a/src/test/java/com/postgraduate/domain/user/domain/service/UserGetServiceTest.java b/src/test/java/com/postgraduate/domain/user/domain/service/UserGetServiceTest.java index 969681d2..7864d6ca 100644 --- a/src/test/java/com/postgraduate/domain/user/domain/service/UserGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/user/domain/service/UserGetServiceTest.java @@ -1,8 +1,9 @@ package com.postgraduate.domain.user.domain.service; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.domain.repository.UserRepository; -import com.postgraduate.domain.user.exception.UserNotFoundException; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.domain.service.UserGetService; +import com.postgraduate.domain.user.user.exception.UserNotFoundException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -14,7 +15,7 @@ import java.time.LocalDateTime; import java.util.Optional; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.TRUE; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; diff --git a/src/test/java/com/postgraduate/domain/user/domain/service/UserUpdateServiceTest.java b/src/test/java/com/postgraduate/domain/user/domain/service/UserUpdateServiceTest.java index dbafd648..d022d229 100644 --- a/src/test/java/com/postgraduate/domain/user/domain/service/UserUpdateServiceTest.java +++ b/src/test/java/com/postgraduate/domain/user/domain/service/UserUpdateServiceTest.java @@ -2,8 +2,9 @@ import com.postgraduate.domain.auth.util.ProfileUtils; import com.postgraduate.domain.senior.application.dto.req.SeniorMyPageUserAccountRequest; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.service.UserUpdateService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -12,7 +13,8 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import static com.postgraduate.domain.user.domain.entity.constant.Role.*; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.lang.Boolean.FALSE; import static java.lang.Boolean.TRUE; import static java.time.LocalDateTime.now; diff --git a/src/test/java/com/postgraduate/domain/user/presentation/UserControllerTest.java b/src/test/java/com/postgraduate/domain/user/presentation/UserControllerTest.java index b05f0e00..c6ae93f6 100644 --- a/src/test/java/com/postgraduate/domain/user/presentation/UserControllerTest.java +++ b/src/test/java/com/postgraduate/domain/user/presentation/UserControllerTest.java @@ -1,14 +1,14 @@ package com.postgraduate.domain.user.presentation; import com.postgraduate.support.ControllerTest; -import com.postgraduate.domain.user.application.dto.req.UserInfoRequest; -import com.postgraduate.domain.user.application.dto.res.UserInfoResponse; -import com.postgraduate.domain.user.application.dto.res.UserMyPageResponse; -import com.postgraduate.domain.user.application.dto.res.UserPossibleResponse; -import com.postgraduate.domain.user.domain.entity.User; -import com.postgraduate.domain.user.exception.PhoneNumberException; -import com.postgraduate.domain.user.presentation.constant.UserResponseCode; -import com.postgraduate.domain.user.presentation.constant.UserResponseMessage; +import com.postgraduate.domain.user.user.application.dto.req.UserInfoRequest; +import com.postgraduate.domain.user.user.application.dto.res.UserInfoResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserMyPageResponse; +import com.postgraduate.domain.user.user.application.dto.res.UserPossibleResponse; +import com.postgraduate.domain.user.user.domain.entity.User; +import com.postgraduate.domain.user.user.exception.PhoneNumberException; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseCode; +import com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -17,8 +17,9 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; -import static com.postgraduate.domain.user.presentation.constant.UserResponseCode.*; -import static com.postgraduate.domain.user.presentation.constant.UserResponseMessage.*; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_FIND; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseCode.USER_UPDATE; +import static com.postgraduate.domain.user.user.presentation.constant.UserResponseMessage.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.BDDMockito.*; import static org.springframework.http.HttpHeaders.AUTHORIZATION; diff --git a/src/test/java/com/postgraduate/domain/wish/domain/service/WishGetServiceTest.java b/src/test/java/com/postgraduate/domain/wish/domain/service/WishGetServiceTest.java index c05725e2..1fc0e88f 100644 --- a/src/test/java/com/postgraduate/domain/wish/domain/service/WishGetServiceTest.java +++ b/src/test/java/com/postgraduate/domain/wish/domain/service/WishGetServiceTest.java @@ -1,8 +1,6 @@ package com.postgraduate.domain.wish.domain.service; -import com.postgraduate.domain.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; -import com.postgraduate.domain.wish.domain.entity.constant.Status; import com.postgraduate.domain.wish.domain.repository.WishRepository; import com.postgraduate.domain.wish.exception.WishNotFoundException; import org.junit.jupiter.api.DisplayName; @@ -31,7 +29,7 @@ class WishGetServiceTest { @DisplayName("Wish 조회 예외 테스트") void byWishIdFail() { long wishId = 1L; - given(wishRepository.findByWishIdAndMatchingReceiveIsTrue(wishId)) + given(wishRepository.findByWishIdAndMatchingReceiveIsTrueAndUser_IsDeleteIsFalse(wishId)) .willReturn(ofNullable(null)); assertThatThrownBy(() -> wishGetService.byWishId(wishId)) @@ -43,7 +41,7 @@ void byWishIdFail() { void byWishId() { long wishId = 1L; Wish wish = mock(Wish.class); - given(wishRepository.findByWishIdAndMatchingReceiveIsTrue(wishId)) + given(wishRepository.findByWishIdAndMatchingReceiveIsTrueAndUser_IsDeleteIsFalse(wishId)) .willReturn(Optional.of(wish)); assertThat(wishGetService.byWishId(wishId)) @@ -56,7 +54,7 @@ void byUserId() { long userId = -1l; Wish wish = mock(Wish.class); - given(wishRepository.findByMatchingReceiveIsTrueAndUser_UserId(userId)) + given(wishRepository.findByMatchingReceiveIsTrueAndUser_UserIdAndUser_IsDeleteIsFalse(userId)) .willReturn(Optional.of(wish)); assertThat(wishGetService.byUserId(userId)) @@ -68,7 +66,7 @@ void byUserId() { void byUserIdFail() { long userId = -1l; - given(wishRepository.findByMatchingReceiveIsTrueAndUser_UserId(userId)) + given(wishRepository.findByMatchingReceiveIsTrueAndUser_UserIdAndUser_IsDeleteIsFalse(userId)) .willReturn(Optional.ofNullable(null)); assertThatThrownBy(() -> wishGetService.byUserId(userId)) diff --git a/src/test/java/com/postgraduate/support/ControllerTest.java b/src/test/java/com/postgraduate/support/ControllerTest.java index 6f687630..0f9bdfd0 100644 --- a/src/test/java/com/postgraduate/support/ControllerTest.java +++ b/src/test/java/com/postgraduate/support/ControllerTest.java @@ -16,11 +16,11 @@ import com.postgraduate.domain.senior.application.usecase.SeniorManageUseCase; import com.postgraduate.domain.senior.application.usecase.SeniorMyPageUseCase; import com.postgraduate.domain.senior.presentation.SeniorController; -import com.postgraduate.domain.user.application.usecase.UserManageUseCase; -import com.postgraduate.domain.user.application.usecase.UserMyPageUseCase; -import com.postgraduate.domain.user.presentation.UserController; +import com.postgraduate.domain.user.quit.application.usecase.QuitManageUseCase; +import com.postgraduate.domain.user.user.application.usecase.UserManageUseCase; +import com.postgraduate.domain.user.user.application.usecase.UserMyPageUseCase; +import com.postgraduate.domain.user.user.presentation.UserController; import com.postgraduate.global.aop.lock.DistributeLockAspect; -import com.postgraduate.global.aop.logging.service.LogService; import com.postgraduate.global.slack.SlackLogErrorMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -72,7 +72,7 @@ public class ControllerTest { @MockBean protected JwtUseCase jwtUseCase; @MockBean - protected LogService logService; + protected QuitManageUseCase quitManageUseCase; @MockBean protected SlackLogErrorMessage slackLogErrorMessage; @MockBean diff --git a/src/test/java/com/postgraduate/support/IntegrationTest.java b/src/test/java/com/postgraduate/support/IntegrationTest.java index 0b55e2d0..c67e22a2 100644 --- a/src/test/java/com/postgraduate/support/IntegrationTest.java +++ b/src/test/java/com/postgraduate/support/IntegrationTest.java @@ -8,7 +8,7 @@ import com.postgraduate.domain.payment.domain.repository.PaymentRepository; import com.postgraduate.domain.salary.domain.repository.SalaryRepository; import com.postgraduate.domain.senior.domain.repository.SeniorRepository; -import com.postgraduate.domain.user.domain.repository.UserRepository; +import com.postgraduate.domain.user.user.domain.repository.UserRepository; import com.postgraduate.domain.wish.domain.repository.WishRepository; import com.postgraduate.global.aop.lock.DistributeLockAspect; import com.postgraduate.global.config.redis.RedisRepository; diff --git a/src/test/java/com/postgraduate/support/Resource.java b/src/test/java/com/postgraduate/support/Resource.java index 614456af..504f2429 100644 --- a/src/test/java/com/postgraduate/support/Resource.java +++ b/src/test/java/com/postgraduate/support/Resource.java @@ -10,9 +10,8 @@ import com.postgraduate.domain.senior.domain.entity.Info; import com.postgraduate.domain.senior.domain.entity.Profile; import com.postgraduate.domain.senior.domain.entity.Senior; -import com.postgraduate.domain.user.domain.entity.User; +import com.postgraduate.domain.user.user.domain.entity.User; import com.postgraduate.domain.wish.domain.entity.Wish; -import org.springframework.stereotype.Component; import java.time.LocalDateTime; import java.util.List; @@ -21,8 +20,8 @@ import static com.postgraduate.domain.mentoring.domain.entity.constant.Status.WAITING; import static com.postgraduate.domain.payment.domain.entity.constant.Status.DONE; import static com.postgraduate.domain.salary.util.SalaryUtil.getSalaryDate; -import static com.postgraduate.domain.user.domain.entity.constant.Role.SENIOR; -import static com.postgraduate.domain.user.domain.entity.constant.Role.USER; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.SENIOR; +import static com.postgraduate.domain.user.user.domain.entity.constant.Role.USER; import static java.time.LocalDateTime.now; public class Resource {