From b7a885aabe8a39326fdccb359068222519531c1a Mon Sep 17 00:00:00 2001 From: lukehongg Date: Thu, 26 Jan 2023 21:53:34 +0900 Subject: [PATCH 01/45] temp --- .../admin/controller/AdminController.java | 12 ++++++++ .../greenpoint/server/admin/model/Admin.java | 30 +++++++++++++++++++ .../admin/repository/AdminRepository.java | 8 +++++ .../server/admin/service/AdminService.java | 7 +++++ .../controller/CustomerController.java | 12 ++++++++ .../server/customer/model/Customer.java | 27 +++++++++++++++++ .../repository/CustomerRepository.java | 8 +++++ .../customer/service/CustomerService.java | 7 +++++ .../controller/CustomerController.java | 12 ++++++++ .../server/history/model/Customer.java | 30 +++++++++++++++++++ .../repository/CustomerRepository.java | 8 +++++ .../history/service/CustomerService.java | 7 +++++ .../level/controller/CustomerController.java | 12 ++++++++ .../server/level/model/Customer.java | 30 +++++++++++++++++++ .../level/repository/CustomerRepository.java | 8 +++++ .../server/level/service/CustomerService.java | 7 +++++ .../menu/controller/CustomerController.java | 12 ++++++++ .../server/menu/model/Customer.java | 30 +++++++++++++++++++ .../menu/repository/CustomerRepository.java | 8 +++++ .../server/menu/service/CustomerService.java | 7 +++++ .../point/controller/CustomerController.java | 12 ++++++++ .../server/point/model/Customer.java | 30 +++++++++++++++++++ .../point/repository/CustomerRepository.java | 8 +++++ .../server/point/service/CustomerService.java | 7 +++++ .../store/controller/CustomerController.java | 12 ++++++++ .../server/store/model/Customer.java | 30 +++++++++++++++++++ .../store/repository/CustomerRepository.java | 8 +++++ .../server/store/service/CustomerService.java | 7 +++++ 28 files changed, 396 insertions(+) create mode 100644 src/main/java/com/greenpoint/server/admin/controller/AdminController.java create mode 100644 src/main/java/com/greenpoint/server/admin/model/Admin.java create mode 100644 src/main/java/com/greenpoint/server/admin/repository/AdminRepository.java create mode 100644 src/main/java/com/greenpoint/server/admin/service/AdminService.java create mode 100644 src/main/java/com/greenpoint/server/customer/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/customer/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/customer/service/CustomerService.java create mode 100644 src/main/java/com/greenpoint/server/history/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/history/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/history/service/CustomerService.java create mode 100644 src/main/java/com/greenpoint/server/level/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/level/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/level/service/CustomerService.java create mode 100644 src/main/java/com/greenpoint/server/menu/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/menu/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/menu/service/CustomerService.java create mode 100644 src/main/java/com/greenpoint/server/point/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/point/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/point/service/CustomerService.java create mode 100644 src/main/java/com/greenpoint/server/store/controller/CustomerController.java create mode 100644 src/main/java/com/greenpoint/server/store/model/Customer.java create mode 100644 src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/store/service/CustomerService.java diff --git a/src/main/java/com/greenpoint/server/admin/controller/AdminController.java b/src/main/java/com/greenpoint/server/admin/controller/AdminController.java new file mode 100644 index 0000000..8af23ad --- /dev/null +++ b/src/main/java/com/greenpoint/server/admin/controller/AdminController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.admin.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class AdminController { + +} diff --git a/src/main/java/com/greenpoint/server/admin/model/Admin.java b/src/main/java/com/greenpoint/server/admin/model/Admin.java new file mode 100644 index 0000000..9de3855 --- /dev/null +++ b/src/main/java/com/greenpoint/server/admin/model/Admin.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.admin.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE admin SET deleted = true Where id = ?") +public class Admin { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/admin/repository/AdminRepository.java b/src/main/java/com/greenpoint/server/admin/repository/AdminRepository.java new file mode 100644 index 0000000..f3dbb87 --- /dev/null +++ b/src/main/java/com/greenpoint/server/admin/repository/AdminRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.admin.repository; + + +import com.greenpoint.server.admin.model.Admin; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface AdminRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/admin/service/AdminService.java b/src/main/java/com/greenpoint/server/admin/service/AdminService.java new file mode 100644 index 0000000..4711ccb --- /dev/null +++ b/src/main/java/com/greenpoint/server/admin/service/AdminService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.admin.service; + +import org.springframework.stereotype.Service; + +@Service +public class AdminService { +} diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java new file mode 100644 index 0000000..3322929 --- /dev/null +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.customer.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java new file mode 100644 index 0000000..15b19fb --- /dev/null +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -0,0 +1,27 @@ +package com.greenpoint.server.customer.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.*; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java new file mode 100644 index 0000000..57eb7bb --- /dev/null +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.customer.repository; + + +import com.greenpoint.server.customer.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java new file mode 100644 index 0000000..3639a70 --- /dev/null +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.customer.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} diff --git a/src/main/java/com/greenpoint/server/history/controller/CustomerController.java b/src/main/java/com/greenpoint/server/history/controller/CustomerController.java new file mode 100644 index 0000000..7414b2c --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.history.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/history/model/Customer.java b/src/main/java/com/greenpoint/server/history/model/Customer.java new file mode 100644 index 0000000..f68965e --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/model/Customer.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.history.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java new file mode 100644 index 0000000..b67843a --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.history.repository; + + +import com.greenpoint.server.history.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/history/service/CustomerService.java b/src/main/java/com/greenpoint/server/history/service/CustomerService.java new file mode 100644 index 0000000..404e41e --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.history.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} diff --git a/src/main/java/com/greenpoint/server/level/controller/CustomerController.java b/src/main/java/com/greenpoint/server/level/controller/CustomerController.java new file mode 100644 index 0000000..d61f78f --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.level.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/level/model/Customer.java b/src/main/java/com/greenpoint/server/level/model/Customer.java new file mode 100644 index 0000000..05bf248 --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/model/Customer.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.level.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java new file mode 100644 index 0000000..bc5a96b --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.level.repository; + + +import com.greenpoint.server.level.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/level/service/CustomerService.java b/src/main/java/com/greenpoint/server/level/service/CustomerService.java new file mode 100644 index 0000000..7a134d8 --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.level.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} diff --git a/src/main/java/com/greenpoint/server/menu/controller/CustomerController.java b/src/main/java/com/greenpoint/server/menu/controller/CustomerController.java new file mode 100644 index 0000000..6fdfd98 --- /dev/null +++ b/src/main/java/com/greenpoint/server/menu/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.menu.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/menu/model/Customer.java b/src/main/java/com/greenpoint/server/menu/model/Customer.java new file mode 100644 index 0000000..1f2af52 --- /dev/null +++ b/src/main/java/com/greenpoint/server/menu/model/Customer.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.menu.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java new file mode 100644 index 0000000..1d0018b --- /dev/null +++ b/src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.menu.repository; + + +import com.greenpoint.server.menu.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/menu/service/CustomerService.java b/src/main/java/com/greenpoint/server/menu/service/CustomerService.java new file mode 100644 index 0000000..6d8b4b0 --- /dev/null +++ b/src/main/java/com/greenpoint/server/menu/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.menu.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} diff --git a/src/main/java/com/greenpoint/server/point/controller/CustomerController.java b/src/main/java/com/greenpoint/server/point/controller/CustomerController.java new file mode 100644 index 0000000..cc638de --- /dev/null +++ b/src/main/java/com/greenpoint/server/point/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.point.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/point/model/Customer.java b/src/main/java/com/greenpoint/server/point/model/Customer.java new file mode 100644 index 0000000..3c0fc52 --- /dev/null +++ b/src/main/java/com/greenpoint/server/point/model/Customer.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.point.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java new file mode 100644 index 0000000..b6de7cb --- /dev/null +++ b/src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.point.repository; + + +import com.greenpoint.server.point.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/point/service/CustomerService.java b/src/main/java/com/greenpoint/server/point/service/CustomerService.java new file mode 100644 index 0000000..efffddc --- /dev/null +++ b/src/main/java/com/greenpoint/server/point/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.point.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} diff --git a/src/main/java/com/greenpoint/server/store/controller/CustomerController.java b/src/main/java/com/greenpoint/server/store/controller/CustomerController.java new file mode 100644 index 0000000..338ee3e --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/controller/CustomerController.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.store.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/api") +public class CustomerController { + +} diff --git a/src/main/java/com/greenpoint/server/store/model/Customer.java b/src/main/java/com/greenpoint/server/store/model/Customer.java new file mode 100644 index 0000000..69f188d --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/model/Customer.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.store.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +public class Customer { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + +} diff --git a/src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java new file mode 100644 index 0000000..2a4a842 --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.store.repository; + + +import com.greenpoint.server.store.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface CustomerRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/store/service/CustomerService.java b/src/main/java/com/greenpoint/server/store/service/CustomerService.java new file mode 100644 index 0000000..0ff7262 --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/service/CustomerService.java @@ -0,0 +1,7 @@ +package com.greenpoint.server.store.service; + +import org.springframework.stereotype.Service; + +@Service +public class CustomerService { +} From d0b0b838969f359edebcfea740863827f5cf49d4 Mon Sep 17 00:00:00 2001 From: lukehongg Date: Thu, 26 Jan 2023 21:59:48 +0900 Subject: [PATCH 02/45] init --- .../greenpoint/server/admin/model/Admin.java | 3 +- .../greenpoint/server/common/BaseEntity.java | 36 +++++++++++++++++++ .../server/customer/model/Customer.java | 3 +- ...Controller.java => HistoryController.java} | 2 +- .../model/{Customer.java => History.java} | 5 +-- .../repository/CustomerRepository.java | 8 ----- .../history/repository/HistoryRepository.java | 8 +++++ ...stomerService.java => HistoryService.java} | 2 +- 8 files changed, 53 insertions(+), 14 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/common/BaseEntity.java rename src/main/java/com/greenpoint/server/history/controller/{CustomerController.java => HistoryController.java} (89%) rename src/main/java/com/greenpoint/server/history/model/{Customer.java => History.java} (78%) delete mode 100644 src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java create mode 100644 src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java rename src/main/java/com/greenpoint/server/history/service/{CustomerService.java => HistoryService.java} (77%) diff --git a/src/main/java/com/greenpoint/server/admin/model/Admin.java b/src/main/java/com/greenpoint/server/admin/model/Admin.java index 9de3855..aacd962 100644 --- a/src/main/java/com/greenpoint/server/admin/model/Admin.java +++ b/src/main/java/com/greenpoint/server/admin/model/Admin.java @@ -1,6 +1,7 @@ package com.greenpoint.server.admin.model; +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -20,7 +21,7 @@ @AllArgsConstructor @Where(clause = "deleted = false") @SQLDelete(sql = "UPDATE admin SET deleted = true Where id = ?") -public class Admin { +public class Admin extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/common/BaseEntity.java b/src/main/java/com/greenpoint/server/common/BaseEntity.java new file mode 100644 index 0000000..7ef0f09 --- /dev/null +++ b/src/main/java/com/greenpoint/server/common/BaseEntity.java @@ -0,0 +1,36 @@ +package com.greenpoint.server.common; + + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import org.springframework.data.annotation.CreatedDate; +import org.springframework.data.annotation.LastModifiedDate; +import org.springframework.data.jpa.domain.support.AuditingEntityListener; + +import javax.persistence.*; +import javax.persistence.MappedSuperclass; +import java.time.LocalDateTime; + + +@EntityListeners(AuditingEntityListener.class) +@MappedSuperclass +@NoArgsConstructor +@Getter +public abstract class BaseEntity { + @CreatedDate + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") + @Column(updatable = false) + private LocalDateTime created_at; + + @LastModifiedDate + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") + private LocalDateTime updated_at; + + private boolean deleted = Boolean.FALSE; + + public void deleteContent(){deleted = true;} + + +} diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 15b19fb..db57751 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -1,6 +1,7 @@ package com.greenpoint.server.customer.model; +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -17,7 +18,7 @@ @AllArgsConstructor @Where(clause = "deleted = false") @SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +public class Customer extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/history/controller/CustomerController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java similarity index 89% rename from src/main/java/com/greenpoint/server/history/controller/CustomerController.java rename to src/main/java/com/greenpoint/server/history/controller/HistoryController.java index 7414b2c..ffdc0f7 100644 --- a/src/main/java/com/greenpoint/server/history/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -7,6 +7,6 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api") -public class CustomerController { +public class HistoryController { } diff --git a/src/main/java/com/greenpoint/server/history/model/Customer.java b/src/main/java/com/greenpoint/server/history/model/History.java similarity index 78% rename from src/main/java/com/greenpoint/server/history/model/Customer.java rename to src/main/java/com/greenpoint/server/history/model/History.java index f68965e..c5dc6a5 100644 --- a/src/main/java/com/greenpoint/server/history/model/Customer.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -1,6 +1,7 @@ package com.greenpoint.server.history.model; +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,8 +20,8 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +@SQLDelete(sql = "UPDATE history SET deleted = true Where id = ?") +public class History extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java deleted file mode 100644 index b67843a..0000000 --- a/src/main/java/com/greenpoint/server/history/repository/CustomerRepository.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.greenpoint.server.history.repository; - - -import com.greenpoint.server.history.model.Customer; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface CustomerRepository extends JpaRepository { -} diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java new file mode 100644 index 0000000..1ac26c3 --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.history.repository; + + +import com.greenpoint.server.history.model.History; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface HistoryRepository extends JpaRepository { +} diff --git a/src/main/java/com/greenpoint/server/history/service/CustomerService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java similarity index 77% rename from src/main/java/com/greenpoint/server/history/service/CustomerService.java rename to src/main/java/com/greenpoint/server/history/service/HistoryService.java index 404e41e..14c8b42 100644 --- a/src/main/java/com/greenpoint/server/history/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -3,5 +3,5 @@ import org.springframework.stereotype.Service; @Service -public class CustomerService { +public class HistoryService { } From cd69ab5525424b25c96af29ff52da2ee73adbfc0 Mon Sep 17 00:00:00 2001 From: lukehongg Date: Thu, 26 Jan 2023 22:04:26 +0900 Subject: [PATCH 03/45] init --- .../server/exception/GlobalException.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/main/java/com/greenpoint/server/exception/GlobalException.java diff --git a/src/main/java/com/greenpoint/server/exception/GlobalException.java b/src/main/java/com/greenpoint/server/exception/GlobalException.java new file mode 100644 index 0000000..16a5061 --- /dev/null +++ b/src/main/java/com/greenpoint/server/exception/GlobalException.java @@ -0,0 +1,18 @@ +package com.greenpoint.server.exception; + + +import org.springframework.http.HttpStatus; + +public class GlobalException extends RuntimeException { + + private final HttpStatus httpStatus; + + + public GlobalException(String message, HttpStatus httpStatus) { + super(message); + this.httpStatus = httpStatus; + } + public HttpStatus getHttpStatus() { + return httpStatus; + } +} From c0a687efa8b17ece2c908569de09ef19129b0b7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Thu, 26 Jan 2023 22:27:30 +0900 Subject: [PATCH 04/45] init (#2) --- .../com/greenpoint/server/admin/model/Admin.java | 1 + .../greenpoint/server/customer/model/Customer.java | 4 ++++ .../greenpoint/server/history/model/History.java | 13 +++++++++---- src/main/resources/application.properties | 5 ++++- 4 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/greenpoint/server/admin/model/Admin.java b/src/main/java/com/greenpoint/server/admin/model/Admin.java index aacd962..fb339fe 100644 --- a/src/main/java/com/greenpoint/server/admin/model/Admin.java +++ b/src/main/java/com/greenpoint/server/admin/model/Admin.java @@ -26,6 +26,7 @@ public class Admin extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String name; } diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index db57751..ca0a899 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -23,6 +23,10 @@ public class Customer extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String name; + private String img; + private int point; + private int totalPoint; } diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index c5dc6a5..76247dd 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -2,6 +2,7 @@ import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.customer.model.Customer; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -9,10 +10,7 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity @Getter @@ -27,5 +25,12 @@ public class History extends BaseEntity { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Customer customer; + + private Long storeId; + private String historyContent; + private int savedPoint; + private int usedPoint; } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index beb5efd..ab950f8 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -4,4 +4,7 @@ spring.datasource.url=jdbc:mysql://walab.handong.edu:3306/23_Camp5 spring.datasource.username=23_Camp5 spring.datasource.password=CIkTVPOVMrQwhxr8 -spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver \ No newline at end of file +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.jpa.generate-ddl=true +spring.jpa.properties.hibernate.globally_quoted_identifiers=true +spring.jackson.serialization.fail-on-empty-beans=false \ No newline at end of file From 983003d41307c07ba40849517ce3a6bc1d33ad0f Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Thu, 26 Jan 2023 22:31:21 +0900 Subject: [PATCH 05/45] Temp2 (#3) * initial setting * initial setting --- .../{CustomerController.java => LevelController.java} | 2 +- .../server/level/model/{Customer.java => Level.java} | 6 +++--- .../{CustomerRepository.java => LevelRepository.java} | 2 +- .../service/{CustomerService.java => LevelService.java} | 2 +- .../{CustomerController.java => MenuController.java} | 2 +- .../server/menu/model/{Customer.java => Menu.java} | 6 +++--- .../{CustomerRepository.java => MenuRepository.java} | 2 +- .../menu/service/{CustomerService.java => MenuService.java} | 2 +- .../{CustomerController.java => pointController.java} | 2 +- .../server/point/model/{Customer.java => Point.java} | 6 +++--- .../{CustomerRepository.java => PointRepository.java} | 2 +- .../service/{CustomerService.java => PointService.java} | 2 +- .../{CustomerController.java => StoreController.java} | 2 +- .../server/store/model/{Customer.java => Store.java} | 5 +++-- .../{CustomerRepository.java => StoreRepository.java} | 2 +- .../service/{CustomerService.java => StoreService.java} | 2 +- 16 files changed, 24 insertions(+), 23 deletions(-) rename src/main/java/com/greenpoint/server/level/controller/{CustomerController.java => LevelController.java} (89%) rename src/main/java/com/greenpoint/server/level/model/{Customer.java => Level.java} (79%) rename src/main/java/com/greenpoint/server/level/repository/{CustomerRepository.java => LevelRepository.java} (68%) rename src/main/java/com/greenpoint/server/level/service/{CustomerService.java => LevelService.java} (77%) rename src/main/java/com/greenpoint/server/menu/controller/{CustomerController.java => MenuController.java} (89%) rename src/main/java/com/greenpoint/server/menu/model/{Customer.java => Menu.java} (79%) rename src/main/java/com/greenpoint/server/menu/repository/{CustomerRepository.java => MenuRepository.java} (68%) rename src/main/java/com/greenpoint/server/menu/service/{CustomerService.java => MenuService.java} (77%) rename src/main/java/com/greenpoint/server/point/controller/{CustomerController.java => pointController.java} (89%) rename src/main/java/com/greenpoint/server/point/model/{Customer.java => Point.java} (79%) rename src/main/java/com/greenpoint/server/point/repository/{CustomerRepository.java => PointRepository.java} (68%) rename src/main/java/com/greenpoint/server/point/service/{CustomerService.java => PointService.java} (77%) rename src/main/java/com/greenpoint/server/store/controller/{CustomerController.java => StoreController.java} (89%) rename src/main/java/com/greenpoint/server/store/model/{Customer.java => Store.java} (79%) rename src/main/java/com/greenpoint/server/store/repository/{CustomerRepository.java => StoreRepository.java} (68%) rename src/main/java/com/greenpoint/server/store/service/{CustomerService.java => StoreService.java} (77%) diff --git a/src/main/java/com/greenpoint/server/level/controller/CustomerController.java b/src/main/java/com/greenpoint/server/level/controller/LevelController.java similarity index 89% rename from src/main/java/com/greenpoint/server/level/controller/CustomerController.java rename to src/main/java/com/greenpoint/server/level/controller/LevelController.java index d61f78f..38ba87b 100644 --- a/src/main/java/com/greenpoint/server/level/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/level/controller/LevelController.java @@ -7,6 +7,6 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api") -public class CustomerController { +public class LevelController { } diff --git a/src/main/java/com/greenpoint/server/level/model/Customer.java b/src/main/java/com/greenpoint/server/level/model/Level.java similarity index 79% rename from src/main/java/com/greenpoint/server/level/model/Customer.java rename to src/main/java/com/greenpoint/server/level/model/Level.java index 05bf248..d58d8f6 100644 --- a/src/main/java/com/greenpoint/server/level/model/Customer.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -1,6 +1,6 @@ package com.greenpoint.server.level.model; - +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,8 +19,8 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +@SQLDelete(sql = "UPDATE level SET deleted = true Where id = ?") +public class Level extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java similarity index 68% rename from src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java rename to src/main/java/com/greenpoint/server/level/repository/LevelRepository.java index bc5a96b..b6b94e0 100644 --- a/src/main/java/com/greenpoint/server/level/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java @@ -4,5 +4,5 @@ import com.greenpoint.server.level.model.Customer; import org.springframework.data.jpa.repository.JpaRepository; -public interface CustomerRepository extends JpaRepository { +public interface LevelRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/level/service/CustomerService.java b/src/main/java/com/greenpoint/server/level/service/LevelService.java similarity index 77% rename from src/main/java/com/greenpoint/server/level/service/CustomerService.java rename to src/main/java/com/greenpoint/server/level/service/LevelService.java index 7a134d8..11263d3 100644 --- a/src/main/java/com/greenpoint/server/level/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/level/service/LevelService.java @@ -3,5 +3,5 @@ import org.springframework.stereotype.Service; @Service -public class CustomerService { +public class LevelService { } diff --git a/src/main/java/com/greenpoint/server/menu/controller/CustomerController.java b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java similarity index 89% rename from src/main/java/com/greenpoint/server/menu/controller/CustomerController.java rename to src/main/java/com/greenpoint/server/menu/controller/MenuController.java index 6fdfd98..089f801 100644 --- a/src/main/java/com/greenpoint/server/menu/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java @@ -7,6 +7,6 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api") -public class CustomerController { +public class MenuController { } diff --git a/src/main/java/com/greenpoint/server/menu/model/Customer.java b/src/main/java/com/greenpoint/server/menu/model/Menu.java similarity index 79% rename from src/main/java/com/greenpoint/server/menu/model/Customer.java rename to src/main/java/com/greenpoint/server/menu/model/Menu.java index 1f2af52..a251c91 100644 --- a/src/main/java/com/greenpoint/server/menu/model/Customer.java +++ b/src/main/java/com/greenpoint/server/menu/model/Menu.java @@ -1,6 +1,6 @@ package com.greenpoint.server.menu.model; - +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,8 +19,8 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +@SQLDelete(sql = "UPDATE menu SET deleted = true Where id = ?") +public class Menu extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java similarity index 68% rename from src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java rename to src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java index 1d0018b..79add14 100644 --- a/src/main/java/com/greenpoint/server/menu/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java @@ -4,5 +4,5 @@ import com.greenpoint.server.menu.model.Customer; import org.springframework.data.jpa.repository.JpaRepository; -public interface CustomerRepository extends JpaRepository { +public interface MenuRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/menu/service/CustomerService.java b/src/main/java/com/greenpoint/server/menu/service/MenuService.java similarity index 77% rename from src/main/java/com/greenpoint/server/menu/service/CustomerService.java rename to src/main/java/com/greenpoint/server/menu/service/MenuService.java index 6d8b4b0..232cbd3 100644 --- a/src/main/java/com/greenpoint/server/menu/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/menu/service/MenuService.java @@ -3,5 +3,5 @@ import org.springframework.stereotype.Service; @Service -public class CustomerService { +public class MenuService { } diff --git a/src/main/java/com/greenpoint/server/point/controller/CustomerController.java b/src/main/java/com/greenpoint/server/point/controller/pointController.java similarity index 89% rename from src/main/java/com/greenpoint/server/point/controller/CustomerController.java rename to src/main/java/com/greenpoint/server/point/controller/pointController.java index cc638de..26e2171 100644 --- a/src/main/java/com/greenpoint/server/point/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/point/controller/pointController.java @@ -7,6 +7,6 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api") -public class CustomerController { +public class PointController { } diff --git a/src/main/java/com/greenpoint/server/point/model/Customer.java b/src/main/java/com/greenpoint/server/point/model/Point.java similarity index 79% rename from src/main/java/com/greenpoint/server/point/model/Customer.java rename to src/main/java/com/greenpoint/server/point/model/Point.java index 3c0fc52..64da8d7 100644 --- a/src/main/java/com/greenpoint/server/point/model/Customer.java +++ b/src/main/java/com/greenpoint/server/point/model/Point.java @@ -1,6 +1,6 @@ package com.greenpoint.server.point.model; - +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,8 +19,8 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +@SQLDelete(sql = "UPDATE point SET deleted = true Where id = ?") +public class Point extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java similarity index 68% rename from src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java rename to src/main/java/com/greenpoint/server/point/repository/PointRepository.java index b6de7cb..c6e441b 100644 --- a/src/main/java/com/greenpoint/server/point/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java @@ -4,5 +4,5 @@ import com.greenpoint.server.point.model.Customer; import org.springframework.data.jpa.repository.JpaRepository; -public interface CustomerRepository extends JpaRepository { +public interface PointRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/point/service/CustomerService.java b/src/main/java/com/greenpoint/server/point/service/PointService.java similarity index 77% rename from src/main/java/com/greenpoint/server/point/service/CustomerService.java rename to src/main/java/com/greenpoint/server/point/service/PointService.java index efffddc..e8f1750 100644 --- a/src/main/java/com/greenpoint/server/point/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/point/service/PointService.java @@ -3,5 +3,5 @@ import org.springframework.stereotype.Service; @Service -public class CustomerService { +public class PointService { } diff --git a/src/main/java/com/greenpoint/server/store/controller/CustomerController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java similarity index 89% rename from src/main/java/com/greenpoint/server/store/controller/CustomerController.java rename to src/main/java/com/greenpoint/server/store/controller/StoreController.java index 338ee3e..95906c3 100644 --- a/src/main/java/com/greenpoint/server/store/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -7,6 +7,6 @@ @RestController @RequiredArgsConstructor @RequestMapping("/api") -public class CustomerController { +public class StoreController { } diff --git a/src/main/java/com/greenpoint/server/store/model/Customer.java b/src/main/java/com/greenpoint/server/store/model/Store.java similarity index 79% rename from src/main/java/com/greenpoint/server/store/model/Customer.java rename to src/main/java/com/greenpoint/server/store/model/Store.java index 69f188d..d00b708 100644 --- a/src/main/java/com/greenpoint/server/store/model/Customer.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -1,6 +1,7 @@ package com.greenpoint.server.store.model; +import com.greenpoint.server.common.BaseEntity; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -19,8 +20,8 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") -public class Customer { +@SQLDelete(sql = "UPDATE store SET deleted = true Where id = ?") +public class Store extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) diff --git a/src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java similarity index 68% rename from src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java rename to src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 2a4a842..28cbe15 100644 --- a/src/main/java/com/greenpoint/server/store/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -4,5 +4,5 @@ import com.greenpoint.server.store.model.Customer; import org.springframework.data.jpa.repository.JpaRepository; -public interface CustomerRepository extends JpaRepository { +public interface StoreRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/store/service/CustomerService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java similarity index 77% rename from src/main/java/com/greenpoint/server/store/service/CustomerService.java rename to src/main/java/com/greenpoint/server/store/service/StoreService.java index 0ff7262..caf03dd 100644 --- a/src/main/java/com/greenpoint/server/store/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -3,5 +3,5 @@ import org.springframework.stereotype.Service; @Service -public class CustomerService { +public class StoreService { } From b3670fc31e0d4ea8c64620819bce82ee3c16358c Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Thu, 26 Jan 2023 23:59:09 +0900 Subject: [PATCH 06/45] Temp2 (#4) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * initial setting * initial setting * entity 일부 생성 --- .../greenpoint/server/level/model/Level.java | 4 ++++ .../com/greenpoint/server/menu/model/Menu.java | 5 +++++ .../greenpoint/server/point/model/Point.java | 5 +++++ .../greenpoint/server/store/model/Store.java | 17 +++++++++++++++++ 4 files changed, 31 insertions(+) diff --git a/src/main/java/com/greenpoint/server/level/model/Level.java b/src/main/java/com/greenpoint/server/level/model/Level.java index d58d8f6..e0b65f4 100644 --- a/src/main/java/com/greenpoint/server/level/model/Level.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -26,5 +26,9 @@ public class Level extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Customer customer; + + private String name; } diff --git a/src/main/java/com/greenpoint/server/menu/model/Menu.java b/src/main/java/com/greenpoint/server/menu/model/Menu.java index a251c91..8cb2d6d 100644 --- a/src/main/java/com/greenpoint/server/menu/model/Menu.java +++ b/src/main/java/com/greenpoint/server/menu/model/Menu.java @@ -26,5 +26,10 @@ public class Menu extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Store store; + private String name; + private String img; + private int price; } diff --git a/src/main/java/com/greenpoint/server/point/model/Point.java b/src/main/java/com/greenpoint/server/point/model/Point.java index 64da8d7..3da4199 100644 --- a/src/main/java/com/greenpoint/server/point/model/Point.java +++ b/src/main/java/com/greenpoint/server/point/model/Point.java @@ -26,5 +26,10 @@ public class Point extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Store store; + + private String name; + private int weight; } diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index d00b708..addb427 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -26,6 +26,23 @@ public class Store extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String userId; + private String password; + + @OneToMany(mappedBy = "history", cascade = CascadeType.PERSIST, orphanRemoval = true) + private List historyList = new ArrayList<>(); + + @OneToMany(mappedBy = "point", cascade = CascadeType.PERSIST, orphanRemoval = true) + private List pointList = new ArrayList<>(); + + @OneToMany(mappedBy = "menu", cascade = CascadeType.PERSIST, orphanRemoval = true) + private List menuList = new ArrayList<>(); + + private String category; + private String name; + private String img; + private double latitude; + private double longitude; } From 937c35b96ca784ede8b3438687fb26f16ce56983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 27 Jan 2023 01:44:05 +0900 Subject: [PATCH 07/45] Init e (#5) * initE * initE * Table setting --- .../greenpoint/server/admin/model/Admin.java | 2 ++ .../server/customer/model/Customer.java | 21 ++++++++++++---- .../server/history/model/History.java | 10 ++++---- .../server/history/model/HistoryRequest.java | 12 ++++++++++ .../greenpoint/server/level/model/Level.java | 11 +++------ .../level/repository/LevelRepository.java | 4 ++-- .../greenpoint/server/menu/model/Menu.java | 13 +++++----- .../menu/repository/MenuRepository.java | 4 ++-- ...ntController.java => PointController.java} | 0 .../greenpoint/server/point/model/Point.java | 12 ++++------ .../point/repository/PointRepository.java | 4 ++-- .../store/controller/StoreController.java | 1 - .../greenpoint/server/store/model/Store.java | 24 +++++++------------ .../store/repository/StoreRepository.java | 5 ++-- 14 files changed, 67 insertions(+), 56 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/history/model/HistoryRequest.java rename src/main/java/com/greenpoint/server/point/controller/{pointController.java => PointController.java} (100%) diff --git a/src/main/java/com/greenpoint/server/admin/model/Admin.java b/src/main/java/com/greenpoint/server/admin/model/Admin.java index fb339fe..bd29be1 100644 --- a/src/main/java/com/greenpoint/server/admin/model/Admin.java +++ b/src/main/java/com/greenpoint/server/admin/model/Admin.java @@ -27,6 +27,8 @@ public class Admin extends BaseEntity { @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; + private String adminID; + private String password; } diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index ca0a899..fd0970b 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -2,6 +2,7 @@ import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.level.model.Level; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -17,14 +18,26 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where kakaoToken = ?") public class Customer extends BaseEntity { +// @Id +// @GeneratedValue(strategy = GenerationType.IDENTITY) +// private Long id; + @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + @Column(unique = true) + private String kakaoToken; private String name; - private String img; + + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Level level; + + private String contact; + private String image; + private String nickname; + private double latitude; + private double longitude; private int point; private int totalPoint; diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index 76247dd..dfaa5d3 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -3,6 +3,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.store.model.Store; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -24,12 +25,13 @@ public class History extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private String kakaoToken; +// @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) +// private Customer customer; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - private Customer customer; - - private Long storeId; - private String historyContent; + private Store store; + private int cost; private int savedPoint; private int usedPoint; diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java b/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java new file mode 100644 index 0000000..1114792 --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java @@ -0,0 +1,12 @@ +package com.greenpoint.server.history.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Setter +@Getter +@NoArgsConstructor +public class HistoryRequest { + private Long storeId; +} diff --git a/src/main/java/com/greenpoint/server/level/model/Level.java b/src/main/java/com/greenpoint/server/level/model/Level.java index e0b65f4..51329f3 100644 --- a/src/main/java/com/greenpoint/server/level/model/Level.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -1,6 +1,7 @@ package com.greenpoint.server.level.model; import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.customer.model.Customer; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -8,10 +9,7 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity @Getter @@ -25,10 +23,7 @@ public class Level extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - - @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - private Customer customer; - private String name; + private String image; } diff --git a/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java index b6b94e0..42c766e 100644 --- a/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java +++ b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java @@ -1,8 +1,8 @@ package com.greenpoint.server.level.repository; -import com.greenpoint.server.level.model.Customer; +import com.greenpoint.server.level.model.Level; import org.springframework.data.jpa.repository.JpaRepository; -public interface LevelRepository extends JpaRepository { +public interface LevelRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/menu/model/Menu.java b/src/main/java/com/greenpoint/server/menu/model/Menu.java index 8cb2d6d..68c91df 100644 --- a/src/main/java/com/greenpoint/server/menu/model/Menu.java +++ b/src/main/java/com/greenpoint/server/menu/model/Menu.java @@ -1,6 +1,7 @@ package com.greenpoint.server.menu.model; import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.store.model.Store; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -8,10 +9,7 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity @Getter @@ -26,10 +24,11 @@ public class Menu extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - private Store store; +// @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) +// private Store store; + private Long storeId; private String name; - private String img; + private String image; private int price; } diff --git a/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java index 79add14..1030b61 100644 --- a/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java +++ b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java @@ -1,8 +1,8 @@ package com.greenpoint.server.menu.repository; -import com.greenpoint.server.menu.model.Customer; +import com.greenpoint.server.menu.model.Menu; import org.springframework.data.jpa.repository.JpaRepository; -public interface MenuRepository extends JpaRepository { +public interface MenuRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/point/controller/pointController.java b/src/main/java/com/greenpoint/server/point/controller/PointController.java similarity index 100% rename from src/main/java/com/greenpoint/server/point/controller/pointController.java rename to src/main/java/com/greenpoint/server/point/controller/PointController.java diff --git a/src/main/java/com/greenpoint/server/point/model/Point.java b/src/main/java/com/greenpoint/server/point/model/Point.java index 3da4199..9716314 100644 --- a/src/main/java/com/greenpoint/server/point/model/Point.java +++ b/src/main/java/com/greenpoint/server/point/model/Point.java @@ -1,6 +1,7 @@ package com.greenpoint.server.point.model; import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.store.model.Store; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -8,10 +9,7 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; @Entity @Getter @@ -26,9 +24,9 @@ public class Point extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - private Store store; - +// @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) +// private Store store; + private Long storeId; private String name; private int weight; diff --git a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java index c6e441b..a66451b 100644 --- a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java +++ b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java @@ -1,8 +1,8 @@ package com.greenpoint.server.point.repository; -import com.greenpoint.server.point.model.Customer; +import com.greenpoint.server.point.model.Point; import org.springframework.data.jpa.repository.JpaRepository; -public interface PointRepository extends JpaRepository { +public interface PointRepository extends JpaRepository { } diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index 95906c3..e87af01 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -8,5 +8,4 @@ @RequiredArgsConstructor @RequestMapping("/api") public class StoreController { - } diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index addb427..fca2a7a 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -2,6 +2,9 @@ import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.history.model.History; +import com.greenpoint.server.menu.model.Menu; +import com.greenpoint.server.point.model.Point; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -9,10 +12,9 @@ import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; @Entity @Getter @@ -26,21 +28,11 @@ public class Store extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private String userId; + private String storeID; private String password; - - @OneToMany(mappedBy = "history", cascade = CascadeType.PERSIST, orphanRemoval = true) - private List historyList = new ArrayList<>(); - - @OneToMany(mappedBy = "point", cascade = CascadeType.PERSIST, orphanRemoval = true) - private List pointList = new ArrayList<>(); - - @OneToMany(mappedBy = "menu", cascade = CascadeType.PERSIST, orphanRemoval = true) - private List menuList = new ArrayList<>(); - private String category; private String name; - private String img; + private String image; private double latitude; private double longitude; diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 28cbe15..3d1bcfd 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -1,8 +1,7 @@ package com.greenpoint.server.store.repository; - -import com.greenpoint.server.store.model.Customer; +import com.greenpoint.server.store.model.Store; import org.springframework.data.jpa.repository.JpaRepository; -public interface StoreRepository extends JpaRepository { +public interface StoreRepository extends JpaRepository { } From 8b2c5fb6e9e2fdc23e52daa11cc621ce481ab834 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 13:18:21 +0900 Subject: [PATCH 08/45] Feat/#6 (#7) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * initial setting * initial setting * entity 일부 생성 * 로그인 api 구현중 --- build.gradle | 4 + .../auth/controller/UserController.java | 24 ++++ .../server/auth/model/KakaoProfile.java | 15 +++ .../server/auth/model/OauthToken.java | 16 +++ .../auth/repository/UserRepository.java | 10 ++ .../server/auth/service/UserService.java | 123 ++++++++++++++++++ .../server/customer/model/Customer.java | 20 +-- src/main/resources/application.yml | 27 ++++ 8 files changed, 226 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/auth/controller/UserController.java create mode 100644 src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java create mode 100644 src/main/java/com/greenpoint/server/auth/model/OauthToken.java create mode 100644 src/main/java/com/greenpoint/server/auth/repository/UserRepository.java create mode 100644 src/main/java/com/greenpoint/server/auth/service/UserService.java create mode 100644 src/main/resources/application.yml diff --git a/build.gradle b/build.gradle index f5bd72d..c74cfbb 100644 --- a/build.gradle +++ b/build.gradle @@ -21,6 +21,10 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3' + implementation 'com.auth0:java-jwt:4.2.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java new file mode 100644 index 0000000..681c49c --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -0,0 +1,24 @@ +package com.greenpoint.server.auth.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/api") +public class UserController { + @Autowired + private UserService userService; + + @GetMapping("/oauth/token") + public OauthToken getLogin(@RequestParam("code") String code) { + + OauthToken oauthToken = userService.getAccessToken(code); + + return oauthToken; + } + +} +} diff --git a/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java b/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java new file mode 100644 index 0000000..1a48f6d --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java @@ -0,0 +1,15 @@ +package com.greenpoint.server.auth.model; + +import lombok.Data; + +public class KakaoProfile { + private Long id; + private Properties properties; + + @Data + public class Properties { + public String nickname; + public String profile_image; // 이미지 경로 필드1 + } + +} diff --git a/src/main/java/com/greenpoint/server/auth/model/OauthToken.java b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java new file mode 100644 index 0000000..fc2f356 --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java @@ -0,0 +1,16 @@ +package com.greenpoint.server.auth.model; + + +import lombok.Data; + +@Data //(2) +public class OauthToken { //(1) + private String access_token; + private String token_type; + private String refresh_token; + private int expires_in; + private String scope; + private int refresh_token_expires_in; + +}} + diff --git a/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java new file mode 100644 index 0000000..208995e --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java @@ -0,0 +1,10 @@ +package com.greenpoint.server.auth.repository; + +import com.greenpoint.server.customer.model.Customer; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface UserRepository extends JpaRepository { + public Customer findByKakao_Token(String kakaoToken); +// public Customer findByUserCode(String userCode); +} + diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java new file mode 100644 index 0000000..068381f --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -0,0 +1,123 @@ +package com.greenpoint.server.auth.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.greenpoint.server.auth.model.KakaoProfile; +import com.greenpoint.server.auth.repository.UserRepository; +import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.repository.CustomerRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +@Service +public class UserService { + @Autowired + CustomerRepository customerRepository; + +// public OauthToken getAccessToken(String code) { +// RestTemplate rt = new RestTemplate(); +// +// HttpHeaders headers = new HttpHeaders(); +// headers.add("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); +// +// //(4) +// MultiValueMap params = new LinkedMultiValueMap<>(); +// params.add("grant_type", "authorization_code"); +// params.add("client_id", "{클라이언트 앱 키}"); +// params.add("redirect_uri", "{리다이렉트 uri}"); +// params.add("code", code); +// params.add("client_secret", "{시크릿 키}"); // 생략 가능! +// +// //(5) +// HttpEntity> kakaoTokenRequest = +// new HttpEntity<>(params, headers); +// +// //(6) +// ResponseEntity accessTokenResponse = rt.exchange( +// "https://kauth.kakao.com/oauth/token", +// HttpMethod.POST, +// kakaoTokenRequest, +// String.class +// ); +// +// //(7) +// ObjectMapper objectMapper = new ObjectMapper(); +// OauthToken oauthToken = null; +// try { +// oauthToken = objectMapper.readValue(accessTokenResponse.getBody(), OauthToken.class); +// } catch (JsonProcessingException e) { +// e.printStackTrace(); +// } +// +// return oauthToken; //(8) +// } + + public Customer saveUser(String token) { + + //(1) + Customer customer; + + KaKaoprofile profile = findProfile(token); + //(2) + Customer user = customerRepository.findByNickname(profile.getKakao_account().getEmail()); + + //(3) + if(user == null) { + user = User.builder() + .kakaoId(profile.getId()) + //(4) + .kakaoProfileImg(profile.getKakao_account().getProfile().getProfile_image_url()) + .kakaoNickname(profile.getKakao_account().getProfile().getNickname()) + .kakaoEmail(profile.getKakao_account().getEmail()) + //(5) + .userRole("ROLE_USER").build(); + + userRepository.save(user); + } + + return user; + } + + public KakaoProfile findProfile(String token) { + + //(1-2) + RestTemplate rt = new RestTemplate(); + + //(1-3) + HttpHeaders headers = new HttpHeaders(); + headers.add("Authorization", "Bearer " + token); //(1-4) + headers.add("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); + + //(1-5) + HttpEntity> kakaoProfileRequest = + new HttpEntity<>(headers); + + //(1-6) + // Http 요청 (POST 방식) 후, response 변수에 응답을 받음 + ResponseEntity kakaoProfileResponse = rt.exchange( + "https://kapi.kakao.com/v2/user/me", + HttpMethod.POST, + kakaoProfileRequest, + String.class + ); + + //(1-7) + ObjectMapper objectMapper = new ObjectMapper(); + KakaoProfile kakaoProfile = null; + try { + kakaoProfile = objectMapper.readValue(kakaoProfileResponse.getBody(), KakaoProfile.class); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + return kakaoProfile; + } + +} diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index fd0970b..ea4ff16 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -2,7 +2,6 @@ import com.greenpoint.server.common.BaseEntity; -import com.greenpoint.server.level.model.Level; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -18,7 +17,7 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where kakaoToken = ?") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") public class Customer extends BaseEntity { // @Id @@ -26,20 +25,15 @@ public class Customer extends BaseEntity { // private Long id; @Id - @Column(unique = true) - private String kakaoToken; + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; private String name; - - @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) - private Level level; - - private String contact; - private String image; - private String nickname; - private double latitude; - private double longitude; + private String img; private int point; private int totalPoint; + public void insertUserToken(String token){ + this.kakao_token = token; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..d9a7e92 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,27 @@ +#spring: +# security: +# oauth2: +# client: +# registration: +# kakao: +# client-id: d83c4df2ae52b5f2a42c9b5f776e4178 +# redirect-uri: localhost:8080/main +# client-authentication-method: POST +# client-secret: Qq1yGZKo245VNijN1h17EwjABCk5ZpzQ +# authorization-grant-type: authorization_code +# scope: +# - profile_nickname +# - profile_image +# provider: +# kakao: +# authorization-uri: https://kauth.kakao.com/oauth/authorize +# token-uri: https://kauth.kakao.com/oauth/token +# user-info-uri: https://kapi.kakao.com/v2/user/me +# user-name-attribute: id +#jwt: +# token: +# secret-key: Qq1yGZKo245VNijN1h17EwjABCk5ZpzQ +# access-token: +# expire-length: 1800000 +# refresh-token: +# expire-length: 1209600000 \ No newline at end of file From bbd9f9ff6a8fbed16da837a70ab6776c7095e3ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 27 Jan 2023 13:23:50 +0900 Subject: [PATCH 09/45] Init e (#8) * initE * initE * Table setting * ,, --- .../server/customer/model/Customer.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index ea4ff16..0f52c4e 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -2,6 +2,7 @@ import com.greenpoint.server.common.BaseEntity; +import com.greenpoint.server.level.model.Level; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -17,7 +18,7 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where kakaoToken = ?") public class Customer extends BaseEntity { // @Id @@ -25,10 +26,18 @@ public class Customer extends BaseEntity { // private Long id; @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Long id; + @Column(unique = true) + private String kakaoToken; private String name; - private String img; + + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private Level level; + + private String contact; + private String image; + private String nickname; + private double latitude; + private double longitude; private int point; private int totalPoint; @@ -36,4 +45,5 @@ public void insertUserToken(String token){ this.kakao_token = token; } + } From e6ac7851b1768436404268892d5e19ae1da005bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 27 Jan 2023 13:26:32 +0900 Subject: [PATCH 10/45] #7 (#9) --- .../server/customer/model/Customer.java | 12 ++++++- .../customer/service/CustomerService.java | 10 ++++++ .../server/exception/GlobalException.java | 1 + .../history/controller/HistoryController.java | 33 +++++++++++++++++-- .../server/history/model/History.java | 24 +++++++++----- .../server/history/model/HistoryRequest.java | 8 ++++- .../server/history/model/HistoryResponse.java | 33 +++++++++++++++++++ .../history/service/HistoryService.java | 23 +++++++++++++ .../greenpoint/server/store/model/Store.java | 2 +- .../server/store/service/StoreService.java | 15 +++++++++ 10 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/history/model/HistoryResponse.java diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 0f52c4e..1817640 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -42,7 +42,17 @@ public class Customer extends BaseEntity { private int totalPoint; public void insertUserToken(String token){ - this.kakao_token = token; + this.kakaoToken = token; + } + + + public void addpoint(int savedPoint) { + this.point = this.point + savedPoint; + this.totalPoint = this.totalPoint + savedPoint; + } + + public void usepoint(int usedPoint) { + this.point = this.point - usedPoint; } diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java index 3639a70..fd61b44 100644 --- a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -1,7 +1,17 @@ package com.greenpoint.server.customer.service; +import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.repository.CustomerRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class CustomerService { + + @Autowired + private CustomerRepository customerRepository; + public Customer findById(Long customerId) { + Customer customer = customerRepository.findById(customerId).get(); + return customer; + } } diff --git a/src/main/java/com/greenpoint/server/exception/GlobalException.java b/src/main/java/com/greenpoint/server/exception/GlobalException.java index 16a5061..592995d 100644 --- a/src/main/java/com/greenpoint/server/exception/GlobalException.java +++ b/src/main/java/com/greenpoint/server/exception/GlobalException.java @@ -1,6 +1,7 @@ package com.greenpoint.server.exception; +import lombok.NoArgsConstructor; import org.springframework.http.HttpStatus; public class GlobalException extends RuntimeException { diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index ffdc0f7..88ba476 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -1,12 +1,41 @@ package com.greenpoint.server.history.controller; +import com.greenpoint.server.history.model.History; +import com.greenpoint.server.history.model.HistoryRequest; +import com.greenpoint.server.history.model.HistoryResponse; +import com.greenpoint.server.history.service.HistoryService; +import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.service.StoreService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @RestController @RequiredArgsConstructor @RequestMapping("/api") public class HistoryController { + @Autowired + private HistoryService historyService; + @Autowired + private StoreService storeService; + + + @GetMapping(value = "/history/{token}") + public ResponseEntity> findAllHistoryByCustomer(){ + + + } + + + @PostMapping(value="/history") + public ResponseEntity addHistory(@RequestBody HistoryRequest request){ + Store store = storeService.findById(request.getStoreId()); + Long res = historyService.create(History.from(store, request)); + return ResponseEntity.ok(res); + } + } diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index dfaa5d3..5575f35 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -4,18 +4,16 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.store.model.Store; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; import javax.persistence.*; +import java.time.LocalDateTime; @Entity @Getter -@Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @@ -25,9 +23,7 @@ public class History extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private String kakaoToken; -// @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) -// private Customer customer; + private Long customerId; @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private Store store; @@ -35,4 +31,16 @@ public class History extends BaseEntity { private int savedPoint; private int usedPoint; + + public static History from(Store store, HistoryRequest request){ + return History.builder() + .customerId(request.getCustomerId()) + .store(store) + .cost(request.getCost()) + .savedPoint(request.getSavedPoint()) + .usedPoint(request.getUsedPoint()) + .build(); + } + + } diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java b/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java index 1114792..6487b6e 100644 --- a/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java +++ b/src/main/java/com/greenpoint/server/history/model/HistoryRequest.java @@ -1,12 +1,18 @@ package com.greenpoint.server.history.model; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; -@Setter + @Getter @NoArgsConstructor +@AllArgsConstructor public class HistoryRequest { + private Long customerId; private Long storeId; + private int cost; + private int savedPoint; + private int usedPoint; } diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java new file mode 100644 index 0000000..715d705 --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java @@ -0,0 +1,33 @@ +package com.greenpoint.server.history.model; + +import com.greenpoint.server.store.model.Store; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +import javax.persistence.CascadeType; +import javax.persistence.FetchType; +import javax.persistence.ManyToOne; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HistoryResponse { + + private String storeName; + private int savedPoint; + private int usedPoint; + private int currentPoint; + + public HistoryResponse from(History history){ + return HistoryResponse.builder() + .storeName(history.getStore().getName()) + .savedPoint(history.getSavedPoint()) + .usedPoint(history.getUsedPoint()) + .currentPoint(history.) + .build(); + } + +} diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 14c8b42..0b7c02e 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -1,7 +1,30 @@ package com.greenpoint.server.history.service; +import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.service.CustomerService; +import com.greenpoint.server.history.model.History; +import com.greenpoint.server.history.repository.HistoryRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class HistoryService { + + @Autowired + private HistoryRepository historyRepository; + + @Autowired + private CustomerService customerService; + + @Transactional + public Long create(History history){ + History res = historyRepository.save(history); + Customer customer = customerService.findById(history.getCustomerId()); + customer.addpoint(history.getSavedPoint()); + customer.usepoint(history.getUsedPoint()); + return res.getId(); + } + + } diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index fca2a7a..87a523f 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -28,7 +28,7 @@ public class Store extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; - private String storeID; + private String loginID; private String password; private String category; private String name; diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index caf03dd..0e4602a 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -1,7 +1,22 @@ package com.greenpoint.server.store.service; +import com.greenpoint.server.exception.GlobalException; +import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.repository.StoreRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class StoreService { + + @Autowired + private StoreRepository storeRepository; + + + @Transactional(readOnly = true) + public Store findById(Long storeId) { + Store ret = storeRepository.findById(storeId).get(); + return ret; + } } From 0b05e5107d8f1ad9a4a134f82b8009b734203d53 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 14:07:41 +0900 Subject: [PATCH 11/45] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20API=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=20(#11)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/controller/UserController.java | 16 +++++++--- .../server/auth/model/KakaoProfile.java | 4 +++ .../server/auth/model/OauthToken.java | 32 +++++++++---------- .../auth/repository/UserRepository.java | 4 +-- .../server/auth/response/LoginResponse.java | 17 ++++++++++ .../server/auth/service/UserService.java | 28 ++++++++-------- .../server/customer/model/Customer.java | 8 +++++ .../repository/CustomerRepository.java | 2 ++ .../history/controller/HistoryController.java | 10 +++--- .../server/history/model/HistoryResponse.java | 16 +++++----- 10 files changed, 86 insertions(+), 51 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/auth/response/LoginResponse.java diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index 681c49c..8a2b823 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -1,6 +1,10 @@ package com.greenpoint.server.auth.controller; +import com.greenpoint.server.auth.response.LoginResponse; +import com.greenpoint.server.auth.service.UserService; +import com.greenpoint.server.customer.model.Customer; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -12,13 +16,15 @@ public class UserController { @Autowired private UserService userService; - @GetMapping("/oauth/token") - public OauthToken getLogin(@RequestParam("code") String code) { + @GetMapping("/login") + public ResponseEntity getLogin(@RequestParam("code") String code) { - OauthToken oauthToken = userService.getAccessToken(code); + Customer user; + user = userService.saveUser(code); + LoginResponse loginResponse = new LoginResponse(user.getKakaoToken(), user.getNickname(), user.getImage()); - return oauthToken; + return ResponseEntity.ok(loginResponse); } } -} + diff --git a/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java b/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java index 1a48f6d..1f87c88 100644 --- a/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java +++ b/src/main/java/com/greenpoint/server/auth/model/KakaoProfile.java @@ -2,14 +2,18 @@ import lombok.Data; +@Data public class KakaoProfile { private Long id; private Properties properties; + + @Data public class Properties { public String nickname; public String profile_image; // 이미지 경로 필드1 } + } diff --git a/src/main/java/com/greenpoint/server/auth/model/OauthToken.java b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java index fc2f356..bb2f696 100644 --- a/src/main/java/com/greenpoint/server/auth/model/OauthToken.java +++ b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java @@ -1,16 +1,16 @@ -package com.greenpoint.server.auth.model; - - -import lombok.Data; - -@Data //(2) -public class OauthToken { //(1) - private String access_token; - private String token_type; - private String refresh_token; - private int expires_in; - private String scope; - private int refresh_token_expires_in; - -}} - +//package com.greenpoint.server.auth.model; +// +// +//import lombok.Data; +// +//@Data //(2) +//public class OauthToken { //(1) +// private String access_token; +// private String token_type; +// private String refresh_token; +// private int expires_in; +// private String scope; +// private int refresh_token_expires_in; +// +//}} +// diff --git a/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java index 208995e..fa060ac 100644 --- a/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java +++ b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java @@ -4,7 +4,7 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository { - public Customer findByKakao_Token(String kakaoToken); -// public Customer findByUserCode(String userCode); + + } diff --git a/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java b/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java new file mode 100644 index 0000000..c7c2198 --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java @@ -0,0 +1,17 @@ +package com.greenpoint.server.auth.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class LoginResponse { + private String token; + private String nickname; + private String image; + +} diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index 068381f..3846f8f 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -62,24 +62,22 @@ public class UserService { public Customer saveUser(String token) { //(1) - Customer customer; + KakaoProfile profile = findProfile(token); - KaKaoprofile profile = findProfile(token); - //(2) - Customer user = customerRepository.findByNickname(profile.getKakao_account().getEmail()); + Customer user = customerRepository.findByKakao_Token(token); - //(3) if(user == null) { - user = User.builder() - .kakaoId(profile.getId()) - //(4) - .kakaoProfileImg(profile.getKakao_account().getProfile().getProfile_image_url()) - .kakaoNickname(profile.getKakao_account().getProfile().getNickname()) - .kakaoEmail(profile.getKakao_account().getEmail()) - //(5) - .userRole("ROLE_USER").build(); - - userRepository.save(user); +// user = Customer.builder() +// .kakaoId(profile.getId()) +// //(4) +// .kakaoProfileImg(profile.getKakao_account().getProfile().getProfile_image_url()) +// .kakaoNickname(profile.getKakao_account().getProfile().getNickname()) +// .kakaoEmail(profile.getKakao_account().getEmail()) +// //(5) +// .userRole("ROLE_USER").build(); + Customer newUser = new Customer(); + newUser.insertUser(token, profile.getProperties().getNickname(), profile.getProperties().getProfile_image()); + customerRepository.save(newUser); } return user; diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 1817640..2ff493f 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -55,5 +55,13 @@ public void usepoint(int usedPoint) { this.point = this.point - usedPoint; } + public void insertUser(String token, String nickname, String image) { + this.kakaoToken = token; + this.nickname = nickname; + this.image = image; + } + public void insertUser(String token) { + this.kakaoToken = token; + } } diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java index 57eb7bb..b4ac2f0 100644 --- a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -5,4 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface CustomerRepository extends JpaRepository { + public Customer findByKakao_Token(String kakaoToken); + } diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index 88ba476..39d4309 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -24,11 +24,11 @@ public class HistoryController { private StoreService storeService; - @GetMapping(value = "/history/{token}") - public ResponseEntity> findAllHistoryByCustomer(){ - - - } +// @GetMapping(value = "/history/{token}") +// public ResponseEntity> findAllHistoryByCustomer(){ +// +// +// } @PostMapping(value="/history") diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java index 715d705..0d0cf61 100644 --- a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java +++ b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java @@ -21,13 +21,13 @@ public class HistoryResponse { private int usedPoint; private int currentPoint; - public HistoryResponse from(History history){ - return HistoryResponse.builder() - .storeName(history.getStore().getName()) - .savedPoint(history.getSavedPoint()) - .usedPoint(history.getUsedPoint()) - .currentPoint(history.) - .build(); - } +// public HistoryResponse from(History history){ +// return HistoryResponse.builder() +// .storeName(history.getStore().getName()) +// .savedPoint(history.getSavedPoint()) +// .usedPoint(history.getUsedPoint()) +// .currentPoint(history.) +// .build(); +// } } From 9c5533d8a136618c78b7efad921b491b470969f8 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 18:04:21 +0900 Subject: [PATCH 12/45] Feat/#10 (#12) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 --- build.gradle | 11 +- .../greenpoint/server/ServerApplication.java | 11 +- .../auth/controller/UserController.java | 49 +++++-- .../server/auth/response/LoginResponse.java | 2 +- .../server/auth/service/UserService.java | 130 ++++++------------ .../controller/CustomerController.java | 4 + .../server/customer/model/Customer.java | 24 ++-- .../repository/CustomerRepository.java | 2 +- src/main/resources/application.yml | 27 ---- 9 files changed, 121 insertions(+), 139 deletions(-) delete mode 100644 src/main/resources/application.yml diff --git a/build.gradle b/build.gradle index c74cfbb..119da31 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java' id 'org.springframework.boot' version '2.7.8' id 'io.spring.dependency-management' version '1.0.15.RELEASE' + id 'war' } group = 'com.greenpoint' @@ -14,6 +15,10 @@ configurations { } } +bootWar { + enabled = true +} + repositories { mavenCentral() } @@ -21,10 +26,12 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-security' +// implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3' - implementation 'com.auth0:java-jwt:4.2.1' + implementation 'org.springframework.boot:spring-boot-starter' +// implementation 'org.springframework.boot:spring-boot-starter-tomcat' +// implementation 'com.auth0:java-jwt:4.2.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/greenpoint/server/ServerApplication.java b/src/main/java/com/greenpoint/server/ServerApplication.java index a095c1b..60d5078 100644 --- a/src/main/java/com/greenpoint/server/ServerApplication.java +++ b/src/main/java/com/greenpoint/server/ServerApplication.java @@ -2,12 +2,21 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication -public class ServerApplication { +public class ServerApplication extends SpringBootServletInitializer { + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(ServerApplication.class); + } public static void main(String[] args) { SpringApplication.run(ServerApplication.class, args); } } + + + diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index 8a2b823..bb79376 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -3,14 +3,23 @@ import com.greenpoint.server.auth.response.LoginResponse; import com.greenpoint.server.auth.service.UserService; import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.repository.CustomerRepository; +import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; @RestController +@RequiredArgsConstructor @RequestMapping("/api") public class UserController { @Autowired @@ -19,12 +28,36 @@ public class UserController { @GetMapping("/login") public ResponseEntity getLogin(@RequestParam("code") String code) { - Customer user; - user = userService.saveUser(code); - LoginResponse loginResponse = new LoginResponse(user.getKakaoToken(), user.getNickname(), user.getImage()); - + boolean isRegistered; + Object[] obArr = new Object[2]; + Customer userInfo = new Customer(); + obArr = userService.saveUser(code); + System.out.println("obArr = " + obArr); + userInfo =(Customer)obArr[0]; + isRegistered = (boolean)obArr[1]; + LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); return ResponseEntity.ok(loginResponse); } + @GetMapping("/makeaccount") + public ResponseEntity getLogin(@RequestParam("code") String code) { + + boolean isRegistered; + Object[] obArr = new Object[2]; + Customer userInfo = new Customer(); + obArr = userService.saveUser(code); + System.out.println("obArr = " + obArr); + userInfo =(Customer)obArr[0]; + isRegistered = (boolean)obArr[1]; + LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); + return ResponseEntity.ok(loginResponse); + } } + + + + + + + diff --git a/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java b/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java index c7c2198..1948c73 100644 --- a/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java +++ b/src/main/java/com/greenpoint/server/auth/response/LoginResponse.java @@ -13,5 +13,5 @@ public class LoginResponse { private String token; private String nickname; private String image; - + private boolean isRegistered; } diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index 3846f8f..acb0bce 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -1,121 +1,71 @@ package com.greenpoint.server.auth.service; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.greenpoint.server.auth.model.KakaoProfile; import com.greenpoint.server.auth.repository.UserRepository; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; +import java.sql.SQLOutput; + @Service public class UserService { @Autowired CustomerRepository customerRepository; -// public OauthToken getAccessToken(String code) { -// RestTemplate rt = new RestTemplate(); -// -// HttpHeaders headers = new HttpHeaders(); -// headers.add("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); -// -// //(4) -// MultiValueMap params = new LinkedMultiValueMap<>(); -// params.add("grant_type", "authorization_code"); -// params.add("client_id", "{클라이언트 앱 키}"); -// params.add("redirect_uri", "{리다이렉트 uri}"); -// params.add("code", code); -// params.add("client_secret", "{시크릿 키}"); // 생략 가능! -// -// //(5) -// HttpEntity> kakaoTokenRequest = -// new HttpEntity<>(params, headers); -// -// //(6) -// ResponseEntity accessTokenResponse = rt.exchange( -// "https://kauth.kakao.com/oauth/token", -// HttpMethod.POST, -// kakaoTokenRequest, -// String.class -// ); -// -// //(7) -// ObjectMapper objectMapper = new ObjectMapper(); -// OauthToken oauthToken = null; -// try { -// oauthToken = objectMapper.readValue(accessTokenResponse.getBody(), OauthToken.class); -// } catch (JsonProcessingException e) { -// e.printStackTrace(); -// } -// -// return oauthToken; //(8) -// } - - public Customer saveUser(String token) { - - //(1) - KakaoProfile profile = findProfile(token); - - Customer user = customerRepository.findByKakao_Token(token); + public Object[] saveUser(String token) { + + Object[] obArr = new Object[2]; + String name = null; + String imageUrl = null; + + String userInfo = getUserInfoByAccessToken(token); + ObjectMapper objectMapper = new ObjectMapper(); + try { + JsonNode jsonNode = objectMapper.readTree(userInfo); + name = String.valueOf(jsonNode.get("kakao_account").get("profile").get("nickname")); + imageUrl = String.valueOf(jsonNode.get("kakao_account").get("profile").get("profile_image_url")); + + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + + System.out.println("userInfo" + userInfo); + Customer user = customerRepository.findByKakaoToken(token); if(user == null) { -// user = Customer.builder() -// .kakaoId(profile.getId()) -// //(4) -// .kakaoProfileImg(profile.getKakao_account().getProfile().getProfile_image_url()) -// .kakaoNickname(profile.getKakao_account().getProfile().getNickname()) -// .kakaoEmail(profile.getKakao_account().getEmail()) -// //(5) -// .userRole("ROLE_USER").build(); - Customer newUser = new Customer(); - newUser.insertUser(token, profile.getProperties().getNickname(), profile.getProperties().getProfile_image()); - customerRepository.save(newUser); + Customer newUser = Customer.from(token, name.substring(1, name.length() - 1), imageUrl.substring(1, imageUrl.length() - 1)); + obArr[0] = newUser; + obArr[1] = false; + return obArr; } - return user; + obArr[0] = user; + obArr[1] = true; + return obArr; } - public KakaoProfile findProfile(String token) { + public String getUserInfoByAccessToken(String accessToken) { + RestTemplate restTemplate = new RestTemplate(); + HttpHeaders headers = new HttpHeaders(); + headers.set("Authorization", "Bearer " + accessToken); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - //(1-2) - RestTemplate rt = new RestTemplate(); + LinkedMultiValueMap params = new LinkedMultiValueMap<>(); - //(1-3) - HttpHeaders headers = new HttpHeaders(); - headers.add("Authorization", "Bearer " + token); //(1-4) - headers.add("Content-type", "application/x-www-form-urlencoded;charset=utf-8"); - - //(1-5) - HttpEntity> kakaoProfileRequest = - new HttpEntity<>(headers); - - //(1-6) - // Http 요청 (POST 방식) 후, response 변수에 응답을 받음 - ResponseEntity kakaoProfileResponse = rt.exchange( - "https://kapi.kakao.com/v2/user/me", - HttpMethod.POST, - kakaoProfileRequest, - String.class - ); - - //(1-7) - ObjectMapper objectMapper = new ObjectMapper(); - KakaoProfile kakaoProfile = null; - try { - kakaoProfile = objectMapper.readValue(kakaoProfileResponse.getBody(), KakaoProfile.class); - } catch (JsonProcessingException e) { - e.printStackTrace(); - } + HttpEntity> request = new HttpEntity<>(params, headers); + + String url = "https://kapi.kakao.com/v2/user/me"; - return kakaoProfile; + return restTemplate.postForObject(url, request, String.class); } } diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java index 3322929..39ea318 100644 --- a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -9,4 +9,8 @@ @RequestMapping("/api") public class CustomerController { + @RequestMapping("/test") + public void print(){ + System.out.println(" 들어옴! " ); + } } diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 2ff493f..93e3ce4 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -3,10 +3,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.level.model.Level; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -15,20 +12,21 @@ @Entity @Getter @Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @SQLDelete(sql = "UPDATE customer SET deleted = true Where kakaoToken = ?") public class Customer extends BaseEntity { -// @Id -// @GeneratedValue(strategy = GenerationType.IDENTITY) -// private Long id; - @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + +// @Id @Column(unique = true) private String kakaoToken; - private String name; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private Level level; @@ -64,4 +62,12 @@ public void insertUser(String token) { this.kakaoToken = token; } + public static Customer from (String token, String nickname, String image) { + return Customer.builder() + .kakaoToken(token) + .nickname(nickname) + .image(image) + .build(); + } + } diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java index b4ac2f0..4f431f2 100644 --- a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -5,6 +5,6 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface CustomerRepository extends JpaRepository { - public Customer findByKakao_Token(String kakaoToken); + public Customer findByKakaoToken(String kakaoToken); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml deleted file mode 100644 index d9a7e92..0000000 --- a/src/main/resources/application.yml +++ /dev/null @@ -1,27 +0,0 @@ -#spring: -# security: -# oauth2: -# client: -# registration: -# kakao: -# client-id: d83c4df2ae52b5f2a42c9b5f776e4178 -# redirect-uri: localhost:8080/main -# client-authentication-method: POST -# client-secret: Qq1yGZKo245VNijN1h17EwjABCk5ZpzQ -# authorization-grant-type: authorization_code -# scope: -# - profile_nickname -# - profile_image -# provider: -# kakao: -# authorization-uri: https://kauth.kakao.com/oauth/authorize -# token-uri: https://kauth.kakao.com/oauth/token -# user-info-uri: https://kapi.kakao.com/v2/user/me -# user-name-attribute: id -#jwt: -# token: -# secret-key: Qq1yGZKo245VNijN1h17EwjABCk5ZpzQ -# access-token: -# expire-length: 1800000 -# refresh-token: -# expire-length: 1209600000 \ No newline at end of file From f156fbc81d09a158024bd2c808ce48a4c86952a5 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 20:28:13 +0900 Subject: [PATCH 13/45] Feat/#13 (#14) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 --- .../auth/controller/UserController.java | 54 ++++++++++++------- .../server/auth/response/AccountResponse.java | 16 ++++++ .../server/auth/service/UserService.java | 36 ++++++++++++- .../controller/CustomerController.java | 17 ++++-- .../server/customer/model/Customer.java | 7 +++ .../repository/CustomerRepository.java | 4 ++ 6 files changed, 111 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/auth/response/AccountResponse.java diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index bb79376..dfc852a 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -1,5 +1,6 @@ package com.greenpoint.server.auth.controller; +import com.greenpoint.server.auth.response.AccountResponse; import com.greenpoint.server.auth.response.LoginResponse; import com.greenpoint.server.auth.service.UserService; import com.greenpoint.server.customer.model.Customer; @@ -18,6 +19,14 @@ import java.util.Map; import java.util.Objects; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + @RestController @RequiredArgsConstructor @RequestMapping("/api") @@ -33,31 +42,38 @@ public ResponseEntity getLogin(@RequestParam("code") String code) Customer userInfo = new Customer(); obArr = userService.saveUser(code); System.out.println("obArr = " + obArr); - userInfo =(Customer)obArr[0]; - isRegistered = (boolean)obArr[1]; + userInfo = (Customer) obArr[0]; + isRegistered = (boolean) obArr[1]; LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); return ResponseEntity.ok(loginResponse); } - @GetMapping("/makeaccount") - public ResponseEntity getLogin(@RequestParam("code") String code) { - - boolean isRegistered; - Object[] obArr = new Object[2]; - Customer userInfo = new Customer(); - obArr = userService.saveUser(code); - System.out.println("obArr = " + obArr); - userInfo =(Customer)obArr[0]; - isRegistered = (boolean)obArr[1]; - LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); - return ResponseEntity.ok(loginResponse); + @PostMapping("/makeAccount") + public ResponseEntity makeAccount(@RequestBody HashMap param) { + Boolean result; + System.out.println("param = " + param); + result = userService.getUserInfoByForm(param); + if(result == false) { + AccountResponse accountResponse = new AccountResponse(false); + return ResponseEntity.ok(accountResponse); + } + AccountResponse accountResponse = new AccountResponse(true); + return ResponseEntity.ok(accountResponse); } -} - - - - + @DeleteMapping("/deleteMember") + public String deleteAccount(HttpSession session, @RequestParam("token") String token){ + String resultCode = ""; + int result = userService.memberDelete(token); + if(result == 0){ + resultCode = "회원 탈퇴 실패"; + } else { + session.removeAttribute("sessionId"); + resultCode = "회원 탈퇴 성공"; + } + return resultCode; + } +} diff --git a/src/main/java/com/greenpoint/server/auth/response/AccountResponse.java b/src/main/java/com/greenpoint/server/auth/response/AccountResponse.java new file mode 100644 index 0000000..5df35d2 --- /dev/null +++ b/src/main/java/com/greenpoint/server/auth/response/AccountResponse.java @@ -0,0 +1,16 @@ +package com.greenpoint.server.auth.response; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +public class AccountResponse { +// private String nickname; +// private String contact; + private boolean isRegistered; +} diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index acb0bce..985afaf 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -16,6 +16,10 @@ import java.sql.SQLOutput; +import javax.servlet.http.HttpSession; +import java.sql.SQLOutput; +import java.util.HashMap; + @Service public class UserService { @Autowired @@ -40,7 +44,8 @@ public Object[] saveUser(String token) { System.out.println("userInfo" + userInfo); - Customer user = customerRepository.findByKakaoToken(token); + Customer user; + user = customerRepository.findByKakaoToken(token); if(user == null) { Customer newUser = Customer.from(token, name.substring(1, name.length() - 1), imageUrl.substring(1, imageUrl.length() - 1)); obArr[0] = newUser; @@ -53,6 +58,7 @@ public Object[] saveUser(String token) { return obArr; } + public String getUserInfoByAccessToken(String accessToken) { RestTemplate restTemplate = new RestTemplate(); HttpHeaders headers = new HttpHeaders(); @@ -67,5 +73,33 @@ public String getUserInfoByAccessToken(String accessToken) { return restTemplate.postForObject(url, request, String.class); } + public Boolean getUserInfoByForm(HashMap param) { + // 닉네임 , 전화번호 + Customer user; + String token = param.get("token"); + System.out.println("token = " + token); + try{ + user = customerRepository.findByKakaoToken(token); + user.setContact(param.get("contact")); + user.setNickname(param.get("nickname")); +// user = Customer.from(param.get("nickname"), param.get("contact")); + user = customerRepository.save(user); + if(user == null){ + return false; + } + } + catch(Exception e){ + System.out.println("토큰이 다름!"); + return false; + } + + return true; + } + + + public int memberDelete(String token) { + int result = customerRepository.deleteByKakaoToken(token); + return result; + } } diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java index 39ea318..9dfd848 100644 --- a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -1,6 +1,10 @@ package com.greenpoint.server.customer.controller; +import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.service.CustomerService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -9,8 +13,15 @@ @RequestMapping("/api") public class CustomerController { - @RequestMapping("/test") - public void print(){ - System.out.println(" 들어옴! " ); + @Autowired + private CustomerService cs; + + @GetMapping("/test") + public void print() { + System.out.println(" 들어옴! "); + + Customer customer; + customer = cs.findById(1L); + System.out.println("customer = " + customer.getNickname()); } } diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 93e3ce4..04be4f9 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -69,5 +69,12 @@ public static Customer from (String token, String nickname, String image) { .image(image) .build(); } + public static Customer from (String nickname , String contact) { + return Customer.builder() + .nickname(nickname) + .contact(contact) + .build(); + } + } diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java index 4f431f2..172b24f 100644 --- a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -3,8 +3,12 @@ import com.greenpoint.server.customer.model.Customer; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; public interface CustomerRepository extends JpaRepository { public Customer findByKakaoToken(String kakaoToken); + @Query("delete from Customer where kakaoToken= :kakaoToken") + public int deleteByKakaoToken(String kakaoToken); + } From 1d8f30b98d9ca7cef2f854c4f4661755f910b2cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 27 Jan 2023 21:04:11 +0900 Subject: [PATCH 14/45] Feat/#7 (#15) * #7 * history API --- build.gradle | 3 -- .../auth/controller/UserController.java | 5 +-- .../server/auth/model/OauthToken.java | 17 +------- .../auth/repository/UserRepository.java | 19 ++++---- .../server/auth/service/UserService.java | 8 ++-- .../greenpoint/server/common/BaseEntity.java | 1 + .../server/customer/model/Customer.java | 3 +- .../customer/service/CustomerService.java | 15 +++++-- .../exception/CustomerNotFoundException.java | 10 +++++ .../history/controller/HistoryController.java | 20 +++++---- .../server/history/model/History.java | 2 +- .../server/history/model/HistoryResponse.java | 22 +++++----- .../history/repository/HistoryRepository.java | 8 ++++ .../history/service/HistoryService.java | 16 +++++-- .../level/controller/LevelController.java | 16 +++++++ .../greenpoint/server/level/model/Level.java | 12 ++++-- .../server/level/model/LevelRequest.java | 14 ++++++ .../server/level/service/LevelService.java | 14 ++++++ .../point/controller/PointController.java | 43 ++++++++++++++++++- .../greenpoint/server/point/model/Point.java | 18 ++++++-- .../server/point/model/PointRequest.java | 15 +++++++ .../point/repository/PointRepository.java | 6 +++ .../server/point/service/PointService.java | 41 ++++++++++++++++++ .../store/controller/StoreController.java | 39 ++++++++++++++++- .../greenpoint/server/store/model/Store.java | 29 ++++++++++--- .../server/store/model/StoreRequest.java | 18 ++++++++ .../server/store/service/StoreService.java | 33 +++++++++++++- 27 files changed, 365 insertions(+), 82 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/exception/CustomerNotFoundException.java create mode 100644 src/main/java/com/greenpoint/server/level/model/LevelRequest.java create mode 100644 src/main/java/com/greenpoint/server/point/model/PointRequest.java create mode 100644 src/main/java/com/greenpoint/server/store/model/StoreRequest.java diff --git a/build.gradle b/build.gradle index 119da31..345a735 100644 --- a/build.gradle +++ b/build.gradle @@ -26,12 +26,9 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' -// implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.3' implementation 'org.springframework.boot:spring-boot-starter' -// implementation 'org.springframework.boot:spring-boot-starter-tomcat' -// implementation 'com.auth0:java-jwt:4.2.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.mysql:mysql-connector-j' annotationProcessor 'org.projectlombok:lombok' diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index dfc852a..4c25c39 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -48,6 +48,7 @@ public ResponseEntity getLogin(@RequestParam("code") String code) return ResponseEntity.ok(loginResponse); } + @PostMapping("/makeAccount") public ResponseEntity makeAccount(@RequestBody HashMap param) { Boolean result; @@ -74,6 +75,4 @@ public String deleteAccount(HttpSession session, @RequestParam("token") String t } return resultCode; } - -} - +} \ No newline at end of file diff --git a/src/main/java/com/greenpoint/server/auth/model/OauthToken.java b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java index bb2f696..8b13789 100644 --- a/src/main/java/com/greenpoint/server/auth/model/OauthToken.java +++ b/src/main/java/com/greenpoint/server/auth/model/OauthToken.java @@ -1,16 +1 @@ -//package com.greenpoint.server.auth.model; -// -// -//import lombok.Data; -// -//@Data //(2) -//public class OauthToken { //(1) -// private String access_token; -// private String token_type; -// private String refresh_token; -// private int expires_in; -// private String scope; -// private int refresh_token_expires_in; -// -//}} -// + diff --git a/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java index fa060ac..27d5d18 100644 --- a/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java +++ b/src/main/java/com/greenpoint/server/auth/repository/UserRepository.java @@ -1,10 +1,11 @@ -package com.greenpoint.server.auth.repository; - -import com.greenpoint.server.customer.model.Customer; -import org.springframework.data.jpa.repository.JpaRepository; - -public interface UserRepository extends JpaRepository { - - -} +// +//package com.greenpoint.server.auth.repository; +// +//import com.greenpoint.server.customer.model.Customer; +//import org.springframework.data.jpa.repository.JpaRepository; +// +//public interface UserRepository extends JpaRepository { +// +// +//} diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index 985afaf..285d96c 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -1,10 +1,9 @@ + package com.greenpoint.server.auth.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.greenpoint.server.auth.model.KakaoProfile; -import com.greenpoint.server.auth.repository.UserRepository; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +13,7 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; + import java.sql.SQLOutput; import javax.servlet.http.HttpSession; @@ -23,7 +23,8 @@ @Service public class UserService { @Autowired - CustomerRepository customerRepository; + private CustomerRepository customerRepository; + public Object[] saveUser(String token) { @@ -50,6 +51,7 @@ public Object[] saveUser(String token) { Customer newUser = Customer.from(token, name.substring(1, name.length() - 1), imageUrl.substring(1, imageUrl.length() - 1)); obArr[0] = newUser; obArr[1] = false; +// customerRepository.save(newUser); return obArr; } diff --git a/src/main/java/com/greenpoint/server/common/BaseEntity.java b/src/main/java/com/greenpoint/server/common/BaseEntity.java index 7ef0f09..800c768 100644 --- a/src/main/java/com/greenpoint/server/common/BaseEntity.java +++ b/src/main/java/com/greenpoint/server/common/BaseEntity.java @@ -19,6 +19,7 @@ @NoArgsConstructor @Getter public abstract class BaseEntity { + @CreatedDate @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") @Column(updatable = false) diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 04be4f9..a5e07f5 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -16,14 +16,13 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where kakaoToken = ?") +@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") public class Customer extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; -// @Id @Column(unique = true) private String kakaoToken; diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java index fd61b44..ffb8f81 100644 --- a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -2,16 +2,25 @@ import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; +import com.greenpoint.server.exception.CustomerNotFoundException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class CustomerService { + @Autowired private CustomerRepository customerRepository; - public Customer findById(Long customerId) { - Customer customer = customerRepository.findById(customerId).get(); - return customer; + + @Transactional + public Customer findById(Long id) { +// Customer ret = customerRepository.findById(id).orElseThrow(CustomerNotFoundException::new); + Customer ret = customerRepository.findById(id).get(); + return ret; } + + + } diff --git a/src/main/java/com/greenpoint/server/exception/CustomerNotFoundException.java b/src/main/java/com/greenpoint/server/exception/CustomerNotFoundException.java new file mode 100644 index 0000000..ff81bb2 --- /dev/null +++ b/src/main/java/com/greenpoint/server/exception/CustomerNotFoundException.java @@ -0,0 +1,10 @@ +package com.greenpoint.server.exception; + +import org.springframework.http.HttpStatus; + +public class CustomerNotFoundException extends GlobalException { + public CustomerNotFoundException() { + super("존재하지 않는 유저입니다.", HttpStatus.BAD_REQUEST); + } +} + diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index 39d4309..f89aff6 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -1,5 +1,6 @@ package com.greenpoint.server.history.controller; - +import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.service.CustomerService; import com.greenpoint.server.history.model.History; import com.greenpoint.server.history.model.HistoryRequest; import com.greenpoint.server.history.model.HistoryResponse; @@ -22,19 +23,22 @@ public class HistoryController { private HistoryService historyService; @Autowired private StoreService storeService; + @Autowired + private CustomerService customerService; + @GetMapping(value = "/history/{id}") + public ResponseEntity> findAllById(@PathVariable Long customerId){ + List res = historyService.findAllById(customerId); + return ResponseEntity.ok(res); + } -// @GetMapping(value = "/history/{token}") -// public ResponseEntity> findAllHistoryByCustomer(){ -// -// -// } @PostMapping(value="/history") public ResponseEntity addHistory(@RequestBody HistoryRequest request){ - Store store = storeService.findById(request.getStoreId()); - Long res = historyService.create(History.from(store, request)); + Customer customer = customerService.findById(request.getCustomerId()); + Store store = storeService.findStoreById(request.getStoreId()); + Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index 5575f35..0b5486b 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -33,7 +33,7 @@ public class History extends BaseEntity { public static History from(Store store, HistoryRequest request){ - return History.builder() + return History.builder() .customerId(request.getCustomerId()) .store(store) .cost(request.getCost()) diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java index 0d0cf61..56c8c8a 100644 --- a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java +++ b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java @@ -1,14 +1,11 @@ package com.greenpoint.server.history.model; -import com.greenpoint.server.store.model.Store; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; -import javax.persistence.CascadeType; -import javax.persistence.FetchType; -import javax.persistence.ManyToOne; @Getter @Builder @@ -21,13 +18,14 @@ public class HistoryResponse { private int usedPoint; private int currentPoint; -// public HistoryResponse from(History history){ -// return HistoryResponse.builder() -// .storeName(history.getStore().getName()) -// .savedPoint(history.getSavedPoint()) -// .usedPoint(history.getUsedPoint()) -// .currentPoint(history.) -// .build(); -// } + + + public static HistoryResponse from(History history){ + return HistoryResponse.builder() + .storeName(history.getStore().getName()) + .savedPoint(history.getSavedPoint()) + .usedPoint(history.getUsedPoint()) + .build(); + } } diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 1ac26c3..05cef3d 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -2,7 +2,15 @@ import com.greenpoint.server.history.model.History; +import com.greenpoint.server.history.model.HistoryResponse; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.Arrays; +import java.util.List; public interface HistoryRepository extends JpaRepository { + + @Query("select h from History h where h.customerId = :cid") + List findAllById(Long cid); } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 0b7c02e..509e1a1 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -3,10 +3,13 @@ import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.service.CustomerService; import com.greenpoint.server.history.model.History; +import com.greenpoint.server.history.model.HistoryResponse; import com.greenpoint.server.history.repository.HistoryRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; +import java.util.stream.Collectors; @Service public class HistoryService { @@ -14,17 +17,22 @@ public class HistoryService { @Autowired private HistoryRepository historyRepository; - @Autowired - private CustomerService customerService; + + @Transactional - public Long create(History history){ + public Long create(History history, Customer customer){ History res = historyRepository.save(history); - Customer customer = customerService.findById(history.getCustomerId()); customer.addpoint(history.getSavedPoint()); customer.usepoint(history.getUsedPoint()); return res.getId(); } + @Transactional + public List findAllById(Long customerId) { + List histories = historyRepository.findAllById(customerId); + return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); + } + } diff --git a/src/main/java/com/greenpoint/server/level/controller/LevelController.java b/src/main/java/com/greenpoint/server/level/controller/LevelController.java index 38ba87b..7410af7 100644 --- a/src/main/java/com/greenpoint/server/level/controller/LevelController.java +++ b/src/main/java/com/greenpoint/server/level/controller/LevelController.java @@ -1,6 +1,13 @@ package com.greenpoint.server.level.controller; +import com.greenpoint.server.level.model.Level; +import com.greenpoint.server.level.model.LevelRequest; +import com.greenpoint.server.level.service.LevelService; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -9,4 +16,13 @@ @RequestMapping("/api") public class LevelController { + @Autowired + private LevelService levelService; + + @PostMapping(value="/level") + public ResponseEntity create(@RequestBody LevelRequest request){ + Level res = levelService.create(Level.from(request)); + return ResponseEntity.ok(res); + } + } diff --git a/src/main/java/com/greenpoint/server/level/model/Level.java b/src/main/java/com/greenpoint/server/level/model/Level.java index 51329f3..49fe403 100644 --- a/src/main/java/com/greenpoint/server/level/model/Level.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -2,10 +2,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.customer.model.Customer; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -14,6 +11,7 @@ @Entity @Getter @Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @@ -26,4 +24,10 @@ public class Level extends BaseEntity{ private String name; private String image; + public static Level from(LevelRequest request) { + return Level.builder() + .name(request.getName()) + .image(request.getImage()) + .build(); + } } diff --git a/src/main/java/com/greenpoint/server/level/model/LevelRequest.java b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java new file mode 100644 index 0000000..e5abfc2 --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java @@ -0,0 +1,14 @@ +package com.greenpoint.server.level.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class LevelRequest { + public String name; + public String image; +} diff --git a/src/main/java/com/greenpoint/server/level/service/LevelService.java b/src/main/java/com/greenpoint/server/level/service/LevelService.java index 11263d3..019f290 100644 --- a/src/main/java/com/greenpoint/server/level/service/LevelService.java +++ b/src/main/java/com/greenpoint/server/level/service/LevelService.java @@ -1,7 +1,21 @@ package com.greenpoint.server.level.service; +import com.greenpoint.server.level.model.Level; +import com.greenpoint.server.level.repository.LevelRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class LevelService { + + @Autowired + private LevelRepository levelRepository; + + @Transactional + public Level create(Level level){ + Level ret = levelRepository.save(level); + return ret; + } + } diff --git a/src/main/java/com/greenpoint/server/point/controller/PointController.java b/src/main/java/com/greenpoint/server/point/controller/PointController.java index 26e2171..e8dadcc 100644 --- a/src/main/java/com/greenpoint/server/point/controller/PointController.java +++ b/src/main/java/com/greenpoint/server/point/controller/PointController.java @@ -1,12 +1,51 @@ package com.greenpoint.server.point.controller; +import com.greenpoint.server.point.model.Point; +import com.greenpoint.server.point.model.PointRequest; +import com.greenpoint.server.point.service.PointService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.xml.ws.Response; +import java.util.List; @RestController @RequiredArgsConstructor @RequestMapping("/api") public class PointController { + @Autowired + private PointService pointService; + + @GetMapping(value = "/point") + public ResponseEntity> findAll(){ + return ResponseEntity.ok(pointService.findAll()); + } + + @GetMapping(value = "/point/{sid}") + public ResponseEntity> findAllByStore(@PathVariable Long sid){ + List res = pointService.findAllByStore(sid); + return ResponseEntity.ok(pointService.findAll()); + } + + @PostMapping(value="/point") + public ResponseEntity create(@RequestBody PointRequest request){ + Long res = pointService.create(Point.from(request)); + return ResponseEntity.ok(res); + } + + @PatchMapping(value = "/point/{id}") + public ResponseEntity update(@PathVariable Long id, @RequestBody PointRequest request){ + Point res = pointService.update(id, request); + return ResponseEntity.ok(res); + } + + @DeleteMapping(value = "/point/{id}") + public void delete(@PathVariable Long id){ + pointService.delete(id); + } + + } diff --git a/src/main/java/com/greenpoint/server/point/model/Point.java b/src/main/java/com/greenpoint/server/point/model/Point.java index 9716314..c1353b4 100644 --- a/src/main/java/com/greenpoint/server/point/model/Point.java +++ b/src/main/java/com/greenpoint/server/point/model/Point.java @@ -2,10 +2,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.store.model.Store; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -14,6 +11,7 @@ @Entity @Getter @Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @@ -30,4 +28,16 @@ public class Point extends BaseEntity{ private String name; private int weight; + public static Point from(PointRequest request){ + return Point.builder() + .storeId(request.getStoreId()) + .name(request.getName()) + .weight(request.getWeight()) + .build(); + } + + public void update(PointRequest request) { + this.name = request.getName(); + this.weight = request.getWeight(); + } } diff --git a/src/main/java/com/greenpoint/server/point/model/PointRequest.java b/src/main/java/com/greenpoint/server/point/model/PointRequest.java new file mode 100644 index 0000000..7474421 --- /dev/null +++ b/src/main/java/com/greenpoint/server/point/model/PointRequest.java @@ -0,0 +1,15 @@ +package com.greenpoint.server.point.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class PointRequest { + private Long storeId; + private String name; + private int weight; +} diff --git a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java index a66451b..7dbbc3b 100644 --- a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java +++ b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java @@ -3,6 +3,12 @@ import com.greenpoint.server.point.model.Point; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface PointRepository extends JpaRepository { + @Query("select p from Point p where p.storeId = :sid") + List findAllByStore(Long sid); + } diff --git a/src/main/java/com/greenpoint/server/point/service/PointService.java b/src/main/java/com/greenpoint/server/point/service/PointService.java index e8f1750..2ba4c84 100644 --- a/src/main/java/com/greenpoint/server/point/service/PointService.java +++ b/src/main/java/com/greenpoint/server/point/service/PointService.java @@ -1,7 +1,48 @@ package com.greenpoint.server.point.service; +import com.greenpoint.server.point.model.Point; +import com.greenpoint.server.point.model.PointRequest; +import com.greenpoint.server.point.repository.PointRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @Service public class PointService { + + @Autowired + private PointRepository pointRepository; + + private Point findOne(Long id){ + return pointRepository.findById(id).get(); + } + + @Transactional + public Point update(Long id, PointRequest request) { + Point res = pointRepository.findById(id).get(); + res.update(request); + return res; + } + @Transactional + public Long create(Point point){ + pointRepository.save(point); + return point.getId(); + } + @Transactional(readOnly = true) + public List findAll() { + return pointRepository.findAll(); + } + + @Transactional + public void delete(Long id) { + pointRepository.delete(this.findOne(id)); + } + + @Transactional(readOnly = true) + public List findAllByStore(Long storeid) { + List res = pointRepository.findAllByStore(storeid); + return res; + } } diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index e87af01..e3f071b 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -1,11 +1,46 @@ package com.greenpoint.server.store.controller; +import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.model.StoreRequest; +import com.greenpoint.server.store.service.StoreService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import javax.xml.ws.Response; +import java.util.List; @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class StoreController { + + @Autowired + private StoreService storeService; + + @GetMapping(value="/store") + public ResponseEntity> findAll(){ + List res = storeService.findAll(); + return ResponseEntity.ok(res); + } + @PostMapping(value="/store") + public ResponseEntity create(@RequestBody StoreRequest request){ + Store res = storeService.create(Store.from(request)); + return ResponseEntity.ok(res); + } + @PatchMapping(value="/store/{id}") + public ResponseEntity update(@PathVariable Long id, @RequestBody StoreRequest request){ + Store res = storeService.update(id, request); + return ResponseEntity.ok(res); + } + @DeleteMapping(value="/store/{id}") + public void delete(@PathVariable Long id){ + storeService.delete(id); + } + + + + } diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index 87a523f..9a1893e 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -5,10 +5,7 @@ import com.greenpoint.server.history.model.History; import com.greenpoint.server.menu.model.Menu; import com.greenpoint.server.point.model.Point; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -19,11 +16,12 @@ @Entity @Getter @Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @SQLDelete(sql = "UPDATE store SET deleted = true Where id = ?") -public class Store extends BaseEntity{ +public class Store extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -36,5 +34,26 @@ public class Store extends BaseEntity{ private double latitude; private double longitude; + public static Store from(StoreRequest request){ + return Store.builder() + .loginID(request.getLoginID()) + .password(request.getPassword()) + .category(request.getCategory()) + .name(request.getName()) + .image(request.getImage()) + .latitude(request.getLatitude()) + .longitude(request.getLongitude()) + .build(); + } + + public void update(StoreRequest request) { + this.category = request.getCategory(); + this.image = request.getImage(); + this.loginID = request.getLoginID(); + this.name = request.getName(); + this.password = request.getPassword(); + this.latitude = request.getLatitude(); + this.longitude = request.getLongitude(); + } } diff --git a/src/main/java/com/greenpoint/server/store/model/StoreRequest.java b/src/main/java/com/greenpoint/server/store/model/StoreRequest.java new file mode 100644 index 0000000..0825d1a --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/model/StoreRequest.java @@ -0,0 +1,18 @@ +package com.greenpoint.server.store.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class StoreRequest { + private String loginID; + private String password; + private String category; + private String name; + private String image; + private double latitude; + private double longitude; +} diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index 0e4602a..ad43cf7 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -2,10 +2,13 @@ import com.greenpoint.server.exception.GlobalException; import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.model.StoreRequest; import com.greenpoint.server.store.repository.StoreRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.List; + @Service public class StoreService { @@ -15,8 +18,36 @@ public class StoreService { @Transactional(readOnly = true) - public Store findById(Long storeId) { + public Store findStoreById(Long storeId) { Store ret = storeRepository.findById(storeId).get(); return ret; } + + @Transactional(readOnly = true) + public List findAll() { + List ret = storeRepository.findAll(); + return ret; + } + + @Transactional + public Store create(Store store) { + Store ret = storeRepository.save(store); + return ret; + } + + @Transactional + public void delete(Long id) { + storeRepository.deleteById(id); + } + + @Transactional + public Store update(Long id, StoreRequest request) { + Store ret = this.findOne(id); + ret.update(request); + return ret; + } + + private Store findOne(Long id) { + return storeRepository.findById(id).get(); + } } From 42c8490143ac18acb47a6c12932578f987fb68b1 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 21:09:07 +0900 Subject: [PATCH 15/45] Feat/#13 (#16) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved --- .../server/auth/controller/UserController.java | 5 +++-- .../greenpoint/server/auth/service/UserService.java | 10 ++++------ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index 4c25c39..dfc852a 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -48,7 +48,6 @@ public ResponseEntity getLogin(@RequestParam("code") String code) return ResponseEntity.ok(loginResponse); } - @PostMapping("/makeAccount") public ResponseEntity makeAccount(@RequestBody HashMap param) { Boolean result; @@ -75,4 +74,6 @@ public String deleteAccount(HttpSession session, @RequestParam("token") String t } return resultCode; } -} \ No newline at end of file + +} + diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index 285d96c..a2f83a1 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -1,9 +1,10 @@ - package com.greenpoint.server.auth.service; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import com.greenpoint.server.auth.model.KakaoProfile; +import com.greenpoint.server.auth.repository.UserRepository; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -13,7 +14,6 @@ import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; - import java.sql.SQLOutput; import javax.servlet.http.HttpSession; @@ -23,8 +23,7 @@ @Service public class UserService { @Autowired - private CustomerRepository customerRepository; - + CustomerRepository customerRepository; public Object[] saveUser(String token) { @@ -51,7 +50,6 @@ public Object[] saveUser(String token) { Customer newUser = Customer.from(token, name.substring(1, name.length() - 1), imageUrl.substring(1, imageUrl.length() - 1)); obArr[0] = newUser; obArr[1] = false; -// customerRepository.save(newUser); return obArr; } @@ -75,8 +73,8 @@ public String getUserInfoByAccessToken(String accessToken) { return restTemplate.postForObject(url, request, String.class); } + public Boolean getUserInfoByForm(HashMap param) { - // 닉네임 , 전화번호 Customer user; String token = param.get("token"); System.out.println("token = " + token); From 7119b26979c3d6e12ca4932857e2bbd87b6298ae Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Fri, 27 Jan 2023 22:51:14 +0900 Subject: [PATCH 16/45] Feat/#13 (#18) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 --- .../server/auth/service/UserService.java | 6 ++-- .../point/controller/PointController.java | 2 +- .../store/controller/StoreController.java | 2 +- .../greenpoint/server/store/model/Store.java | 3 ++ .../controller/StoreLevelController.java | 13 ++++++++ .../server/storeLevel/model/StoreLevel.java | 30 +++++++++++++++++++ .../repository/StoreLevelRepository.java | 8 +++++ .../storeLevel/service/StoreLevelService.java | 16 ++++++++++ 8 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/storeLevel/controller/StoreLevelController.java create mode 100644 src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java create mode 100644 src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java create mode 100644 src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index a2f83a1..82602dd 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -4,7 +4,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.greenpoint.server.auth.model.KakaoProfile; -import com.greenpoint.server.auth.repository.UserRepository; +import com.greenpoint.server.auth.model.KakaoProfile; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; import org.springframework.beans.factory.annotation.Autowired; @@ -50,6 +50,7 @@ public Object[] saveUser(String token) { Customer newUser = Customer.from(token, name.substring(1, name.length() - 1), imageUrl.substring(1, imageUrl.length() - 1)); obArr[0] = newUser; obArr[1] = false; +// customerRepository.save(newUser); return obArr; } @@ -73,7 +74,6 @@ public String getUserInfoByAccessToken(String accessToken) { return restTemplate.postForObject(url, request, String.class); } - public Boolean getUserInfoByForm(HashMap param) { Customer user; String token = param.get("token"); @@ -82,6 +82,8 @@ public Boolean getUserInfoByForm(HashMap param) { user = customerRepository.findByKakaoToken(token); user.setContact(param.get("contact")); user.setNickname(param.get("nickname")); + user.setLatitude(Double.valueOf(param.get("latitude"))); + user.setLongitude(Double.valueOf(param.get("longitude"))); // user = Customer.from(param.get("nickname"), param.get("contact")); user = customerRepository.save(user); if(user == null){ diff --git a/src/main/java/com/greenpoint/server/point/controller/PointController.java b/src/main/java/com/greenpoint/server/point/controller/PointController.java index e8dadcc..171b495 100644 --- a/src/main/java/com/greenpoint/server/point/controller/PointController.java +++ b/src/main/java/com/greenpoint/server/point/controller/PointController.java @@ -8,7 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.xml.ws.Response; +//import javax.xml.ws.Response; import java.util.List; @RestController diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index e3f071b..ba1a8be 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -8,7 +8,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; -import javax.xml.ws.Response; +//import javax.xml.ws.Response; import java.util.List; @RestController diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index 9a1893e..b41faea 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -5,6 +5,7 @@ import com.greenpoint.server.history.model.History; import com.greenpoint.server.menu.model.Menu; import com.greenpoint.server.point.model.Point; +import com.greenpoint.server.storeLevel.model.StoreLevel; import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -34,6 +35,8 @@ public class Store extends BaseEntity { private double latitude; private double longitude; + @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) + private StoreLevel storeLevel; public static Store from(StoreRequest request){ return Store.builder() .loginID(request.getLoginID()) diff --git a/src/main/java/com/greenpoint/server/storeLevel/controller/StoreLevelController.java b/src/main/java/com/greenpoint/server/storeLevel/controller/StoreLevelController.java new file mode 100644 index 0000000..fd97c84 --- /dev/null +++ b/src/main/java/com/greenpoint/server/storeLevel/controller/StoreLevelController.java @@ -0,0 +1,13 @@ +package com.greenpoint.server.storeLevel.controller; + +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequiredArgsConstructor +@CrossOrigin +@RequestMapping("/api") +public class StoreLevelController { +} diff --git a/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java b/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java new file mode 100644 index 0000000..808ca68 --- /dev/null +++ b/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java @@ -0,0 +1,30 @@ +package com.greenpoint.server.storeLevel.model; + +import com.greenpoint.server.common.BaseEntity; +import lombok.*; +import org.hibernate.annotations.SQLDelete; +import org.hibernate.annotations.Where; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; + +@Entity +@Getter +@Setter +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Where(clause = "deleted = false") +@SQLDelete(sql = "UPDATE storelevel SET deleted = true Where id = ?") +public class StoreLevel extends BaseEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String name; + private String image; + private int grade; + private int lpoint; +} diff --git a/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java b/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java new file mode 100644 index 0000000..349794f --- /dev/null +++ b/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java @@ -0,0 +1,8 @@ +package com.greenpoint.server.storeLevel.repository; + +import com.greenpoint.server.storeLevel.model.StoreLevel; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface StoreLevelRepository extends JpaRepository { + +} diff --git a/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java b/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java new file mode 100644 index 0000000..76f3951 --- /dev/null +++ b/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java @@ -0,0 +1,16 @@ +package com.greenpoint.server.storeLevel.service; + +import com.greenpoint.server.storeLevel.repository.StoreLevelRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class StoreLevelService { + + @Autowired + private StoreLevelRepository storeLevelRepository; + + + + +} From 905129fb921f076cb92fc69da75e0fcf1248dd5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 27 Jan 2023 22:53:34 +0900 Subject: [PATCH 17/45] [#19] (#20) --- .../server/customer/model/Customer.java | 10 +++++++++- .../greenpoint/server/history/model/History.java | 1 + .../server/history/service/HistoryService.java | 16 +++++++++++++--- .../com/greenpoint/server/level/model/Level.java | 4 ++++ .../server/level/model/LevelRequest.java | 2 ++ .../server/level/repository/LevelRepository.java | 3 +++ .../server/level/service/LevelService.java | 4 ++++ 7 files changed, 36 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index a5e07f5..90db7fc 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -43,9 +43,14 @@ public void insertUserToken(String token){ } - public void addpoint(int savedPoint) { + public int addpoint(int savedPoint) { this.point = this.point + savedPoint; this.totalPoint = this.totalPoint + savedPoint; + int grade; + if(this.totalPoint >= 1000000) grade = 3; + else if(this.totalPoint >= 100000) grade = 2; + else grade = 1; + return grade; } public void usepoint(int usedPoint) { @@ -76,4 +81,7 @@ public static Customer from (String nickname , String contact) { } + public void upgrade(Level level) { + this.level = level; + } } diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index 0b5486b..01104c6 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -27,6 +27,7 @@ public class History extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private Store store; + private int cost; private int savedPoint; private int usedPoint; diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 509e1a1..81d2c4a 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -1,10 +1,11 @@ package com.greenpoint.server.history.service; import com.greenpoint.server.customer.model.Customer; -import com.greenpoint.server.customer.service.CustomerService; import com.greenpoint.server.history.model.History; import com.greenpoint.server.history.model.HistoryResponse; import com.greenpoint.server.history.repository.HistoryRepository; +import com.greenpoint.server.level.model.Level; +import com.greenpoint.server.level.service.LevelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,14 +18,24 @@ public class HistoryService { @Autowired private HistoryRepository historyRepository; + @Autowired + private LevelService levelService; + @Transactional public Long create(History history, Customer customer){ History res = historyRepository.save(history); - customer.addpoint(history.getSavedPoint()); + + int grade = customer.getLevel().getGrade(); customer.usepoint(history.getUsedPoint()); + int newgrade = customer.addpoint(history.getSavedPoint()); + if(newgrade > grade){ + Level level = levelService.findByGrade(newgrade); + customer.upgrade(level); + } + return res.getId(); } @@ -34,5 +45,4 @@ public List findAllById(Long customerId) { List histories = historyRepository.findAllById(customerId); return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); } - } diff --git a/src/main/java/com/greenpoint/server/level/model/Level.java b/src/main/java/com/greenpoint/server/level/model/Level.java index 49fe403..fa11a0a 100644 --- a/src/main/java/com/greenpoint/server/level/model/Level.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -21,11 +21,15 @@ public class Level extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + private int grade; + private int lpoint; private String name; private String image; public static Level from(LevelRequest request) { return Level.builder() + .grade(request.getGrade()) + .lpoint(request.getLpoint()) .name(request.getName()) .image(request.getImage()) .build(); diff --git a/src/main/java/com/greenpoint/server/level/model/LevelRequest.java b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java index e5abfc2..398b230 100644 --- a/src/main/java/com/greenpoint/server/level/model/LevelRequest.java +++ b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java @@ -9,6 +9,8 @@ @NoArgsConstructor @AllArgsConstructor public class LevelRequest { + private int grade; + private int lpoint; public String name; public String image; } diff --git a/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java index 42c766e..578379d 100644 --- a/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java +++ b/src/main/java/com/greenpoint/server/level/repository/LevelRepository.java @@ -3,6 +3,9 @@ import com.greenpoint.server.level.model.Level; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; public interface LevelRepository extends JpaRepository { + @Query("select l from Level l where l.grade = :newgrade") + Level findByGrade(int newgrade); } diff --git a/src/main/java/com/greenpoint/server/level/service/LevelService.java b/src/main/java/com/greenpoint/server/level/service/LevelService.java index 019f290..7811cfd 100644 --- a/src/main/java/com/greenpoint/server/level/service/LevelService.java +++ b/src/main/java/com/greenpoint/server/level/service/LevelService.java @@ -18,4 +18,8 @@ public Level create(Level level){ return ret; } + public Level findByGrade(int newgrade) { + Level ret = levelRepository.findByGrade(newgrade); + return ret; + } } From 733480da67da13fc7d6aaca84f1f1f67118a41e6 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 00:07:51 +0900 Subject: [PATCH 18/45] Feat/#13 (#22) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ --- .../controller/CustomerController.java | 20 +++++++++++++------ .../repository/CustomerRepository.java | 5 +++++ .../customer/service/CustomerService.java | 10 ++++++++++ .../history/controller/HistoryController.java | 7 +++++-- .../greenpoint/server/level/model/Level.java | 2 -- .../server/level/model/LevelRequest.java | 1 - .../server/level/model/LevelResponse.java | 15 ++++++++++++++ .../server/storeLevel/model/StoreLevel.java | 1 - 8 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/level/model/LevelResponse.java diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java index 9dfd848..7d65d9e 100644 --- a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -1,11 +1,14 @@ package com.greenpoint.server.customer.controller; import com.greenpoint.server.customer.model.Customer; + import com.greenpoint.server.customer.service.CustomerService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @@ -14,14 +17,19 @@ public class CustomerController { @Autowired - private CustomerService cs; + private CustomerService customerService; + @GetMapping("/readCustomer") + public ResponseEntity readCustomer(@RequestParam("token") String token) { - @GetMapping("/test") - public void print() { - System.out.println(" 들어옴! "); + Customer customer; + customer = customerService.findByToken(token); + return ResponseEntity.ok(customer); + } + @GetMapping("/readCustomerByNum") + public ResponseEntity readCustomerByNum(@RequestParam("contact") String contact) { Customer customer; - customer = cs.findById(1L); - System.out.println("customer = " + customer.getNickname()); + customer = customerService.findByContact(contact); + return ResponseEntity.ok(customer); } } diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java index 172b24f..39714ff 100644 --- a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -11,4 +11,9 @@ public interface CustomerRepository extends JpaRepository { @Query("delete from Customer where kakaoToken= :kakaoToken") public int deleteByKakaoToken(String kakaoToken); +// @Query("select m from Customer as m where m.kakaoToken = :kakaoToken") +// public Customer findByToken(String kakaoToken); + +// @Query("select m from Customer as m where m.contact = :contact") + public Customer findByContact(String contact); } diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java index ffb8f81..083a912 100644 --- a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -21,6 +21,16 @@ public Customer findById(Long id) { return ret; } + @Transactional + public Customer findByToken(String token) { + Customer customer = customerRepository.findByKakaoToken(token); + return customer; + } + @Transactional + public Customer findByContact(String contact) { + Customer customer = customerRepository.findByContact(contact); + return customer; + } } diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index f89aff6..c50fc71 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -7,6 +7,7 @@ import com.greenpoint.server.history.service.HistoryService; import com.greenpoint.server.store.model.Store; import com.greenpoint.server.store.service.StoreService; +import lombok.Getter; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; @@ -32,8 +33,6 @@ public ResponseEntity> findAllById(@PathVariable Long cust return ResponseEntity.ok(res); } - - @PostMapping(value="/history") public ResponseEntity addHistory(@RequestBody HistoryRequest request){ Customer customer = customerService.findById(request.getCustomerId()); @@ -41,5 +40,9 @@ public ResponseEntity addHistory(@RequestBody HistoryRequest request){ Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } +// @GetMapping(value="/dailyHistory") +// public ResponseEntity> readDailyHistory(@RequestParam("id") Long id){ +// +// } } diff --git a/src/main/java/com/greenpoint/server/level/model/Level.java b/src/main/java/com/greenpoint/server/level/model/Level.java index fa11a0a..014b0bd 100644 --- a/src/main/java/com/greenpoint/server/level/model/Level.java +++ b/src/main/java/com/greenpoint/server/level/model/Level.java @@ -22,14 +22,12 @@ public class Level extends BaseEntity{ @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private int grade; - private int lpoint; private String name; private String image; public static Level from(LevelRequest request) { return Level.builder() .grade(request.getGrade()) - .lpoint(request.getLpoint()) .name(request.getName()) .image(request.getImage()) .build(); diff --git a/src/main/java/com/greenpoint/server/level/model/LevelRequest.java b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java index 398b230..e890f3d 100644 --- a/src/main/java/com/greenpoint/server/level/model/LevelRequest.java +++ b/src/main/java/com/greenpoint/server/level/model/LevelRequest.java @@ -10,7 +10,6 @@ @AllArgsConstructor public class LevelRequest { private int grade; - private int lpoint; public String name; public String image; } diff --git a/src/main/java/com/greenpoint/server/level/model/LevelResponse.java b/src/main/java/com/greenpoint/server/level/model/LevelResponse.java new file mode 100644 index 0000000..5f20e5a --- /dev/null +++ b/src/main/java/com/greenpoint/server/level/model/LevelResponse.java @@ -0,0 +1,15 @@ +package com.greenpoint.server.level.model; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class LevelResponse { + private Long id; + private int grade; + private String name; + private String image; +} diff --git a/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java b/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java index 808ca68..f9f0b44 100644 --- a/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java +++ b/src/main/java/com/greenpoint/server/storeLevel/model/StoreLevel.java @@ -26,5 +26,4 @@ public class StoreLevel extends BaseEntity { private String name; private String image; private int grade; - private int lpoint; } From 80f95f0d6cef32888b9ac621475ba0de760004ab Mon Sep 17 00:00:00 2001 From: lukehongg Date: Sat, 28 Jan 2023 00:11:04 +0900 Subject: [PATCH 19/45] . --- .../com/greenpoint/server/store/repository/StoreRepository.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 3d1bcfd..cb517fb 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -4,4 +4,5 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface StoreRepository extends JpaRepository { + } From 3e0330ee6cb47adb263e7f80b24532e152241ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Sat, 28 Jan 2023 00:11:39 +0900 Subject: [PATCH 20/45] [#23] (#24) --- .../server/customer/service/CustomerService.java | 3 +++ .../server/history/controller/HistoryController.java | 6 +++--- .../com/greenpoint/server/history/model/History.java | 6 ++++++ .../server/history/model/HistoryResponse.java | 1 + .../server/history/service/HistoryService.java | 2 +- .../server/store/controller/StoreController.java | 12 ++++++++++++ .../com/greenpoint/server/store/model/Store.java | 1 + .../server/store/repository/StoreRepository.java | 6 ++++++ .../server/store/service/StoreService.java | 8 +++++++- 9 files changed, 40 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java index 083a912..e384cef 100644 --- a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -14,6 +14,9 @@ public class CustomerService { @Autowired private CustomerRepository customerRepository; + + + @Transactional public Customer findById(Long id) { // Customer ret = customerRepository.findById(id).orElseThrow(CustomerNotFoundException::new); diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index c50fc71..fe829f7 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -28,15 +28,15 @@ public class HistoryController { private CustomerService customerService; @GetMapping(value = "/history/{id}") - public ResponseEntity> findAllById(@PathVariable Long customerId){ - List res = historyService.findAllById(customerId); + public ResponseEntity> findAllById(@PathVariable Long id){ + List res = historyService.findAllById(id); return ResponseEntity.ok(res); } @PostMapping(value="/history") public ResponseEntity addHistory(@RequestBody HistoryRequest request){ Customer customer = customerService.findById(request.getCustomerId()); - Store store = storeService.findStoreById(request.getStoreId()); + Store store = storeService.findById(request.getStoreId()); Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } diff --git a/src/main/java/com/greenpoint/server/history/model/History.java b/src/main/java/com/greenpoint/server/history/model/History.java index 01104c6..e8d1559 100644 --- a/src/main/java/com/greenpoint/server/history/model/History.java +++ b/src/main/java/com/greenpoint/server/history/model/History.java @@ -3,6 +3,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.customer.model.Customer; +import com.greenpoint.server.customer.service.CustomerService; import com.greenpoint.server.store.model.Store; import lombok.*; import org.hibernate.annotations.SQLDelete; @@ -29,6 +30,7 @@ public class History extends BaseEntity { private Store store; private int cost; + private int currentPoint; private int savedPoint; private int usedPoint; @@ -43,5 +45,9 @@ public static History from(Store store, HistoryRequest request){ .build(); } + public void pointCheck(Customer customer){ + this.currentPoint = customer.getPoint(); + } + } diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java index 56c8c8a..051322e 100644 --- a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java +++ b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java @@ -25,6 +25,7 @@ public static HistoryResponse from(History history){ .storeName(history.getStore().getName()) .savedPoint(history.getSavedPoint()) .usedPoint(history.getUsedPoint()) + .currentPoint(history.getCurrentPoint()) .build(); } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 81d2c4a..6af399d 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -35,7 +35,7 @@ public Long create(History history, Customer customer){ Level level = levelService.findByGrade(newgrade); customer.upgrade(level); } - + res.pointCheck(customer); return res.getId(); } diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index ba1a8be..0d67a2c 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -25,6 +25,18 @@ public ResponseEntity> findAll(){ List res = storeService.findAll(); return ResponseEntity.ok(res); } + @GetMapping(value="/store/{id}") + public ResponseEntity findById(@PathVariable Long id){ + Store res = storeService.findById(id); + return ResponseEntity.ok(res); + } + + @GetMapping(value="/store/three/{id}") + public ResponseEntity> findThreeById(@PathVariable Long id){ + List res = storeService.findThreeById(id); + return ResponseEntity.ok(res); + } + @PostMapping(value="/store") public ResponseEntity create(@RequestBody StoreRequest request){ Store res = storeService.create(Store.from(request)); diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index b41faea..c22a2f5 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -37,6 +37,7 @@ public class Store extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private StoreLevel storeLevel; + public static Store from(StoreRequest request){ return Store.builder() .loginID(request.getLoginID()) diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 3d1bcfd..605e837 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -2,6 +2,12 @@ import com.greenpoint.server.store.model.Store; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface StoreRepository extends JpaRepository { + @Query(nativeQuery = true, value ="select s from Store s where s.id = :id order by s. LIMIT 3") + List findThreeById(Long id); +// List findTop3ByGradeOrderByStoreLevel } diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index ad43cf7..c7ef093 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -18,7 +18,7 @@ public class StoreService { @Transactional(readOnly = true) - public Store findStoreById(Long storeId) { + public Store findById(Long storeId) { Store ret = storeRepository.findById(storeId).get(); return ret; } @@ -50,4 +50,10 @@ public Store update(Long id, StoreRequest request) { private Store findOne(Long id) { return storeRepository.findById(id).get(); } + + + public List findThreeById(Long id) { + List ret = storeRepository.findThreeById(id); + return ret; + } } From d2955aedb73a6b06409c78c1a3315240787847bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Sat, 28 Jan 2023 03:36:00 +0900 Subject: [PATCH 21/45] Feat/crossorigin (#25) * . * crossorigin --- .../admin/controller/AdminController.java | 2 + .../auth/controller/UserController.java | 1 + .../controller/CustomerController.java | 6 +-- .../history/controller/HistoryController.java | 7 ++-- .../history/service/HistoryService.java | 12 ++++++ .../level/controller/LevelController.java | 6 +-- .../menu/controller/MenuController.java | 39 ++++++++++++++++++- .../greenpoint/server/menu/model/Menu.java | 22 +++++++++-- .../server/menu/model/MenuRequest.java | 15 +++++++ .../menu/repository/MenuRepository.java | 6 +++ .../server/menu/service/MenuService.java | 35 +++++++++++++++++ .../point/controller/PointController.java | 1 + .../greenpoint/server/store/model/Store.java | 14 +++++++ .../server/store/model/StoreRequest.java | 1 + .../store/repository/StoreRepository.java | 2 +- .../repository/StoreLevelRepository.java | 3 ++ .../storeLevel/service/StoreLevelService.java | 9 ++++- 17 files changed, 161 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/menu/model/MenuRequest.java diff --git a/src/main/java/com/greenpoint/server/admin/controller/AdminController.java b/src/main/java/com/greenpoint/server/admin/controller/AdminController.java index 8af23ad..a01ae09 100644 --- a/src/main/java/com/greenpoint/server/admin/controller/AdminController.java +++ b/src/main/java/com/greenpoint/server/admin/controller/AdminController.java @@ -1,11 +1,13 @@ package com.greenpoint.server.admin.controller; import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class AdminController { diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index dfc852a..657522d 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -29,6 +29,7 @@ @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class UserController { @Autowired diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java index 7d65d9e..e5c9fb1 100644 --- a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -6,13 +6,11 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class CustomerController { diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index fe829f7..8dddf1e 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -17,6 +17,7 @@ @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class HistoryController { @@ -27,9 +28,9 @@ public class HistoryController { @Autowired private CustomerService customerService; - @GetMapping(value = "/history/{id}") - public ResponseEntity> findAllById(@PathVariable Long id){ - List res = historyService.findAllById(id); + @GetMapping(value = "/history/{cid}") + public ResponseEntity> findAllById(@PathVariable Long cid){ + List res = historyService.findAllById(cid); return ResponseEntity.ok(res); } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 6af399d..1196620 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -6,6 +6,8 @@ import com.greenpoint.server.history.repository.HistoryRepository; import com.greenpoint.server.level.model.Level; import com.greenpoint.server.level.service.LevelService; +import com.greenpoint.server.storeLevel.model.StoreLevel; +import com.greenpoint.server.storeLevel.service.StoreLevelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +23,9 @@ public class HistoryService { @Autowired private LevelService levelService; + @Autowired + private StoreLevelService storeLevelService; + @@ -36,6 +41,13 @@ public Long create(History history, Customer customer){ customer.upgrade(level); } res.pointCheck(customer); + + int before = res.getStore().getStoreLevel().getGrade(); + int after = res.getStore().pointUp(history.getSavedPoint()); + if(after > before) { + StoreLevel level = storeLevelService.findByGrade(after); + history.getStore().gradeChange(level); + } return res.getId(); } diff --git a/src/main/java/com/greenpoint/server/level/controller/LevelController.java b/src/main/java/com/greenpoint/server/level/controller/LevelController.java index 7410af7..78d5a7d 100644 --- a/src/main/java/com/greenpoint/server/level/controller/LevelController.java +++ b/src/main/java/com/greenpoint/server/level/controller/LevelController.java @@ -6,13 +6,11 @@ import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class LevelController { diff --git a/src/main/java/com/greenpoint/server/menu/controller/MenuController.java b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java index 089f801..a31703a 100644 --- a/src/main/java/com/greenpoint/server/menu/controller/MenuController.java +++ b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java @@ -1,12 +1,47 @@ package com.greenpoint.server.menu.controller; +import com.greenpoint.server.menu.model.Menu; +import com.greenpoint.server.menu.model.MenuRequest; +import com.greenpoint.server.menu.service.MenuService; import lombok.RequiredArgsConstructor; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class MenuController { + @Autowired + private MenuService menuService; + + + @GetMapping("/menu/{id}") + public ResponseEntity> findByStoreId(@PathVariable Long id){ + List res = menuService.findByStoreId(id); + return ResponseEntity.ok(res); + } + + @PostMapping("/menu/{id}") + public ResponseEntity create(@PathVariable Long id, @RequestBody MenuRequest request){ + Menu res = menuService.create(Menu.from(id, request)); + return ResponseEntity.ok(res); + } + + @PatchMapping("/menu/{id}") + public ResponseEntity update(@PathVariable Long id, @RequestBody MenuRequest request){ + Menu res = menuService.update(id, request); + return ResponseEntity.ok(res); + } + + @DeleteMapping("/menu/{id}") + public void delete(@PathVariable Long id){ + menuService.delete(id); + } + + } diff --git a/src/main/java/com/greenpoint/server/menu/model/Menu.java b/src/main/java/com/greenpoint/server/menu/model/Menu.java index 68c91df..42f1c2f 100644 --- a/src/main/java/com/greenpoint/server/menu/model/Menu.java +++ b/src/main/java/com/greenpoint/server/menu/model/Menu.java @@ -2,10 +2,7 @@ import com.greenpoint.server.common.BaseEntity; import com.greenpoint.server.store.model.Store; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; +import lombok.*; import org.hibernate.annotations.SQLDelete; import org.hibernate.annotations.Where; @@ -14,6 +11,7 @@ @Entity @Getter @Setter +@Builder @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") @@ -31,4 +29,20 @@ public class Menu extends BaseEntity{ private String name; private String image; private int price; + + + public static Menu from(Long sid, MenuRequest request){ + return Menu.builder() + .storeId(sid) + .name(request.getName()) + .image(request.getImage()) + .price( request.getPrice()) + .build(); + } + + public void update(MenuRequest request) { + this.name = request.getName(); + this.price = request.getPrice(); + this.image = request.getImage(); + } } diff --git a/src/main/java/com/greenpoint/server/menu/model/MenuRequest.java b/src/main/java/com/greenpoint/server/menu/model/MenuRequest.java new file mode 100644 index 0000000..4ef4a95 --- /dev/null +++ b/src/main/java/com/greenpoint/server/menu/model/MenuRequest.java @@ -0,0 +1,15 @@ +package com.greenpoint.server.menu.model; + + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@NoArgsConstructor +@AllArgsConstructor +public class MenuRequest { + private String name; + private String image; + private int price; +} diff --git a/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java index 1030b61..16831a3 100644 --- a/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java +++ b/src/main/java/com/greenpoint/server/menu/repository/MenuRepository.java @@ -3,6 +3,12 @@ import com.greenpoint.server.menu.model.Menu; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; public interface MenuRepository extends JpaRepository { + + @Query("select m from Menu m where m.storeId = :sid") + List findByStoreId(Long sid); } diff --git a/src/main/java/com/greenpoint/server/menu/service/MenuService.java b/src/main/java/com/greenpoint/server/menu/service/MenuService.java index 232cbd3..3b6edbe 100644 --- a/src/main/java/com/greenpoint/server/menu/service/MenuService.java +++ b/src/main/java/com/greenpoint/server/menu/service/MenuService.java @@ -1,7 +1,42 @@ package com.greenpoint.server.menu.service; +import com.greenpoint.server.menu.model.Menu; +import com.greenpoint.server.menu.model.MenuRequest; +import com.greenpoint.server.menu.repository.MenuRepository; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; @Service public class MenuService { + + @Autowired + private MenuRepository menuRepository; + + + @Transactional + public void delete(Long menuid) { + menuRepository.deleteById(menuid); + } + + @Transactional + public Menu update(Long menuid, MenuRequest request) { + Menu menu = menuRepository.findById(menuid).get(); + menu.update(request); + return menu; + } + + @Transactional + public Menu create(Menu from) { + Menu ret = menuRepository.save(from); + return ret; + } + + @Transactional(readOnly = true) + public List findByStoreId(Long storeid) { + List ret = menuRepository.findByStoreId(storeid); + return ret; + } } diff --git a/src/main/java/com/greenpoint/server/point/controller/PointController.java b/src/main/java/com/greenpoint/server/point/controller/PointController.java index 171b495..029d30d 100644 --- a/src/main/java/com/greenpoint/server/point/controller/PointController.java +++ b/src/main/java/com/greenpoint/server/point/controller/PointController.java @@ -13,6 +13,7 @@ @RestController @RequiredArgsConstructor +@CrossOrigin @RequestMapping("/api") public class PointController { diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index c22a2f5..e9b3ee9 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -37,6 +37,7 @@ public class Store extends BaseEntity { @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) private StoreLevel storeLevel; + private int totalPoint; public static Store from(StoreRequest request){ return Store.builder() @@ -47,6 +48,7 @@ public static Store from(StoreRequest request){ .image(request.getImage()) .latitude(request.getLatitude()) .longitude(request.getLongitude()) + .totalPoint(request.getTotalPoint()) .build(); } @@ -60,4 +62,16 @@ public void update(StoreRequest request) { this.latitude = request.getLatitude(); this.longitude = request.getLongitude(); } + public int pointUp(int n){ + this.totalPoint = this.totalPoint + n; + int ret = 0; + if(this.totalPoint >= 1000000) ret = 3; + else if(this.totalPoint >= 100000) ret = 2; + else ret = 1; + return ret; + } + + public void gradeChange(StoreLevel level) { + this.storeLevel = level; + } } diff --git a/src/main/java/com/greenpoint/server/store/model/StoreRequest.java b/src/main/java/com/greenpoint/server/store/model/StoreRequest.java index 0825d1a..a4745d1 100644 --- a/src/main/java/com/greenpoint/server/store/model/StoreRequest.java +++ b/src/main/java/com/greenpoint/server/store/model/StoreRequest.java @@ -15,4 +15,5 @@ public class StoreRequest { private String image; private double latitude; private double longitude; + private int totalPoint; } diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 605e837..8bcceda 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -7,7 +7,7 @@ import java.util.List; public interface StoreRepository extends JpaRepository { + @Query(nativeQuery = true, value ="select s from Store s where s.id = :id order by s. LIMIT 3") List findThreeById(Long id); -// List findTop3ByGradeOrderByStoreLevel } diff --git a/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java b/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java index 349794f..bb856dc 100644 --- a/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java +++ b/src/main/java/com/greenpoint/server/storeLevel/repository/StoreLevelRepository.java @@ -2,7 +2,10 @@ import com.greenpoint.server.storeLevel.model.StoreLevel; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; public interface StoreLevelRepository extends JpaRepository { + @Query("select s from StoreLevel s where s.grade = :after") + StoreLevel findByGrade(int after); } diff --git a/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java b/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java index 76f3951..d658278 100644 --- a/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java +++ b/src/main/java/com/greenpoint/server/storeLevel/service/StoreLevelService.java @@ -1,8 +1,10 @@ package com.greenpoint.server.storeLevel.service; +import com.greenpoint.server.storeLevel.model.StoreLevel; import com.greenpoint.server.storeLevel.repository.StoreLevelRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; @Service public class StoreLevelService { @@ -11,6 +13,9 @@ public class StoreLevelService { private StoreLevelRepository storeLevelRepository; - - + @Transactional + public StoreLevel findByGrade(int after) { + StoreLevel storeLevel = storeLevelRepository.findByGrade(after); + return storeLevel; + } } From 1efefb23ad62fe555a027da2e68a13ea9b080bf1 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 03:39:43 +0900 Subject: [PATCH 22/45] Feat/#13 (#26) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 --- .../auth/controller/UserController.java | 10 ++++---- .../server/auth/response/LoginResponse.java | 1 + .../server/auth/service/UserService.java | 23 +++++++++++-------- .../controller/CustomerController.java | 10 +++++--- .../server/customer/model/Customer.java | 13 ++++++++++- .../repository/CustomerRepository.java | 6 +++-- .../customer/service/CustomerService.java | 7 ++---- .../history/controller/HistoryController.java | 9 ++++---- .../history/model/HistoryCntResponse.java | 23 +++++++++++++++++++ .../history/repository/HistoryRepository.java | 4 ++++ .../history/service/HistoryService.java | 8 +++++++ 11 files changed, 86 insertions(+), 28 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/history/model/HistoryCntResponse.java diff --git a/src/main/java/com/greenpoint/server/auth/controller/UserController.java b/src/main/java/com/greenpoint/server/auth/controller/UserController.java index 657522d..4eb2830 100644 --- a/src/main/java/com/greenpoint/server/auth/controller/UserController.java +++ b/src/main/java/com/greenpoint/server/auth/controller/UserController.java @@ -11,6 +11,7 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; @@ -45,7 +46,7 @@ public ResponseEntity getLogin(@RequestParam("code") String code) System.out.println("obArr = " + obArr); userInfo = (Customer) obArr[0]; isRegistered = (boolean) obArr[1]; - LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); + LoginResponse loginResponse = new LoginResponse(userInfo.getKakaoId(), userInfo.getKakaoToken(), userInfo.getNickname(), userInfo.getImage(), isRegistered); return ResponseEntity.ok(loginResponse); } @@ -62,15 +63,16 @@ public ResponseEntity makeAccount(@RequestBody HashMap param) { } - public int memberDelete(String token) { - int result = customerRepository.deleteByKakaoToken(token); + public int memberDelete(Long id) { + int result = customerRepository.deleteByKakaoId(id); return result; } diff --git a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java index e5c9fb1..07c5239 100644 --- a/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java +++ b/src/main/java/com/greenpoint/server/customer/controller/CustomerController.java @@ -1,11 +1,15 @@ package com.greenpoint.server.customer.controller; import com.greenpoint.server.customer.model.Customer; - import com.greenpoint.server.customer.service.CustomerService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @@ -17,10 +21,10 @@ public class CustomerController { @Autowired private CustomerService customerService; @GetMapping("/readCustomer") - public ResponseEntity readCustomer(@RequestParam("token") String token) { + public ResponseEntity readCustomer(@RequestParam("id") Long id) { Customer customer; - customer = customerService.findByToken(token); + customer = customerService.findByKakaoId(id); return ResponseEntity.ok(customer); } diff --git a/src/main/java/com/greenpoint/server/customer/model/Customer.java b/src/main/java/com/greenpoint/server/customer/model/Customer.java index 90db7fc..80cfed2 100644 --- a/src/main/java/com/greenpoint/server/customer/model/Customer.java +++ b/src/main/java/com/greenpoint/server/customer/model/Customer.java @@ -16,13 +16,16 @@ @NoArgsConstructor @AllArgsConstructor @Where(clause = "deleted = false") -@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") +//@SQLDelete(sql = "UPDATE customer SET deleted = true Where id = ?") public class Customer extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; + @Column(unique = true) + private Long kakaoId; + @Column(unique = true) private String kakaoToken; @@ -73,6 +76,14 @@ public static Customer from (String token, String nickname, String image) { .image(image) .build(); } + public static Customer from (Long id, String token, String nickname, String image) { + return Customer.builder() + .kakaoId(id) + .kakaoToken(token) + .nickname(nickname) + .image(image) + .build(); + } public static Customer from (String nickname , String contact) { return Customer.builder() .nickname(nickname) diff --git a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java index 39714ff..34fee24 100644 --- a/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java +++ b/src/main/java/com/greenpoint/server/customer/repository/CustomerRepository.java @@ -8,12 +8,14 @@ public interface CustomerRepository extends JpaRepository { public Customer findByKakaoToken(String kakaoToken); - @Query("delete from Customer where kakaoToken= :kakaoToken") - public int deleteByKakaoToken(String kakaoToken); +// @Query("delete from Customer as c where c.kakaoId= :kakao_id") + public int deleteByKakaoId(Long kakaoId); // @Query("select m from Customer as m where m.kakaoToken = :kakaoToken") // public Customer findByToken(String kakaoToken); // @Query("select m from Customer as m where m.contact = :contact") public Customer findByContact(String contact); + + public Customer findByKakaoId(Long id); } diff --git a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java index e384cef..6f9071c 100644 --- a/src/main/java/com/greenpoint/server/customer/service/CustomerService.java +++ b/src/main/java/com/greenpoint/server/customer/service/CustomerService.java @@ -14,9 +14,6 @@ public class CustomerService { @Autowired private CustomerRepository customerRepository; - - - @Transactional public Customer findById(Long id) { // Customer ret = customerRepository.findById(id).orElseThrow(CustomerNotFoundException::new); @@ -25,8 +22,8 @@ public Customer findById(Long id) { } @Transactional - public Customer findByToken(String token) { - Customer customer = customerRepository.findByKakaoToken(token); + public Customer findByKakaoId(Long kakaoId) { + Customer customer = customerRepository.findByKakaoId(kakaoId); return customer; } diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index 8dddf1e..a244773 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -41,9 +41,10 @@ public ResponseEntity addHistory(@RequestBody HistoryRequest request){ Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } -// @GetMapping(value="/dailyHistory") -// public ResponseEntity> readDailyHistory(@RequestParam("id") Long id){ -// -// } + @GetMapping(value="/dailyHistory") + public List readDailyHistory(@RequestParam("customerId") Long customerId){ + List histories = historyService.findDailyHistory(customerId); + return histories; + } } diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryCntResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryCntResponse.java new file mode 100644 index 0000000..5522d86 --- /dev/null +++ b/src/main/java/com/greenpoint/server/history/model/HistoryCntResponse.java @@ -0,0 +1,23 @@ +package com.greenpoint.server.history.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class HistoryCntResponse { + Integer dayCnt; + + public static HistoryCntResponse from(Integer cnt){ + return HistoryCntResponse.builder() + .dayCnt(cnt) + .build(); + + } +} + + diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 05cef3d..05ce448 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -13,4 +13,8 @@ public interface HistoryRepository extends JpaRepository { @Query("select h from History h where h.customerId = :cid") List findAllById(Long cid); + + @Query("select count(h.id) as cnt from History h where h.id = :customerId group by h.created_at o") + SELECT DATE(created_at), COUNT(Id) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc; + List findDailyHistory(Long customerId); } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 1196620..fbc9c37 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -2,6 +2,7 @@ import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.history.model.History; +import com.greenpoint.server.history.model.HistoryCntResponse; import com.greenpoint.server.history.model.HistoryResponse; import com.greenpoint.server.history.repository.HistoryRepository; import com.greenpoint.server.level.model.Level; @@ -57,4 +58,11 @@ public List findAllById(Long customerId) { List histories = historyRepository.findAllById(customerId); return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); } + + @Transactional + public List findDailyHistory(Long customerId) { + List histories = historyRepository.findDailyHistory(customerId); + System.out.println("histories = " + histories); + return histories; + } } From 4993bb4820b6e213aa8d1eec151bb9b1f04d0a9f Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 05:14:29 +0900 Subject: [PATCH 23/45] Feat/#13 (#27) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 From 4c3771ffa4b00bdfb62678a04edd86eacac7a722 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Sat, 28 Jan 2023 05:19:53 +0900 Subject: [PATCH 24/45] Feat/merge (#28) * . * merge * merged --- .DS_Store | Bin 0 -> 6148 bytes .../history/controller/HistoryController.java | 17 +++++++++--- .../history/repository/HistoryRepository.java | 17 +++++++++--- .../history/service/HistoryService.java | 22 ++++++++++++--- .../menu/controller/MenuController.java | 24 ++++++++--------- .../store/controller/StoreController.java | 25 ++++++++---------- .../store/repository/StoreRepository.java | 4 +-- .../server/store/service/StoreService.java | 8 +++--- 8 files changed, 74 insertions(+), 43 deletions(-) create mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..e2bd63d68f55618736874a94d3ff2a65f5ce5ca2 GIT binary patch literal 6148 zcmeHK%Sr=55UkcH0WUdvoL}${mXLfwen8`j2nzuv_dVsi{4}c{mt_&-!HcPeo|@_D znqlg&y$!(D$Nm9W0a(%tBN>UoYD6m&%^$37`QyooO^>kj(Ed>3I7(a zc*hfZZoK^Z;Pb9mmK2ZzQa}nwfs0e1iuCgC;$E%?O93hHlLG#IXmrP}a7>I(2Zv|@ zhzo|pIFDX}*gQb&3dcl7XqHrBQmtAHOFHAN^18w?G3l_lndj8aRvn7P?Toibhjob> zrGONeDsY|4mDm3*{hR)OO43RSNP&N)fGsw=&6-cD+B$oj*V;yZq addHistory(@RequestBody HistoryRequest request){ Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } - @GetMapping(value="/dailyHistory") - public List readDailyHistory(@RequestParam("customerId") Long customerId){ - List histories = historyService.findDailyHistory(customerId); - return histories; + + @GetMapping(value="/history/three/{cid}") + public ResponseEntity> findThreeByCID(@PathVariable Long cid){ + List res = historyService.findThreeByCID(cid); + return ResponseEntity.ok(res); } + +// @GetMapping(value="/dailyHistory") +// public List readDailyHistory(@RequestParam("customerId") Long customerId){ +// List histories = historyService.findDailyHistory(customerId); +// return histories; +// } + + } diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 05ce448..19ae17c 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -6,15 +6,26 @@ import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import java.util.Arrays; import java.util.List; public interface HistoryRepository extends JpaRepository { + + @Query("select h from History h where h.customerId = :cid") List findAllById(Long cid); - @Query("select count(h.id) as cnt from History h where h.id = :customerId group by h.created_at o") - SELECT DATE(created_at), COUNT(Id) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc; - List findDailyHistory(Long customerId); + +// @Query("select h from History h where h.customerId = :cid order by h.created_at desc") +// List findThreeById(Long cid); + + + +// @Query("select count(h.id) as cnt from History h where h.id = :customerId group by h.created_at o") +// SELECT DATE(created_at), COUNT(Id) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc; +// List findDailyHistory(Long customerId); + } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index fbc9c37..8fb1656 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -12,6 +12,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import java.util.List; import java.util.stream.Collectors; @@ -27,6 +30,9 @@ public class HistoryService { @Autowired private StoreLevelService storeLevelService; + @PersistenceContext + private EntityManager em; + @@ -60,9 +66,17 @@ public List findAllById(Long customerId) { } @Transactional - public List findDailyHistory(Long customerId) { - List histories = historyRepository.findDailyHistory(customerId); - System.out.println("histories = " + histories); - return histories; + public List findThreeByCID(Long cid) { + List histories = em.createQuery("select h from History h where h.customerId = " + cid + " order by h.created_at desc").setMaxResults(3).getResultList(); + return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); } + + +// @Transactional +// public List findDailyHistory(Long customerId) { +// List histories = historyRepository.findDailyHistory(customerId); +// System.out.println("histories = " + histories); +// return histories; +// } + } diff --git a/src/main/java/com/greenpoint/server/menu/controller/MenuController.java b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java index a31703a..9898e00 100644 --- a/src/main/java/com/greenpoint/server/menu/controller/MenuController.java +++ b/src/main/java/com/greenpoint/server/menu/controller/MenuController.java @@ -20,27 +20,27 @@ public class MenuController { private MenuService menuService; - @GetMapping("/menu/{id}") - public ResponseEntity> findByStoreId(@PathVariable Long id){ - List res = menuService.findByStoreId(id); + @GetMapping("/menu/{sid}") + public ResponseEntity> findByStoreId(@PathVariable Long sid){ + List res = menuService.findByStoreId(sid); return ResponseEntity.ok(res); } - @PostMapping("/menu/{id}") - public ResponseEntity create(@PathVariable Long id, @RequestBody MenuRequest request){ - Menu res = menuService.create(Menu.from(id, request)); + @PostMapping("/menu/{sid}") + public ResponseEntity create(@PathVariable Long sid, @RequestBody MenuRequest request){ + Menu res = menuService.create(Menu.from(sid, request)); return ResponseEntity.ok(res); } - @PatchMapping("/menu/{id}") - public ResponseEntity update(@PathVariable Long id, @RequestBody MenuRequest request){ - Menu res = menuService.update(id, request); + @PatchMapping("/menu/{mid}") + public ResponseEntity update(@PathVariable Long mid, @RequestBody MenuRequest request){ + Menu res = menuService.update(mid, request); return ResponseEntity.ok(res); } - @DeleteMapping("/menu/{id}") - public void delete(@PathVariable Long id){ - menuService.delete(id); + @DeleteMapping("/menu/{mid}") + public void delete(@PathVariable Long mid){ + menuService.delete(mid); } diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index 0d67a2c..186b8e7 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -31,28 +31,25 @@ public ResponseEntity findById(@PathVariable Long id){ return ResponseEntity.ok(res); } - @GetMapping(value="/store/three/{id}") - public ResponseEntity> findThreeById(@PathVariable Long id){ - List res = storeService.findThreeById(id); - return ResponseEntity.ok(res); - } +// @GetMapping(value="/store/three/{id}") +// public ResponseEntity> findThreeById(@PathVariable Long id){ +// List res = storeService.findThreeById(id); +// return ResponseEntity.ok(res); +// } @PostMapping(value="/store") public ResponseEntity create(@RequestBody StoreRequest request){ Store res = storeService.create(Store.from(request)); return ResponseEntity.ok(res); } - @PatchMapping(value="/store/{id}") - public ResponseEntity update(@PathVariable Long id, @RequestBody StoreRequest request){ - Store res = storeService.update(id, request); + @PatchMapping(value="/store/{sid}") + public ResponseEntity update(@PathVariable Long sid, @RequestBody StoreRequest request){ + Store res = storeService.update(sid, request); return ResponseEntity.ok(res); } - @DeleteMapping(value="/store/{id}") - public void delete(@PathVariable Long id){ - storeService.delete(id); + @DeleteMapping(value="/store/{sid}") + public void delete(@PathVariable Long sid){ + storeService.delete(sid); } - - - } diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 8bcceda..09132f1 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -8,6 +8,6 @@ public interface StoreRepository extends JpaRepository { - @Query(nativeQuery = true, value ="select s from Store s where s.id = :id order by s. LIMIT 3") - List findThreeById(Long id); +// @Query(nativeQuery = true, value ="select s from Store s where s.id = :id order by s. LIMIT 3") +// List findThreeById(Long id); } diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index c7ef093..cae4e2a 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -52,8 +52,8 @@ private Store findOne(Long id) { } - public List findThreeById(Long id) { - List ret = storeRepository.findThreeById(id); - return ret; - } +// public List findThreeById(Long id) { +// List ret = storeRepository.findThreeById(id); +// return ret; +// } } From a82c641ad20d9844d2cc2d8ed9e1a77d07b569a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Sat, 28 Jan 2023 06:41:21 +0900 Subject: [PATCH 25/45] Feat/merge2 (#29) * . * merge2 --- .../server/history/model/HistoryResponse.java | 9 +++++ .../history/repository/HistoryRepository.java | 2 +- .../point/repository/PointRepository.java | 4 ++ .../server/point/service/PointService.java | 6 +++ .../store/controller/StoreController.java | 11 ++---- .../greenpoint/server/store/model/Store.java | 1 + .../store/model/StoreClientResponse.java | 39 +++++++++++++++++++ .../store/repository/StoreRepository.java | 2 + .../server/store/service/StoreService.java | 16 +++++++- 9 files changed, 79 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/greenpoint/server/store/model/StoreClientResponse.java diff --git a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java index 051322e..a46b91b 100644 --- a/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java +++ b/src/main/java/com/greenpoint/server/history/model/HistoryResponse.java @@ -1,11 +1,14 @@ package com.greenpoint.server.history.model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; +import java.time.LocalDateTime; + @Getter @Builder @@ -17,6 +20,10 @@ public class HistoryResponse { private int savedPoint; private int usedPoint; private int currentPoint; + private String image; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Seoul") + private LocalDateTime created_at; @@ -26,6 +33,8 @@ public static HistoryResponse from(History history){ .savedPoint(history.getSavedPoint()) .usedPoint(history.getUsedPoint()) .currentPoint(history.getCurrentPoint()) + .image(history.getStore().getImage()) + .created_at(history.getCreated_at()) .build(); } diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 19ae17c..9f48037 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -15,7 +15,7 @@ public interface HistoryRepository extends JpaRepository { - @Query("select h from History h where h.customerId = :cid") + @Query("select h from History h where h.customerId = :cid order by h.created_at desc") List findAllById(Long cid); diff --git a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java index 7dbbc3b..7ebde9e 100644 --- a/src/main/java/com/greenpoint/server/point/repository/PointRepository.java +++ b/src/main/java/com/greenpoint/server/point/repository/PointRepository.java @@ -4,11 +4,15 @@ import com.greenpoint.server.point.model.Point; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface PointRepository extends JpaRepository { @Query("select p from Point p where p.storeId = :sid") List findAllByStore(Long sid); + @Query("select sum(p.weight) from Point p where p.storeId = :sid group by p.storeId") + int findMaxPointByStore(Long sid); } diff --git a/src/main/java/com/greenpoint/server/point/service/PointService.java b/src/main/java/com/greenpoint/server/point/service/PointService.java index 2ba4c84..909bd23 100644 --- a/src/main/java/com/greenpoint/server/point/service/PointService.java +++ b/src/main/java/com/greenpoint/server/point/service/PointService.java @@ -45,4 +45,10 @@ public List findAllByStore(Long storeid) { List res = pointRepository.findAllByStore(storeid); return res; } + + + public int findMaxPointByStore(Long storeid) { + int ret = pointRepository.findMaxPointByStore(storeid); + return ret; + } } diff --git a/src/main/java/com/greenpoint/server/store/controller/StoreController.java b/src/main/java/com/greenpoint/server/store/controller/StoreController.java index 186b8e7..afa58a3 100644 --- a/src/main/java/com/greenpoint/server/store/controller/StoreController.java +++ b/src/main/java/com/greenpoint/server/store/controller/StoreController.java @@ -1,6 +1,7 @@ package com.greenpoint.server.store.controller; import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.model.StoreClientResponse; import com.greenpoint.server.store.model.StoreRequest; import com.greenpoint.server.store.service.StoreService; import lombok.RequiredArgsConstructor; @@ -21,8 +22,8 @@ public class StoreController { private StoreService storeService; @GetMapping(value="/store") - public ResponseEntity> findAll(){ - List res = storeService.findAll(); + public ResponseEntity> findAll(){ + List res = storeService.findAll(); return ResponseEntity.ok(res); } @GetMapping(value="/store/{id}") @@ -31,12 +32,6 @@ public ResponseEntity findById(@PathVariable Long id){ return ResponseEntity.ok(res); } -// @GetMapping(value="/store/three/{id}") -// public ResponseEntity> findThreeById(@PathVariable Long id){ -// List res = storeService.findThreeById(id); -// return ResponseEntity.ok(res); -// } - @PostMapping(value="/store") public ResponseEntity create(@RequestBody StoreRequest request){ Store res = storeService.create(Store.from(request)); diff --git a/src/main/java/com/greenpoint/server/store/model/Store.java b/src/main/java/com/greenpoint/server/store/model/Store.java index e9b3ee9..cd5d0ea 100644 --- a/src/main/java/com/greenpoint/server/store/model/Store.java +++ b/src/main/java/com/greenpoint/server/store/model/Store.java @@ -39,6 +39,7 @@ public class Store extends BaseEntity { private StoreLevel storeLevel; private int totalPoint; + public static Store from(StoreRequest request){ return Store.builder() .loginID(request.getLoginID()) diff --git a/src/main/java/com/greenpoint/server/store/model/StoreClientResponse.java b/src/main/java/com/greenpoint/server/store/model/StoreClientResponse.java new file mode 100644 index 0000000..a1bda42 --- /dev/null +++ b/src/main/java/com/greenpoint/server/store/model/StoreClientResponse.java @@ -0,0 +1,39 @@ +package com.greenpoint.server.store.model; + +import com.greenpoint.server.point.service.PointService; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; + +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class StoreClientResponse { + + + private Long storeId; + private String category; + private String name; + private String image; + private double latitude; + private double longitude; + private int maximumPoint; + + public static StoreClientResponse from(Store store){ + return StoreClientResponse.builder() + .storeId(store.getId()) + .category(store.getCategory()) + .name(store.getName()) + .image(store.getImage()) + .latitude(store.getLatitude()) + .longitude(store.getLongitude()) + .build(); + } + public void maxp(int n){ + this.maximumPoint = n; + } + +} diff --git a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java index 09132f1..ad7dfa5 100644 --- a/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java +++ b/src/main/java/com/greenpoint/server/store/repository/StoreRepository.java @@ -3,9 +3,11 @@ import com.greenpoint.server.store.model.Store; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; import java.util.List; +@Repository public interface StoreRepository extends JpaRepository { // @Query(nativeQuery = true, value ="select s from Store s where s.id = :id order by s. LIMIT 3") diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index cae4e2a..68ff684 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -1,13 +1,16 @@ package com.greenpoint.server.store.service; import com.greenpoint.server.exception.GlobalException; +import com.greenpoint.server.point.service.PointService; import com.greenpoint.server.store.model.Store; +import com.greenpoint.server.store.model.StoreClientResponse; import com.greenpoint.server.store.model.StoreRequest; import com.greenpoint.server.store.repository.StoreRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.stream.Collectors; @Service @@ -16,6 +19,9 @@ public class StoreService { @Autowired private StoreRepository storeRepository; + @Autowired + private PointService pointService; + @Transactional(readOnly = true) public Store findById(Long storeId) { @@ -24,11 +30,17 @@ public Store findById(Long storeId) { } @Transactional(readOnly = true) - public List findAll() { - List ret = storeRepository.findAll(); + public List findAll() { + List stores = storeRepository.findAll(); + List ret = stores.stream().map(StoreClientResponse::from).collect(Collectors.toList()); + for(int i=0; i Date: Sat, 28 Jan 2023 07:44:29 +0900 Subject: [PATCH 26/45] Feat/merge3 (#30) * . * merge3 --- .../server/history/service/HistoryService.java | 2 +- .../greenpoint/server/point/service/PointService.java | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 8fb1656..0cde696 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -67,7 +67,7 @@ public List findAllById(Long customerId) { @Transactional public List findThreeByCID(Long cid) { - List histories = em.createQuery("select h from History h where h.customerId = " + cid + " order by h.created_at desc").setMaxResults(3).getResultList(); + List histories = em.createQuery("select h from History h where h.customerId = " + cid + " and h.savedPoint != " + 0 + " order by h.created_at desc").setMaxResults(3).getResultList(); return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); } diff --git a/src/main/java/com/greenpoint/server/point/service/PointService.java b/src/main/java/com/greenpoint/server/point/service/PointService.java index 909bd23..250f751 100644 --- a/src/main/java/com/greenpoint/server/point/service/PointService.java +++ b/src/main/java/com/greenpoint/server/point/service/PointService.java @@ -48,7 +48,14 @@ public List findAllByStore(Long storeid) { public int findMaxPointByStore(Long storeid) { - int ret = pointRepository.findMaxPointByStore(storeid); + int ret = 0; + try{ + ret = pointRepository.findMaxPointByStore(storeid); + } + catch(Exception e){ + ret = 0; + return ret; + } return ret; } } From b15bead658da08c894926214fea5f05d5db43752 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 07:47:09 +0900 Subject: [PATCH 27/45] Feat/#13 (#31) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 --- .../history/controller/HistoryController.java | 6 ++ .../history/repository/HistoryRepository.java | 19 +++--- .../history/service/HistoryService.java | 61 +++++++++++++++++++ 3 files changed, 76 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java index 8c760fa..1f98f8b 100644 --- a/src/main/java/com/greenpoint/server/history/controller/HistoryController.java +++ b/src/main/java/com/greenpoint/server/history/controller/HistoryController.java @@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import java.text.ParseException; import java.util.List; @RestController @@ -41,6 +42,11 @@ public ResponseEntity addHistory(@RequestBody HistoryRequest request){ Long res = historyService.create(History.from(store, request), customer); return ResponseEntity.ok(res); } + @GetMapping(value="/dailyHistory") + public int[] readDailyHistory(@RequestParam("customerId") Long customerId) throws ParseException { + int[] arr = historyService.findDailyHistory(customerId); + return arr; + } @GetMapping(value="/history/three/{cid}") public ResponseEntity> findThreeByCID(@PathVariable Long cid){ diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 9f48037..1c0ff17 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -10,22 +10,21 @@ import javax.persistence.PersistenceContext; import java.util.Arrays; import java.util.List; +import java.util.Map; public interface HistoryRepository extends JpaRepository { - - - @Query("select h from History h where h.customerId = :cid order by h.created_at desc") + @Query("select h from History h where h.customerId = :cid") List findAllById(Long cid); -// @Query("select h from History h where h.customerId = :cid order by h.created_at desc") -// List findThreeById(Long cid); - - + @Query(nativeQuery = true, value="SELECT DATE(created_at) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc limit 1") + String findMaxDate(Long customerId); -// @Query("select count(h.id) as cnt from History h where h.id = :customerId group by h.created_at o") -// SELECT DATE(created_at), COUNT(Id) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc; -// List findDailyHistory(Long customerId); + @Query(nativeQuery= true, value ="SELECT DATE(created_at) FROM history where not created_at is Null GROUP BY DATE(created_at) order by DATE(created_at) limit 1") + String findMinDate(Long customerId); + @Query(nativeQuery = true, value="SELECT DATE(created_at) ,COUNT(Id) FROM history where Date(created_at) is not null GROUP BY DATE(created_at) order by DATE(created_at)") +// List findExistDate(Long customerId); + List findExistDate(Long customerId); } diff --git a/src/main/java/com/greenpoint/server/history/service/HistoryService.java b/src/main/java/com/greenpoint/server/history/service/HistoryService.java index 0cde696..67a8be6 100644 --- a/src/main/java/com/greenpoint/server/history/service/HistoryService.java +++ b/src/main/java/com/greenpoint/server/history/service/HistoryService.java @@ -1,5 +1,7 @@ package com.greenpoint.server.history.service; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.history.model.History; import com.greenpoint.server.history.model.HistoryCntResponse; @@ -9,14 +11,22 @@ import com.greenpoint.server.level.service.LevelService; import com.greenpoint.server.storeLevel.model.StoreLevel; import com.greenpoint.server.storeLevel.service.StoreLevelService; +import com.sun.org.apache.xpath.internal.operations.Mult; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import java.util.List; import java.util.stream.Collectors; +import java.util.Map.Entry; @Service public class HistoryService { @@ -65,6 +75,57 @@ public List findAllById(Long customerId) { return histories.stream().map(HistoryResponse::from).collect(Collectors.toList()); } + @Transactional + public int[] findDailyHistory(Long customerId) throws ParseException { + String maxDate = historyRepository.findMaxDate(customerId); + String minDate = historyRepository.findMinDate(customerId); + List existDate = historyRepository.findExistDate(customerId); + + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + Date max_date = formatter.parse(maxDate); + System.out.println("max_date = " + max_date); + Date min_date = formatter.parse(minDate); + System.out.println("min_date = " + min_date); + long diffSec = (max_date.getTime() - min_date.getTime()) / 1000; + long diffDays = diffSec / (24*60*60); // 일자수 차이 + System.out.println("diffDays = " + diffDays); + + Map existDateList = new HashMap<>(); + for(String value : existDate){ + String[] temp = value.split(","); + Date temp_date = formatter.parse(temp[0]); + Integer point = Integer.valueOf(temp[1]); + existDateList.put(temp_date, point); + } + for (Entry entrySet : existDateList.entrySet()) { + System.out.println(entrySet.getKey() + " : " + entrySet.getValue()); + } + + Calendar cal1 = Calendar.getInstance(); + cal1.setTime(min_date); // 시간 설정 + int[] arr = new int[(int)diffDays+1]; + + if(existDateList.containsKey(min_date)) { + arr[0] = existDateList.get(min_date); + } + for(int i=1; i findThreeByCID(Long cid) { List histories = em.createQuery("select h from History h where h.customerId = " + cid + " and h.savedPoint != " + 0 + " order by h.created_at desc").setMaxResults(3).getResultList(); From 9500804be1ef950b9bf7b815ca1eeda8b5866dfe Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 07:58:29 +0900 Subject: [PATCH 28/45] Feat/#13 (#32) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 * 잔디 심기 구현완료 --- .../server/history/repository/HistoryRepository.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java index 1c0ff17..6a59e6e 100644 --- a/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java +++ b/src/main/java/com/greenpoint/server/history/repository/HistoryRepository.java @@ -18,13 +18,13 @@ public interface HistoryRepository extends JpaRepository { List findAllById(Long cid); - @Query(nativeQuery = true, value="SELECT DATE(created_at) FROM history GROUP BY DATE(created_at) order by DATE(created_at) desc limit 1") + @Query(nativeQuery = true, value="SELECT DATE(created_at) FROM history where customer_id = :customerId GROUP BY DATE(created_at) order by DATE(created_at) desc limit 1") String findMaxDate(Long customerId); - @Query(nativeQuery= true, value ="SELECT DATE(created_at) FROM history where not created_at is Null GROUP BY DATE(created_at) order by DATE(created_at) limit 1") + @Query(nativeQuery= true, value ="SELECT DATE(created_at) FROM history where not created_at is Null and customer_id = :customerId GROUP BY DATE(created_at) order by DATE(created_at) limit 1") String findMinDate(Long customerId); - @Query(nativeQuery = true, value="SELECT DATE(created_at) ,COUNT(Id) FROM history where Date(created_at) is not null GROUP BY DATE(created_at) order by DATE(created_at)") + @Query(nativeQuery = true, value="SELECT DATE(created_at) ,COUNT(Id) FROM history where Date(created_at) is not null and customer_id = :customerId GROUP BY DATE(created_at) order by DATE(created_at)") // List findExistDate(Long customerId); List findExistDate(Long customerId); } From f3bafa28514020fd1462b43427278ec7bc6dace7 Mon Sep 17 00:00:00 2001 From: lukehongg Date: Sat, 28 Jan 2023 08:08:00 +0900 Subject: [PATCH 29/45] =?UTF-8?q?store=20API=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/greenpoint/server/store/service/StoreService.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/greenpoint/server/store/service/StoreService.java b/src/main/java/com/greenpoint/server/store/service/StoreService.java index 68ff684..41dc16f 100644 --- a/src/main/java/com/greenpoint/server/store/service/StoreService.java +++ b/src/main/java/com/greenpoint/server/store/service/StoreService.java @@ -9,6 +9,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; + +import java.util.Comparator; import java.util.List; import java.util.stream.Collectors; @@ -37,7 +39,7 @@ public List findAll() { int max = pointService.findMaxPointByStore(ret.get(i).getStoreId()); ret.get(i).maxp(max); } - return ret; + return ret.stream().sorted(Comparator.comparing(StoreClientResponse::getMaximumPoint).reversed()).collect(Collectors.toList()); } From 2f8a61d96182267e4e528bb4d1816f3c5ccc4111 Mon Sep 17 00:00:00 2001 From: shinel98 <75024473+shinel98@users.noreply.github.com> Date: Sat, 28 Jan 2023 08:39:58 +0900 Subject: [PATCH 30/45] Feat/#13 (#33) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 * 잔디 심기 구현완료 * 처음 유저 기본값 설정 --- .../greenpoint/server/auth/service/UserService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index a86b370..571c8bc 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -7,6 +7,7 @@ import com.greenpoint.server.auth.model.KakaoProfile; import com.greenpoint.server.customer.model.Customer; import com.greenpoint.server.customer.repository.CustomerRepository; +import com.greenpoint.server.level.service.LevelService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; import org.springframework.stereotype.Service; @@ -23,8 +24,9 @@ @Service public class UserService { @Autowired - CustomerRepository customerRepository; - + private CustomerRepository customerRepository; + @Autowired + private LevelService levelService; public Object[] saveUser(String token) { Object[] obArr = new Object[2]; @@ -81,6 +83,7 @@ public String getUserInfoByAccessToken(String accessToken) { } public Boolean getUserInfoByForm(HashMap param) { Customer user; + Long id = Long.valueOf(param.get("id")); System.out.println("id = " + id); try{ @@ -89,6 +92,9 @@ public Boolean getUserInfoByForm(HashMap param) { user.setNickname(param.get("nickname")); user.setLatitude(Double.valueOf(param.get("latitude"))); user.setLongitude(Double.valueOf(param.get("longitude"))); + user.setPoint(0); + user.setTotalPoint(0); + user.setLevel(levelService.findByGrade(1)); // user = Customer.from(param.get("nickname"), param.get("contact")); user = customerRepository.save(user); if(user == null){ From 70aa8361ab8609418fb2cb6a32bddf12f830747b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Sat, 28 Jan 2023 08:50:08 +0900 Subject: [PATCH 31/45] final (#34) --- src/main/java/com/greenpoint/server/ServerApplication.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/greenpoint/server/ServerApplication.java b/src/main/java/com/greenpoint/server/ServerApplication.java index 60d5078..bae60a0 100644 --- a/src/main/java/com/greenpoint/server/ServerApplication.java +++ b/src/main/java/com/greenpoint/server/ServerApplication.java @@ -4,8 +4,10 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; @SpringBootApplication +@EnableJpaAuditing public class ServerApplication extends SpringBootServletInitializer { @Override From 118c24cb3c81d0395ab5b2c03bf8a98488e6ca9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Wed, 1 Feb 2023 01:44:17 +0900 Subject: [PATCH 32/45] Version 1 (#35) (#36) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * temp * init * init * init (#2) * Temp2 (#3) * initial setting * initial setting * Temp2 (#4) * initial setting * initial setting * entity 일부 생성 * Init e (#5) * initE * initE * Table setting * Feat/#6 (#7) * initial setting * initial setting * entity 일부 생성 * 로그인 api 구현중 * Init e (#8) * initE * initE * Table setting * ,, * #7 (#9) * 로그인 API 구현 (#11) * Feat/#10 (#12) * 로그인 API 구현 * 로그인 API 완성 * Feat/#13 (#14) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * Feat/#7 (#15) * #7 * history API * Feat/#13 (#16) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * Feat/#13 (#18) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * [#19] (#20) * Feat/#13 (#22) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * . * [#23] (#24) * Feat/crossorigin (#25) * . * crossorigin * Feat/#13 (#26) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * Feat/#13 (#27) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * Feat/merge (#28) * . * merge * merged * Feat/merge2 (#29) * . * merge2 * Feat/merge3 (#30) * . * merge3 * Feat/#13 (#31) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 * Feat/#13 (#32) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 * 잔디 심기 구현완료 * store API 수정 * Feat/#13 (#33) * 로그인 API 구현 * 로그인 API 완성 * feat[#13] 회원가입 API, 회원탈퇴 API 구현 * feat[#13] * feat[#13] * Update UserService.java merge conflict resolved * 해커톤 화이팅 이것저것 구현함 * ㅇ ㅇ * 로그인 관련 api 구현 완성 * 잔디 심기 구현 * 잔디 심기 구현완료 * 처음 유저 기본값 설정 * final (#34) --------- Co-authored-by: shinel98 <75024473+shinel98@users.noreply.github.com> From 5ba778d794e6365b9e63efdbff032cff196ba22a Mon Sep 17 00:00:00 2001 From: lukehongg Date: Wed, 1 Feb 2023 01:46:46 +0900 Subject: [PATCH 33/45] final --- .../java/com/greenpoint/server/auth/service/UserService.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/greenpoint/server/auth/service/UserService.java b/src/main/java/com/greenpoint/server/auth/service/UserService.java index 571c8bc..122a100 100644 --- a/src/main/java/com/greenpoint/server/auth/service/UserService.java +++ b/src/main/java/com/greenpoint/server/auth/service/UserService.java @@ -27,6 +27,7 @@ public class UserService { private CustomerRepository customerRepository; @Autowired private LevelService levelService; + public Object[] saveUser(String token) { Object[] obArr = new Object[2]; From dba759734f193b2c5c194fdb44b515d25d78871b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Thu, 7 Sep 2023 22:26:56 +0900 Subject: [PATCH 34/45] Create README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..21d33d1 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ + +readme From dc9f4b506cb4d73a0808f31dd808bf5080b73b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:00:53 +0900 Subject: [PATCH 35/45] Update README.md --- README.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 21d33d1..bd9cda2 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,17 @@ +![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/68f096d6-6d4d-4a85-9572-e189e09b4086) -readme +![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) +![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/9badf225-e949-4f6d-98e8-0f398b7ac54a) +![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/d77b9bae-9bab-4342-bb81-b6c4650db004) +![스크린샷 2023-09-07 오후 11 59 34](https://github.com/NORITHON/GreenPoint-server/assets/79990740/af8cb409-8170-45f6-b3d8-cdba3ea99d0f) +![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) +![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) +![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) +![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) +![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) +![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) +![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) +![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) +![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) +![스크린샷 2023-09-07 오후 11 58 09](https://github.com/NORITHON/GreenPoint-server/assets/79990740/fbf7968d-6dfd-4a67-91b9-9ed3567c67af) +![스크린샷 2023-09-07 오후 11 57 53](https://github.com/NORITHON/GreenPoint-server/assets/79990740/abf6527f-7922-479f-9bb1-64a24e81a482) From ad4149ac269cb54fe569fcc14564308bedae64bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:02:40 +0900 Subject: [PATCH 36/45] Update README.md --- README.md | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index bd9cda2..43b2d20 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,32 @@ ![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/68f096d6-6d4d-4a85-9572-e189e09b4086) ![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) -![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/9badf225-e949-4f6d-98e8-0f398b7ac54a) -![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/d77b9bae-9bab-4342-bb81-b6c4650db004) -![스크린샷 2023-09-07 오후 11 59 34](https://github.com/NORITHON/GreenPoint-server/assets/79990740/af8cb409-8170-45f6-b3d8-cdba3ea99d0f) -![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) -![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) -![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) -![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) -![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) -![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) -![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) -![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) + ![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) -![스크린샷 2023-09-07 오후 11 58 09](https://github.com/NORITHON/GreenPoint-server/assets/79990740/fbf7968d-6dfd-4a67-91b9-9ed3567c67af) -![스크린샷 2023-09-07 오후 11 57 53](https://github.com/NORITHON/GreenPoint-server/assets/79990740/abf6527f-7922-479f-9bb1-64a24e81a482) + +![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) + +![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) + +![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) + +![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) + +![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) + +![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) + +![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) + +![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) + +![스크린샷 2023-09-07 오후 11 59 34](https://github.com/NORITHON/GreenPoint-server/assets/79990740/af8cb409-8170-45f6-b3d8-cdba3ea99d0f) + +![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/d77b9bae-9bab-4342-bb81-b6c4650db004) + + + + + + + From 02b36714ac5c5332ecff5f1a74166115a2779dcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:05:49 +0900 Subject: [PATCH 37/45] Update README.md --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 43b2d20..80dbfbe 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,28 @@ ![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) + +
+ + +### 🛠 기술스택 + +## FRONT-END +- React +- React Native +- JavaScript +- NodeJs + +## BACK-END +- WebSocket +- STOMP Protocol +- Spring Boot +- JPA + + +
+ + ![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) ![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) From a33b6968fe3929f1e271ab6b5ab3b6cfb537c1db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:11:47 +0900 Subject: [PATCH 38/45] Update README.md --- README.md | 42 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 80dbfbe..fdb8836 100644 --- a/README.md +++ b/README.md @@ -1,42 +1,34 @@ ![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/68f096d6-6d4d-4a85-9572-e189e09b4086) -![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) - -![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) -![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) - -![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) - -![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) +### Green Point +- Green Point는 친환경 포인트 적립 어플리케이션입니다. +- Green Point는 **기후 변화 대응**라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. + - 가맹점에게 키오스크 웹페이지를 제공하여 고객이 **"친환경"** 소비를 실천할때 포인트를 적립해주는 기능을 제공 + - 소비자에게 자신의 적립 현황 조회 및 Green Point 가맹점 조회 기능을 제공 + +
+ +![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) +![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) -
+![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) -### 🛠 기술스택 +### MEMBER -## FRONT-END -- React -- React Native -- JavaScript -- NodeJs +![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) -## BACK-END -- WebSocket -- STOMP Protocol -- Spring Boot -- JPA +![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) +![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) -
+![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) - -![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) +![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) -![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) -![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) ![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) From 1e343bfc08afe3e81a245769affc13320fca9370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:12:32 +0900 Subject: [PATCH 39/45] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fdb8836..4da4a9a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ ![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/68f096d6-6d4d-4a85-9572-e189e09b4086) +
+ +### MEMBER + +![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) + +
+ ### Green Point - Green Point는 친환경 포인트 적립 어플리케이션입니다. @@ -16,9 +24,6 @@ ![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) -### MEMBER - -![image](https://github.com/NORITHON/GreenPoint-server/assets/79990740/0af33839-5f10-42d4-84e6-e888ae877ca3) ![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) From f6f926e6da46af025ff127a72e98abde839addef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:22:48 +0900 Subject: [PATCH 40/45] Update README.md --- README.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 4da4a9a..280c35f 100644 --- a/README.md +++ b/README.md @@ -11,11 +11,13 @@ ### Green Point - Green Point는 친환경 포인트 적립 어플리케이션입니다. -- Green Point는 **기후 변화 대응**라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. +- Green Point는 **"기후 변화 대응"**이라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. - 가맹점에게 키오스크 웹페이지를 제공하여 고객이 **"친환경"** 소비를 실천할때 포인트를 적립해주는 기능을 제공 - 소비자에게 자신의 적립 현황 조회 및 Green Point 가맹점 조회 기능을 제공
+ +![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) ![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) @@ -24,21 +26,21 @@ ![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) +
-![스크린샷 2023-09-07 오후 11 58 21](https://github.com/NORITHON/GreenPoint-server/assets/79990740/cb2e8c2f-c9d9-46a0-b9cb-a591a2771eac) - -![스크린샷 2023-09-07 오후 11 58 31](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d3a8105-4180-46bd-9ad5-b2016798f9e9) - -![스크린샷 2023-09-07 오후 11 58 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/7d610aa1-8ea8-4360-bae2-208933bc1c7a) - -![스크린샷 2023-09-07 오후 11 58 50](https://github.com/NORITHON/GreenPoint-server/assets/79990740/5ed8d10f-b0c2-4e3e-9b16-5d450bfc5772) - +### 주요 기능 +## 소비자 +- 소비자는 React Native로 구현한 어플리케이션 서비스를 기반으로 자신이 친환경 소비를 할 때 적립되는 Green Point를 조회할 수 있으며 현재 자신의 Green Level을 확인할 수 있습니다. 또한, Green Point 가맹점들을 조회하여 자신이 원하는 소비에 맞는 가맹정음 조회할 수 있고 **그린 캘린더** 기능을 이용하여 자신이 적립한 Green Point를 일별로 확인할 수 있습니다. + ![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) ![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) +## 가맹점 +- 가맹점은 React로 구현한 웹 기반 플랫폼 서비스 페이지에서 자신만의 Custom 키오스크 페이지를 생성 및 관리할 수 있습니다. 키오스크 페이지에서는 관리자는 메뉴를 직접 추가할 수 있고 소비자는 메뉴를 장바구니에 답고 실시간으로 선택한 메뉴의 가격을 확인할 수 있으며 최종적으로 결제를 할 수 있습니다. 결제 시스템은 카카오페이를 구현했으며 소비자는 자신의 휴대폰번호를 입력하면 현재 적립되어있는 포인트를 조회할 수 있고 현재 보유중인 포인트를 원하는 만큼 사용할 수 있도록 구현하였습니다. 또한, 결제 시 가맹점에서는 사용자가 선택한 **친환경 옵션**에 따라 사용자에게 Green Point를 적립해줄 수 있습니다. + ![스크린샷 2023-09-07 오후 11 59 34](https://github.com/NORITHON/GreenPoint-server/assets/79990740/af8cb409-8170-45f6-b3d8-cdba3ea99d0f) ![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/d77b9bae-9bab-4342-bb81-b6c4650db004) From 95077febe23ab69a75ecd238950f7fb4342e7a43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:23:44 +0900 Subject: [PATCH 41/45] Update README.md --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 280c35f..f81f2de 100644 --- a/README.md +++ b/README.md @@ -21,9 +21,6 @@ ![스크린샷 2023-09-07 오후 11 58 57](https://github.com/NORITHON/GreenPoint-server/assets/79990740/f22bf5f3-8a8e-4f2b-8eda-3eb5d9529fd9) -![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) - -![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79)
@@ -33,7 +30,9 @@ ## 소비자 - 소비자는 React Native로 구현한 어플리케이션 서비스를 기반으로 자신이 친환경 소비를 할 때 적립되는 Green Point를 조회할 수 있으며 현재 자신의 Green Level을 확인할 수 있습니다. 또한, Green Point 가맹점들을 조회하여 자신이 원하는 소비에 맞는 가맹정음 조회할 수 있고 **그린 캘린더** 기능을 이용하여 자신이 적립한 Green Point를 일별로 확인할 수 있습니다. - + +![스크린샷 2023-09-07 오후 11 59 04](https://github.com/NORITHON/GreenPoint-server/assets/79990740/333ecfec-00cd-4802-9ffa-d88879ef177d) + ![스크린샷 2023-09-07 오후 11 59 18](https://github.com/NORITHON/GreenPoint-server/assets/79990740/54f59ca9-7e61-410c-ac16-d49501fde95a) ![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) @@ -41,6 +40,8 @@ ## 가맹점 - 가맹점은 React로 구현한 웹 기반 플랫폼 서비스 페이지에서 자신만의 Custom 키오스크 페이지를 생성 및 관리할 수 있습니다. 키오스크 페이지에서는 관리자는 메뉴를 직접 추가할 수 있고 소비자는 메뉴를 장바구니에 답고 실시간으로 선택한 메뉴의 가격을 확인할 수 있으며 최종적으로 결제를 할 수 있습니다. 결제 시스템은 카카오페이를 구현했으며 소비자는 자신의 휴대폰번호를 입력하면 현재 적립되어있는 포인트를 조회할 수 있고 현재 보유중인 포인트를 원하는 만큼 사용할 수 있도록 구현하였습니다. 또한, 결제 시 가맹점에서는 사용자가 선택한 **친환경 옵션**에 따라 사용자에게 Green Point를 적립해줄 수 있습니다. +![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) + ![스크린샷 2023-09-07 오후 11 59 34](https://github.com/NORITHON/GreenPoint-server/assets/79990740/af8cb409-8170-45f6-b3d8-cdba3ea99d0f) ![스크린샷 2023-09-07 오후 11 59 41](https://github.com/NORITHON/GreenPoint-server/assets/79990740/d77b9bae-9bab-4342-bb81-b6c4650db004) From aaae2e07ef64de629e8d91765093fe6e2b785d25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:24:02 +0900 Subject: [PATCH 42/45] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f81f2de..c5a7641 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ### Green Point - Green Point는 친환경 포인트 적립 어플리케이션입니다. -- Green Point는 **"기후 변화 대응"**이라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. +- Green Point는 ** "기후 변화 대응" **이라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. - 가맹점에게 키오스크 웹페이지를 제공하여 고객이 **"친환경"** 소비를 실천할때 포인트를 적립해주는 기능을 제공 - 소비자에게 자신의 적립 현황 조회 및 Green Point 가맹점 조회 기능을 제공 From 1a314673c4223f01cf5fee7fa62f08cb298edad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:24:15 +0900 Subject: [PATCH 43/45] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5a7641..5d9808e 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ ### Green Point - Green Point는 친환경 포인트 적립 어플리케이션입니다. -- Green Point는 ** "기후 변화 대응" **이라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. +- Green Point는 **기후 변화 대응**이라는 주제를 해결하기 위해 가맹점과 소비자이라는 두 타겟 고객을 설정하여 각 타겟에 맞는 서비스를 구현했습니다. - 가맹점에게 키오스크 웹페이지를 제공하여 고객이 **"친환경"** 소비를 실천할때 포인트를 적립해주는 기능을 제공 - 소비자에게 자신의 적립 현황 조회 및 Green Point 가맹점 조회 기능을 제공 From df2256c63cec4321c444bbd23a1fbc46eda99f6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:25:40 +0900 Subject: [PATCH 44/45] Update README.md --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5d9808e..ff6abd4 100644 --- a/README.md +++ b/README.md @@ -38,7 +38,10 @@ ![스크린샷 2023-09-07 오후 11 59 26](https://github.com/NORITHON/GreenPoint-server/assets/79990740/856cbfb6-46f6-48df-b9d7-d822fb56255b) ## 가맹점 -- 가맹점은 React로 구현한 웹 기반 플랫폼 서비스 페이지에서 자신만의 Custom 키오스크 페이지를 생성 및 관리할 수 있습니다. 키오스크 페이지에서는 관리자는 메뉴를 직접 추가할 수 있고 소비자는 메뉴를 장바구니에 답고 실시간으로 선택한 메뉴의 가격을 확인할 수 있으며 최종적으로 결제를 할 수 있습니다. 결제 시스템은 카카오페이를 구현했으며 소비자는 자신의 휴대폰번호를 입력하면 현재 적립되어있는 포인트를 조회할 수 있고 현재 보유중인 포인트를 원하는 만큼 사용할 수 있도록 구현하였습니다. 또한, 결제 시 가맹점에서는 사용자가 선택한 **친환경 옵션**에 따라 사용자에게 Green Point를 적립해줄 수 있습니다. +- React로 구현한 키오스크 페이지에서는 관리자는 신메뉴를 직접 추가할 수 있고 +- 소비자는 메뉴를 장바구니에 답고 **실시간**으로 선택한 메뉴의 가격을 확인할 수 있으며 최종적으로 결제를 할 수 있습니다. +- 결제 시스템은 카카오페이를 구현했으며 소비자는 자신의 휴대폰번호를 입력하면 현재 적립되어있는 포인트를 조회할 수 있고 현재 보유중인 포인트를 원하는 만큼 사용할 수 있도록 구현하였습니다. +- 결제 시 가맹점에서는 사용자가 선택한 **친환경 옵션**에 따라 사용자에게 Green Point를 적립해줄 수 있습니다. ![스크린샷 2023-09-07 오후 11 59 10](https://github.com/NORITHON/GreenPoint-server/assets/79990740/905dcc41-3c56-4ef6-84dd-231060648f79) From e537ce448f786b96348c22586267d6907c4cb090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=ED=99=8D=EC=84=B1=ED=97=8C?= <79990740+lukehongg@users.noreply.github.com> Date: Fri, 8 Sep 2023 00:26:52 +0900 Subject: [PATCH 45/45] Update .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index c2065bc..75cb773 100644 --- a/.gitignore +++ b/.gitignore @@ -25,6 +25,8 @@ bin/ out/ !**/src/main/**/out/ !**/src/test/**/out/ +application.properties + ### NetBeans ### /nbproject/private/