From 1fe2e57ddf5b2ad7938a89cbf5153219111017b8 Mon Sep 17 00:00:00 2001 From: binarywoo27 Date: Tue, 21 Nov 2023 17:27:11 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B4=88=EA=B8=B0=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20Entity=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 25 +++++++++ build.gradle | 2 + .../bb/payment/PaymentServiceApplication.java | 9 ++-- .../java/kr/bb/payment/entity/OrderType.java | 15 ++++++ .../java/kr/bb/payment/entity/Payment.java | 51 ++++++++++++++++++ .../kr/bb/payment/entity/PaymentCancel.java | 43 +++++++++++++++ .../kr/bb/payment/entity/Subscription.java | 52 +++++++++++++++++++ .../payment/entity/SubscriptionRecords.java | 39 ++++++++++++++ .../bb/payment/entity/common/BaseEntity.java | 27 ++++++++++ .../payment/repository/PaymentRepository.java | 6 +++ .../kr/bb/payment/service/PaymentService.java | 6 +++ src/main/resources/application-local.yml | 0 .../PaymentServiceApplicationTests.java | 13 ----- 13 files changed, 272 insertions(+), 16 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 src/main/java/kr/bb/payment/entity/OrderType.java create mode 100644 src/main/java/kr/bb/payment/entity/Payment.java create mode 100644 src/main/java/kr/bb/payment/entity/PaymentCancel.java create mode 100644 src/main/java/kr/bb/payment/entity/Subscription.java create mode 100644 src/main/java/kr/bb/payment/entity/SubscriptionRecords.java create mode 100644 src/main/java/kr/bb/payment/entity/common/BaseEntity.java create mode 100644 src/main/java/kr/bb/payment/repository/PaymentRepository.java create mode 100644 src/main/java/kr/bb/payment/service/PaymentService.java create mode 100644 src/main/resources/application-local.yml delete mode 100644 src/test/java/kr/bb/payment/PaymentServiceApplicationTests.java diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..fea18ed --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,25 @@ +name: PR build + + +on: + pull_request: + branches: [ develop ] # develop branch에 PR을 보낼 때 실행 + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + + # Gradle wrapper 파일 실행 권한주기 + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + # Gradle test를 실행한다 + - name: build gradle + run: ./gradlew clean build \ No newline at end of file diff --git a/build.gradle b/build.gradle index c14647e..216d75b 100644 --- a/build.gradle +++ b/build.gradle @@ -35,6 +35,8 @@ dependencies { annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation "org.springframework.cloud:spring-cloud-starter-bus-kafka" + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation group: 'io.github.lotteon-maven', name: 'blooming-blooms-utils', version: '0.1.0-alpha1' } dependencyManagement { diff --git a/src/main/java/kr/bb/payment/PaymentServiceApplication.java b/src/main/java/kr/bb/payment/PaymentServiceApplication.java index 9d7e75c..3a29653 100644 --- a/src/main/java/kr/bb/payment/PaymentServiceApplication.java +++ b/src/main/java/kr/bb/payment/PaymentServiceApplication.java @@ -3,13 +3,16 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.EnableEurekaClient; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @SpringBootApplication +@EnableJpaAuditing @EnableEurekaClient public class PaymentServiceApplication { - public static void main(String[] args) { - SpringApplication.run(PaymentServiceApplication.class, args); - } +public static void main(String[] args) { + SpringApplication.run(PaymentServiceApplication.class, args); +} } + diff --git a/src/main/java/kr/bb/payment/entity/OrderType.java b/src/main/java/kr/bb/payment/entity/OrderType.java new file mode 100644 index 0000000..ecd2ee7 --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/OrderType.java @@ -0,0 +1,15 @@ +package kr.bb.payment.entity; + +import lombok.Getter; + +@Getter +public enum OrderType { + ORDER_DELIVERY("주문 배송"), + ORDER_PICKUP("주문 픽업"); + + private final String message; + + OrderType(String message) { + this.message = message; + } +} diff --git a/src/main/java/kr/bb/payment/entity/Payment.java b/src/main/java/kr/bb/payment/entity/Payment.java new file mode 100644 index 0000000..96a309c --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/Payment.java @@ -0,0 +1,51 @@ +package kr.bb.payment.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import kr.bb.payment.entity.common.BaseEntity; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "payment") +@AllArgsConstructor(access = AccessLevel.PROTECTED) +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Payment extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "payment_id") + private Long paymentId; + + @Column(name = "user_id", unique = true, nullable = false) + private Long userId; + + @Column(name = "order_id", unique = true, nullable = false) + private Long orderId; + + @Enumerated(EnumType.STRING) + @Column(name = "orderType", nullable = false) + private String orderType; + + @Column(name = "payment_cid", nullable = false) + private String paymentCid; + + @Column(name = "payment_tid", nullable = false) + private String paymentTid; + + @Column(name = "payment_actual_amount", nullable = false) + private String paymentActualAmount; + + @Column(name = "payment_type", nullable = false) + private String paymentType; + + @Column(name = "payment_status", nullable = false) + private String paymentStatus; +} diff --git a/src/main/java/kr/bb/payment/entity/PaymentCancel.java b/src/main/java/kr/bb/payment/entity/PaymentCancel.java new file mode 100644 index 0000000..54e542d --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/PaymentCancel.java @@ -0,0 +1,43 @@ +package kr.bb.payment.entity; + +import static javax.persistence.GenerationType.IDENTITY; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Table; +import kr.bb.payment.entity.common.BaseEntity; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@Entity +@Table(name="payment_cancel") +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PROTECTED) +public class PaymentCancel extends BaseEntity { + @Id + @GeneratedValue(strategy = IDENTITY) + @Column(name ="payment_cancel_id") + private Long paymentCancelId; + + @OneToOne + @JoinColumn(name = "payment_id") + private Payment paymentId; + + @Column(name = "payment_cancel_quantity", unique = true, nullable = false) + private Long paymentCancelQuantity; + + @Column(name = "payment_cancel_amount", unique = true, nullable = false) + private Long paymentCancelAmount; + + @Column(name = "payment_cancel_reason", unique = true, nullable = false) + private Long paymentCancelReason; + + @Column(name = "payment_cancel_status", unique = true, nullable = false) + private Long paymentCancelStatus; +} + diff --git a/src/main/java/kr/bb/payment/entity/Subscription.java b/src/main/java/kr/bb/payment/entity/Subscription.java new file mode 100644 index 0000000..b0ab0be --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/Subscription.java @@ -0,0 +1,52 @@ +package kr.bb.payment.entity; + +import java.util.Date; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; +import kr.bb.payment.entity.common.BaseEntity; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "subscription") +@AllArgsConstructor(access = AccessLevel.PROTECTED) +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Subscription extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "subscription_id") + private Long subscriptionId; + + @Column(name = "order_subscription_id", unique = true, nullable = false) + private Long orderSubscriptionId; + + @Column(name = "subscription_cid", nullable = false) + private String subscriptionCid; + + @Column(name = "subscription_tid", unique = true, nullable = false) + private String subscriptionTid; + + @Column(name = "subscription_sid", unique = true, nullable = false) + private String subscriptionSid; + + @Column(name = "subscription_quantity", unique = true, nullable = false) + private Long subscriptionQuantity; + + @Column(name = "subscription_total_amount", unique = true, nullable = false) + private Long subscriptionTotalAmount; + + @Column(name = "payment_day", unique = true, nullable = false) + private String paymentDay; + + @Column(name = "start_date", unique = true, nullable = false) + private Date startDate; + + @Column(name = "end_date", unique = true, nullable = true) + private Date endDate; +} diff --git a/src/main/java/kr/bb/payment/entity/SubscriptionRecords.java b/src/main/java/kr/bb/payment/entity/SubscriptionRecords.java new file mode 100644 index 0000000..5950b2d --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/SubscriptionRecords.java @@ -0,0 +1,39 @@ +package kr.bb.payment.entity; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import kr.bb.payment.entity.common.BaseEntity; +import lombok.AccessLevel; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + +@Entity +@Table(name = "subscription_records") +@AllArgsConstructor(access = AccessLevel.PROTECTED) +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class SubscriptionRecords extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "subscription_records_id") + private Long subscriptionRecordsId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "subcription_id") + private Subscription subscriptionId; + + @Column(name = "delivery_id", unique = true, nullable = false) + private Long deliveryId; + + @Column(name = "subscription_total_amount", unique = true, nullable = false) + private Long subscriptionTotalAmount; + + @Column(name = "subscription_status", unique = true, nullable = false) + private String subscriptionStatus; +} diff --git a/src/main/java/kr/bb/payment/entity/common/BaseEntity.java b/src/main/java/kr/bb/payment/entity/common/BaseEntity.java new file mode 100644 index 0000000..153fc08 --- /dev/null +++ b/src/main/java/kr/bb/payment/entity/common/BaseEntity.java @@ -0,0 +1,27 @@ +package kr.bb.payment.entity.common; + +import java.time.LocalDateTime; +import javax.persistence.Column; +import javax.persistence.EntityListeners; +import javax.persistence.MappedSuperclass; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +@MappedSuperclass +@EntityListeners(AuditingEntityListener.class) +public class BaseEntity { +@CreatedDate +@Column(name = "created_at") +private LocalDateTime createdAt; + +@LastModifiedDate +@Column(name = "updated_at") +private LocalDateTime updatedAt; + +@Column(name = "is_deleted") +private Boolean isDeleted; +} + diff --git a/src/main/java/kr/bb/payment/repository/PaymentRepository.java b/src/main/java/kr/bb/payment/repository/PaymentRepository.java new file mode 100644 index 0000000..64d282e --- /dev/null +++ b/src/main/java/kr/bb/payment/repository/PaymentRepository.java @@ -0,0 +1,6 @@ +package kr.bb.payment.repository; + +import kr.bb.payment.entity.Payment; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PaymentRepository extends JpaRepository {} diff --git a/src/main/java/kr/bb/payment/service/PaymentService.java b/src/main/java/kr/bb/payment/service/PaymentService.java new file mode 100644 index 0000000..d83d02e --- /dev/null +++ b/src/main/java/kr/bb/payment/service/PaymentService.java @@ -0,0 +1,6 @@ +package kr.bb.payment.service; + +import org.springframework.stereotype.Service; + +@Service +public class PaymentService {} diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml new file mode 100644 index 0000000..e69de29 diff --git a/src/test/java/kr/bb/payment/PaymentServiceApplicationTests.java b/src/test/java/kr/bb/payment/PaymentServiceApplicationTests.java deleted file mode 100644 index 29e7228..0000000 --- a/src/test/java/kr/bb/payment/PaymentServiceApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package kr.bb.payment; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class PaymentServiceApplicationTests { - - @Test - void contextLoads() { - } - -}