-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #155 from AppLinkers/develop
Deploy for 7th sprint 최종 거래 완료
- Loading branch information
Showing
87 changed files
with
1,181 additions
and
962 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Submodule laser-ordermanage-server-submodule-config
updated
from a0c0da to a905df
29 changes: 29 additions & 0 deletions
29
src/main/java/com/laser/ordermanage/common/config/DataSourceConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.laser.ordermanage.common.config; | ||
|
||
import org.springframework.beans.factory.annotation.Qualifier; | ||
import org.springframework.boot.context.properties.ConfigurationProperties; | ||
import org.springframework.boot.jdbc.DataSourceBuilder; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
import org.springframework.context.annotation.Primary; | ||
import org.springframework.jdbc.datasource.DataSourceTransactionManager; | ||
import org.springframework.transaction.PlatformTransactionManager; | ||
|
||
import javax.sql.DataSource; | ||
|
||
@Configuration | ||
public class DataSourceConfig { | ||
|
||
@Primary | ||
@Bean | ||
@ConfigurationProperties(prefix = "spring.datasource") | ||
public DataSource dataSource() { | ||
return DataSourceBuilder.create().build(); | ||
} | ||
|
||
@Primary | ||
@Bean | ||
public PlatformTransactionManager transactionManager(@Qualifier("dataSource") DataSource dataSource) { | ||
return new DataSourceTransactionManager(dataSource); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
16 changes: 5 additions & 11 deletions
16
src/main/java/com/laser/ordermanage/common/exception/dto/response/ErrorResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,11 @@ | ||
package com.laser.ordermanage.common.exception.dto.response; | ||
|
||
import lombok.AllArgsConstructor; | ||
import lombok.Builder; | ||
import lombok.Getter; | ||
import org.springframework.http.HttpStatus; | ||
|
||
@Builder | ||
@Getter | ||
@AllArgsConstructor | ||
public class ErrorResponse { | ||
|
||
private HttpStatus httpStatus; | ||
private String errorCode; | ||
private String message; | ||
|
||
} | ||
public record ErrorResponse ( | ||
HttpStatus httpStatus, | ||
String errorCode, | ||
String message | ||
) { } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
18 changes: 8 additions & 10 deletions
18
src/main/java/com/laser/ordermanage/common/paging/ListResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,16 @@ | ||
package com.laser.ordermanage.common.paging; | ||
|
||
import lombok.Getter; | ||
|
||
import java.util.List; | ||
|
||
@Getter | ||
public class ListResponse<T> { | ||
|
||
private final List<T> contents; | ||
|
||
private final Long totalElements; | ||
|
||
public record ListResponse<T>( | ||
List<T> contents, | ||
Long totalElements | ||
) { | ||
public ListResponse(List<T> contents) { | ||
this.contents = contents; | ||
this.totalElements = (long) contents.size(); | ||
this( | ||
contents, | ||
(long) contents.size() | ||
); | ||
} | ||
} |
45 changes: 18 additions & 27 deletions
45
src/main/java/com/laser/ordermanage/common/paging/PageResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,27 @@ | ||
package com.laser.ordermanage.common.paging; | ||
|
||
import lombok.Getter; | ||
import org.springframework.data.domain.Page; | ||
|
||
import java.util.List; | ||
|
||
@Getter | ||
public class PageResponse<T> { | ||
|
||
private final List<T> contents; | ||
|
||
private final Integer page; | ||
|
||
private final Integer size; | ||
|
||
private final Long totalElements; | ||
|
||
private final Integer totalPages; | ||
|
||
private final Boolean first; | ||
|
||
private final Boolean last; | ||
|
||
public record PageResponse<T>( | ||
List<T> contents, | ||
Integer page, | ||
Integer size, | ||
Long totalElements, | ||
Integer totalPages, | ||
Boolean first, | ||
Boolean last | ||
) { | ||
public PageResponse(Page<T> contentPage) { | ||
this.contents = contentPage.getContent(); | ||
|
||
this.page = contentPage.getNumber() + 1; | ||
this.size = contentPage.getNumberOfElements(); | ||
this.totalElements = contentPage.getTotalElements(); | ||
this.totalPages = contentPage.getTotalPages(); | ||
this.first = (contentPage.getNumber() == 0) ? Boolean.TRUE : Boolean.FALSE; | ||
this.last = ((contentPage.getNumber() + 1) == contentPage.getTotalPages()) ? Boolean.TRUE : Boolean.FALSE; | ||
|
||
this( | ||
contentPage.getContent(), | ||
contentPage.getNumber() + 1, | ||
contentPage.getNumberOfElements(), | ||
contentPage.getTotalElements(), | ||
contentPage.getTotalPages(), | ||
contentPage.getNumber() == 0, | ||
(contentPage.getNumber() + 1) == contentPage.getTotalPages() | ||
); | ||
} | ||
} |
20 changes: 20 additions & 0 deletions
20
src/main/java/com/laser/ordermanage/common/scheduler/config/SchedulerConfig.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.laser.ordermanage.common.scheduler.config; | ||
|
||
import org.springframework.boot.autoconfigure.quartz.QuartzDataSource; | ||
import org.springframework.boot.context.properties.ConfigurationProperties; | ||
import org.springframework.boot.jdbc.DataSourceBuilder; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.context.annotation.Configuration; | ||
|
||
import javax.sql.DataSource; | ||
|
||
@Configuration | ||
public class SchedulerConfig { | ||
|
||
@QuartzDataSource | ||
@Bean | ||
@ConfigurationProperties(prefix = "spring.quartz.datasource") | ||
public DataSource quartzDataSource() { | ||
return DataSourceBuilder.create().build(); | ||
} | ||
} |
13 changes: 13 additions & 0 deletions
13
src/main/java/com/laser/ordermanage/common/scheduler/dto/request/JobRequest.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
package com.laser.ordermanage.common.scheduler.dto.request; | ||
|
||
import lombok.Builder; | ||
|
||
import java.util.Date; | ||
|
||
@Builder | ||
public record JobRequest ( | ||
String name, | ||
String group, | ||
Date startAt | ||
) { | ||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/com/laser/ordermanage/common/scheduler/job/ChangeStageToCompletedJob.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.laser.ordermanage.common.scheduler.job; | ||
|
||
import com.laser.ordermanage.factory.service.FactoryOrderService; | ||
import com.laser.ordermanage.order.domain.Order; | ||
import com.laser.ordermanage.order.service.OrderService; | ||
import lombok.RequiredArgsConstructor; | ||
import org.quartz.Job; | ||
import org.quartz.JobExecutionContext; | ||
import org.springframework.stereotype.Component; | ||
|
||
@RequiredArgsConstructor | ||
@Component | ||
public class ChangeStageToCompletedJob implements Job { | ||
|
||
private final OrderService orderService; | ||
private final FactoryOrderService factoryOrderService; | ||
|
||
@Override | ||
public void execute(JobExecutionContext context) { | ||
Long orderId = Long.valueOf(context.getJobDetail().getKey().getName()); | ||
|
||
Order order = orderService.getOrderById(orderId); | ||
|
||
if (!order.enableChangeStageToCompleted()) { | ||
return; | ||
} | ||
|
||
factoryOrderService.changeStageToCompleted(order); | ||
|
||
factoryOrderService.sendEmailForChangeStageToCompleted(order); | ||
} | ||
} |
55 changes: 55 additions & 0 deletions
55
src/main/java/com/laser/ordermanage/common/scheduler/service/ScheduleService.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
package com.laser.ordermanage.common.scheduler.service; | ||
|
||
import com.laser.ordermanage.common.exception.CustomCommonException; | ||
import com.laser.ordermanage.common.exception.ErrorCode; | ||
import com.laser.ordermanage.common.scheduler.dto.request.JobRequest; | ||
import com.laser.ordermanage.common.scheduler.util.JobUtil; | ||
import com.laser.ordermanage.common.scheduler.job.ChangeStageToCompletedJob; | ||
import lombok.RequiredArgsConstructor; | ||
import lombok.extern.slf4j.Slf4j; | ||
import org.quartz.*; | ||
import org.springframework.scheduling.quartz.SchedulerFactoryBean; | ||
import org.springframework.stereotype.Service; | ||
|
||
@Slf4j | ||
@RequiredArgsConstructor | ||
@Service | ||
public class ScheduleService { | ||
|
||
private final SchedulerFactoryBean schedulerFactoryBean; | ||
|
||
public void createJobForChangeStageToCompleted(Long orderId) { | ||
JobRequest jobRequest = JobRequest.builder() | ||
.name(orderId.toString()) | ||
.group(ChangeStageToCompletedJob.class.getName()) // orderId 에 해당하는 거래의 상태를 COMPLETED 로 변경하는 작업 | ||
.startAt(DateBuilder.futureDate(7, DateBuilder.IntervalUnit.DAY)) // 7일 후 | ||
.build(); | ||
this.addJob(jobRequest, ChangeStageToCompletedJob.class); | ||
} | ||
|
||
private void addJob(JobRequest jobRequest, Class<? extends Job> jobClass) { | ||
Trigger trigger = JobUtil.createTrigger(jobRequest); | ||
JobDetail jobDetail = JobUtil.createJob(jobRequest, jobClass); | ||
|
||
try { | ||
schedulerFactoryBean.getScheduler().scheduleJob(jobDetail, trigger); | ||
} catch (SchedulerException e) { | ||
throw new CustomCommonException(ErrorCode.INTERNAL_SERVER_ERROR); | ||
} | ||
} | ||
|
||
public void removeJobForChangeStageToCompleted(Long orderId) { | ||
this.removeJob(String.valueOf(orderId), ChangeStageToCompletedJob.class.getName()); | ||
} | ||
|
||
private void removeJob(String jobName, String groupName) { | ||
JobKey jobKey = JobKey.jobKey(jobName, groupName); | ||
|
||
try { | ||
schedulerFactoryBean.getScheduler().deleteJob(jobKey); | ||
} catch (SchedulerException e) { | ||
// Trigger 해제를 실패하는 경우 | ||
throw new CustomCommonException(ErrorCode.INTERNAL_SERVER_ERROR); | ||
} | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
src/main/java/com/laser/ordermanage/common/scheduler/util/JobUtil.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.laser.ordermanage.common.scheduler.util; | ||
|
||
import com.laser.ordermanage.common.scheduler.dto.request.JobRequest; | ||
import org.quartz.*; | ||
|
||
public class JobUtil { | ||
|
||
private JobUtil() { | ||
} | ||
|
||
public static Trigger createTrigger(JobRequest jobRequest) { | ||
TriggerKey triggerKey = TriggerKey.triggerKey(jobRequest.name(), jobRequest.group()); | ||
|
||
Trigger trigger = TriggerBuilder.newTrigger() | ||
.withIdentity(triggerKey) | ||
.startAt(jobRequest.startAt()) | ||
.build(); | ||
|
||
return trigger; | ||
} | ||
|
||
public static JobDetail createJob(JobRequest jobRequest, Class<? extends Job> jobClass) { | ||
JobKey jobKey = JobKey.jobKey(jobRequest.name(), jobRequest.group()); | ||
|
||
JobDetail job = JobBuilder.newJob(jobClass) | ||
.withIdentity(jobKey) | ||
.build(); | ||
|
||
return job; | ||
} | ||
|
||
} |
Oops, something went wrong.