From 593509091a5f94d863dee63bb89373ee3b815059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:40:40 +0900 Subject: [PATCH 01/10] =?UTF-8?q?fix:=20=EB=B9=84=EC=A6=88=EB=8B=88?= =?UTF-8?q?=EC=8A=A4=20=EB=A1=9C=EC=A7=81=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/vo/CartElement.java | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/BookCart/src/vo/CartElement.java b/BookCart/src/vo/CartElement.java index 1e5ee09..22ce707 100644 --- a/BookCart/src/vo/CartElement.java +++ b/BookCart/src/vo/CartElement.java @@ -1,28 +1,18 @@ package vo; public class CartElement { - private Book book; + private String bookId; private int amount; - public CartElement(Book book) { - this.book = book; - this.amount++; + public CartElement(String bookId, int amount) { + this.bookId = bookId; + this.amount = amount; } - public Book getBook() { - return book; + public String getBookId() { + return bookId; } - public int getAmount() { return amount; } - - public void plusAmount() - { - this.amount++; - } - - public String toString() { - return (getBook() + "" + getAmount() + "권"); - } } From 37a854d82448388c5a338ec79910b67da320cbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:41:17 +0900 Subject: [PATCH 02/10] =?UTF-8?q?file:=20directory=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/{vo => entity}/Admin.java | 7 ++-- BookCart/src/{vo => entity}/Book.java | 2 +- BookCart/src/entity/Person.java | 54 ++++++++++++++++++++++++++ BookCart/src/entity/User.java | 8 ++++ BookCart/src/vo/Person.java | 34 ---------------- BookCart/src/vo/User.java | 11 ------ 6 files changed, 67 insertions(+), 49 deletions(-) rename BookCart/src/{vo => entity}/Admin.java (55%) rename BookCart/src/{vo => entity}/Book.java (98%) create mode 100644 BookCart/src/entity/Person.java create mode 100644 BookCart/src/entity/User.java delete mode 100644 BookCart/src/vo/Person.java delete mode 100644 BookCart/src/vo/User.java diff --git a/BookCart/src/vo/Admin.java b/BookCart/src/entity/Admin.java similarity index 55% rename from BookCart/src/vo/Admin.java rename to BookCart/src/entity/Admin.java index c1887e5..584fc20 100644 --- a/BookCart/src/vo/Admin.java +++ b/BookCart/src/entity/Admin.java @@ -1,10 +1,11 @@ -package vo; +package entity; public class Admin extends Person{ private String id = "Admin"; private String password = "Admin1234"; - public Admin(String name, String phoneNumber) { - super(name, phoneNumber); + + public Admin(Builder builder) { + super(builder); } } diff --git a/BookCart/src/vo/Book.java b/BookCart/src/entity/Book.java similarity index 98% rename from BookCart/src/vo/Book.java rename to BookCart/src/entity/Book.java index 2200eca..98d76b9 100644 --- a/BookCart/src/vo/Book.java +++ b/BookCart/src/entity/Book.java @@ -1,4 +1,4 @@ -package vo; +package entity; public class Book { private String bookId; diff --git a/BookCart/src/entity/Person.java b/BookCart/src/entity/Person.java new file mode 100644 index 0000000..84c5eb7 --- /dev/null +++ b/BookCart/src/entity/Person.java @@ -0,0 +1,54 @@ +package entity; + +public class Person { + private final String id; + private final String password; + private final String name; + private final String phoneNumber; + private final String address; + + public Person(Builder builder) { + this.id = builder.id; + this.password = builder.password; + this.name = builder.name; + this.phoneNumber = builder.phoneNumber; + this.address = builder.address; + } + + public static class Builder { + private String id; + private String password; + private final String name; + private final String phoneNumber; + + private String address; + + public Builder(String id, String password, String name, String phoneNumber) { + this.id = id; + this.password = password; + this.name = name; + this.phoneNumber = phoneNumber; + } + + public Builder address(String val) { + address=val; + return this; + } + + public Person build() { + return new Person(this); + } + } + + public String getId() { + return id; + } + public String getName() { + return name; + } + public String getPhoneNumber() { + return phoneNumber; + } + public String getPassword() { return password; } + public String getAddress() { return address; } +} diff --git a/BookCart/src/entity/User.java b/BookCart/src/entity/User.java new file mode 100644 index 0000000..656304b --- /dev/null +++ b/BookCart/src/entity/User.java @@ -0,0 +1,8 @@ +package entity; + +public class User extends Person { + + public User(Builder builder) { + super(builder); + } +} diff --git a/BookCart/src/vo/Person.java b/BookCart/src/vo/Person.java deleted file mode 100644 index a1549f3..0000000 --- a/BookCart/src/vo/Person.java +++ /dev/null @@ -1,34 +0,0 @@ -package vo; - -public class Person { - private String id; - private String password; - private String name; - private String phoneNumber; - private String address; - - public Person() {} - - public Person(String name, String phoneNumber) { - this.name = name; - this.phoneNumber = phoneNumber; - } - - public Person(String name, String phoneNumber, String address) { - this.name = name; - this.phoneNumber = phoneNumber; - this.address = address; - } - - public String getId() { - return id; - } - public String getName() { - return name; - } - public String getPhoneNumber() { - return phoneNumber; - } - public String getPassword() { return password; } - public String getAddress() { return address; } -} diff --git a/BookCart/src/vo/User.java b/BookCart/src/vo/User.java deleted file mode 100644 index 38e72ed..0000000 --- a/BookCart/src/vo/User.java +++ /dev/null @@ -1,11 +0,0 @@ -package vo; - -public class User extends Person { - public User(String name, String phoneNumber) { - super(name, phoneNumber); - } - - public User(String username, String phoneNumber, String address) { - super(username, phoneNumber, address); - } -} From 42c911f1a67f50ed73d4f321a0892d6ed69db2cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:47:09 +0900 Subject: [PATCH 03/10] =?UTF-8?q?create:=20mapper=20interface=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/mapper/BookMapper.java | 75 +++++++---------------------- 1 file changed, 18 insertions(+), 57 deletions(-) diff --git a/BookCart/src/mapper/BookMapper.java b/BookCart/src/mapper/BookMapper.java index c00b492..85f5ee5 100644 --- a/BookCart/src/mapper/BookMapper.java +++ b/BookCart/src/mapper/BookMapper.java @@ -1,63 +1,24 @@ package mapper; -import java.util.ArrayList; -import java.util.HashMap; +import entity.Book; +import vo.CartElement; + import java.util.List; import java.util.Map; -import vo.Book; -import vo.CartElement; -public class BookMapper { - private Map books = new HashMap<>(); - private Map> cart = new HashMap<>(); - - public BookMapper() { - books.put("ISBN1234", new Book("ISBN1234", "쉽게 배우는 JSP 웹 프로그래밍", 27000, "송미영", "단계별로 쇼핑몰을 구현하며 배우는 JSP 웹 프로그래밍", "IT전문서", "2018/10/08")); - books.put("ISBN1235", new Book("ISBN1235", "안드로이드 프로그래밍", 33000, "우재남", "실습 단계별 명쾌한 멘토링!", "IT전문서", "2022/01/22")); - books.put("ISBN1236", new Book("ISBN1236", "스크래치", 22000, "고광일", "컴퓨팅 사고력을 키우는 블록 코딩", "컴퓨터 입문", "2019/06/10")); - } - - // 장바구니에 도서 담기 - public void save(String userId, String bookId) { - List userCart = cart.get(userId); - boolean flag = false; - - if (userCart == null) { - userCart = new ArrayList<>(); - cart.put(userId, userCart); - } - for (int i = 0; i < userCart.size(); i++) { - if(userCart.get(i).getBook().getBookId().equals(bookId)) - { - flag = true; - cart.get(userId).get(i).plusAmount(); - break; - } - } - if(flag == false) - { - cart.get(userId).add(new CartElement(books.get(bookId))); - } - } - - // 모든 도서 조회 - public List findAll() { - return new ArrayList<>(books.values()); - } - - // bookId로 Book 객체 찾아서 반환 - public Book findByBookId(String bookId) { - return books.get(bookId); - } - - // userId로 User 장바구니 조회 - public List findCartByUserId(String userId) { - return cart.get(userId); - } - - public void clear(String userId) - { - List userCart = cart.get(userId); - userCart.clear(); - } +public interface BookMapper { + + // C + void save(String userId, CartElement element); + + // R + List findAll(); + Book findByBookId(String bookId); + Map findCartByUserId(String userId); + + // U + + // D + void clear(String userId); + } From 09621e373f37879356c8a47ba79de237b510f1f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:47:29 +0900 Subject: [PATCH 04/10] =?UTF-8?q?create:=20mapper=20interface=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/mapper/PersonMapper.java | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/BookCart/src/mapper/PersonMapper.java b/BookCart/src/mapper/PersonMapper.java index ef716fb..7834b35 100644 --- a/BookCart/src/mapper/PersonMapper.java +++ b/BookCart/src/mapper/PersonMapper.java @@ -1,19 +1,8 @@ package mapper; -import java.util.HashMap; -import java.util.Map; -import vo.Person; +import entity.Person; -public class PersonMapper { - private Map store = new HashMap<>(); - - // 회원가입 - public void save(Person person) { - store.put(person.getId(), person); - } - - // 사용자 조회 - public Person findById(String id) { - return store.get(id); - } +public interface PersonMapper { + void save(Person person); + Person findById(String id); } From 7d4b5e998c4daf547f85fd72b3f5591a77ffcd55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:48:26 +0900 Subject: [PATCH 05/10] =?UTF-8?q?refactor=20:=20cart=20Map=EA=B5=AC?= =?UTF-8?q?=EC=A1=B0=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/mapper/BookMapperImpl.java | 50 +++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 BookCart/src/mapper/BookMapperImpl.java diff --git a/BookCart/src/mapper/BookMapperImpl.java b/BookCart/src/mapper/BookMapperImpl.java new file mode 100644 index 0000000..c32d955 --- /dev/null +++ b/BookCart/src/mapper/BookMapperImpl.java @@ -0,0 +1,50 @@ +package mapper; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import entity.Book; +import vo.CartElement; + +public class BookMapperImpl implements BookMapper{ + private Map books = new HashMap<>(); + private static final Map> cart = new HashMap<>(); + + public BookMapperImpl() { + books.put("ISBN1234", new Book("ISBN1234", "쉽게 배우는 JSP 웹 프로그래밍", 27000, "송미영", "단계별로 쇼핑몰을 구현하며 배우는 JSP 웹 프로그래밍", "IT전문서", "2018/10/08")); + books.put("ISBN1235", new Book("ISBN1235", "안드로이드 프로그래밍", 33000, "우재남", "실습 단계별 명쾌한 멘토링!", "IT전문서", "2022/01/22")); + books.put("ISBN1236", new Book("ISBN1236", "스크래치", 22000, "고광일", "컴퓨팅 사고력을 키우는 블록 코딩", "컴퓨터 입문", "2019/06/10")); + } + + // 장바구니에 도서 담기 + public void save(String userId, CartElement element) { + Map userCart = cart.get(userId); + userCart.put(element.getBookId(), element.getAmount()); + } + + // 모든 도서 조회 + public List findAll() { + return new ArrayList<>(books.values()); + } + + // bookId로 Book 객체 찾아서 반환 + public Book findByBookId(String bookId) { + return books.get(bookId); + } + + // userId로 User 장바구니 조회 + public Map findCartByUserId(String userId) { + return cart.get(userId); + } + + // 장바구니 비우기 + public void clear(String userId) { + cart.get(userId).clear(); + } + + public void insertCart(String userId) { + Map newCart = new HashMap<>(); + cart.put(userId, newCart); + } +} From 1464cf0d063e2ba50d8e6b3e3b47f7ada131904e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:49:35 +0900 Subject: [PATCH 06/10] =?UTF-8?q?fix:=20store=20final=20=EB=B3=80=EC=88=98?= =?UTF-8?q?=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/mapper/PersonMapperImpl.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 BookCart/src/mapper/PersonMapperImpl.java diff --git a/BookCart/src/mapper/PersonMapperImpl.java b/BookCart/src/mapper/PersonMapperImpl.java new file mode 100644 index 0000000..1e80e40 --- /dev/null +++ b/BookCart/src/mapper/PersonMapperImpl.java @@ -0,0 +1,19 @@ +package mapper; + +import java.util.HashMap; +import java.util.Map; +import entity.Person; + +public class PersonMapperImpl implements PersonMapper{ + private final Map store = new HashMap<>(); + + // 회원가입 + public void save(Person person) { + store.put(person.getId(), person); + } + + // 사용자 조회 + public Person findById(String id) { + return store.get(id); + } +} From 67eaeffb93155e844e87d2f90435fdfb0b0c9dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:50:18 +0900 Subject: [PATCH 07/10] =?UTF-8?q?refactor:=20=EB=8F=84=EC=84=9C=20?= =?UTF-8?q?=EC=88=98=EB=9F=89=20=EC=B6=94=EA=B0=80=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/service/BookService.java | 68 +++++++++++++++++---------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/BookCart/src/service/BookService.java b/BookCart/src/service/BookService.java index cd9bec2..8a013f1 100644 --- a/BookCart/src/service/BookService.java +++ b/BookCart/src/service/BookService.java @@ -1,15 +1,15 @@ package service; -import java.util.ArrayList; -import java.util.List; -import java.util.Scanner; +import java.util.*; + import mapper.BookMapper; -import vo.Book; +import entity.Book; +import mapper.BookMapperImpl; import vo.CartElement; public class BookService { - private BookMapper bookMapper = new BookMapper(); + private BookMapperImpl bookMapper = new BookMapperImpl(); // 장바구니에 도서 추가 public void addBook(String userId) { @@ -18,8 +18,8 @@ public void addBook(String userId) { System.out.println("장바구니에 추가할 도서의 ID를 입력하세요 :"); String bookId = sc.next(); - if (!findBookById(bookId)) { - System.out.printf("%s는 도서 목록에 없습니다.\n", bookId); + if (findByBookId(bookId) == null) { + System.out.println(bookId + "는 도서 목록에 없습니다."); return; } @@ -27,16 +27,37 @@ public void addBook(String userId) { String confirm = sc.next(); if (confirm.equals("Y") || confirm.equals("y")) { - bookMapper.save(userId, bookId); + int amount = findBookInCart(userId, bookId); + CartElement element = new CartElement(bookId, amount+1); + bookMapper.save(userId, element); System.out.printf("%s 도서가 장바구니에 추가되었습니다.\n", bookId); + } else { System.out.println("장바구니 추가를 취소하였습니다."); } } - // bookId가 도서 리스트에 존재하는지 확인 - public boolean findBookById(String bookId) { - return bookMapper.findByBookId(bookId) != null; + // user의 장바구니에 특정 책이 담겨있는지 확인 + private int findBookInCart(String userId, String bookId) { + Map element = bookMapper.findCartByUserId(userId); + + if (element.containsKey(bookId)) + return element.get(bookId); + else + return 0; + } + + // book이 마켓에 존재하는지 확인 +// private void verifyBookInList(String bookId) { +// if (findByBookId(bookId) == null) { +// System.out.println(bookId + "는 도서 목록에 없습니다."); +// return; +// } +// } + + // book을 찾아서 객체 반환 + public Book findByBookId(String bookId) { + return bookMapper.findByBookId(bookId); } // 모든 도서 조회 @@ -46,21 +67,16 @@ public List getAllBooks() { } // User 장바구니 조회 - public List getUserCart(String userId) { - List bookList = bookMapper.findCartByUserId(userId); + public void getUserCart(String userId) { + Map userCart = bookMapper.findCartByUserId(userId); - if (bookList == null) { - System.out.println("장바구니가 비어있습니다."); - return new ArrayList<>(); + try { + userCart.entrySet() + .stream() + .forEach(i-> System.out.println(findByBookId(i.getKey()) + " " + i.getValue())); + } catch (NullPointerException e) { + throw new NullPointerException("장바구니가 비어있습니다."); } - - List returnBookList = new ArrayList<>(); - for (CartElement book: bookList) - { - returnBookList.add(book); - } - - return returnBookList; } public void clearAll(String userId) @@ -68,4 +84,8 @@ public void clearAll(String userId) bookMapper.clear(userId); System.out.println("장바구니를 비웠습니다."); } + + public void createUserBookCart(String userId) { + bookMapper.insertCart(userId); + } } \ No newline at end of file From 67dba3a09d6598fe0991679c02c33ecbfd987ab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:50:53 +0900 Subject: [PATCH 08/10] =?UTF-8?q?refactor:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EB=A1=9C=EC=A7=81=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/BookMain.java | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/BookCart/src/BookMain.java b/BookCart/src/BookMain.java index 11d63ba..475a5e3 100644 --- a/BookCart/src/BookMain.java +++ b/BookCart/src/BookMain.java @@ -4,7 +4,7 @@ import service.BookService; import service.UserService; import vo.CartElement; -import vo.User; +import entity.User; public class BookMain { static Scanner sc = new Scanner(System.in); @@ -14,15 +14,7 @@ public static void main(String[] args) { BookService bookService = new BookService(); AdminService adminService = new AdminService(); - //고객 정보 입력 - System.out.print("당신의 이름을 입력하세요 : "); - String name = sc.nextLine(); - System.out.print("연락처를 입력하세요 : "); - String phoneNumber = sc.nextLine(); - - //customer1 고객 객체 생성 & 기입 - User user1 = new User(name, phoneNumber); - userService.join(user1); + String user1 = userService.join(); // 실행 문구 printWelcome(); @@ -37,18 +29,12 @@ public static void main(String[] args) { case 1 -> //고객 정보 확인하기 userService.menuGuestInfo(user1); case 2 -> //장바구니 상품 목록 보기 - { - List list1 = bookService.getUserCart(user1.getId()); - for (CartElement cartElement : list1) { - System.out.println(cartElement); - } - - } + bookService.getUserCart(user1); case 3 -> // 장바구니 항목 비우기 - bookService.clearAll(user1.getId()); + bookService.clearAll(user1); case 4 -> { //바구니에 항목 추가하기 bookService.getAllBooks(); - bookService.addBook(user1.getId()); + bookService.addBook(user1); } case 5 -> System.out.println("장바구니 수량 줄이기"); case 6 -> System.out.println("장바구니 항목 삭제하기"); From 653042b1a16cd7be7d3151171af8856c3ea0aa37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:51:33 +0900 Subject: [PATCH 09/10] =?UTF-8?q?refactor:=20=EC=83=9D=EC=84=B1=EC=9E=90?= =?UTF-8?q?=20=EB=B9=8C=EB=8D=94=20=ED=8C=A8=ED=84=B4=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/service/AdminService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/BookCart/src/service/AdminService.java b/BookCart/src/service/AdminService.java index 6246ff1..d7fd39e 100644 --- a/BookCart/src/service/AdminService.java +++ b/BookCart/src/service/AdminService.java @@ -1,7 +1,8 @@ package service; import java.util.Scanner; -import vo.Admin; +import entity.Admin; +import entity.Person; public class AdminService{ @@ -15,7 +16,7 @@ public void menuAdminLogin() { System.out.print("비밀번호 : "); String adminPw = sc.next(); - Admin admin = new Admin("jang", "01012346578"); + Person admin = new Admin.Builder("Admin", "Admin1234", "jang", "01012345678").build(); if (adminId.equals(admin.getId()) && adminPw.equals(admin.getPassword())) { System.out.println("\n로그인 성공"); From ec0c4968d39ca2edb865ece377b95149ad4041e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9E=A5=EC=84=9C=EC=9C=A4?= Date: Thu, 28 Dec 2023 17:52:03 +0900 Subject: [PATCH 10/10] =?UTF-8?q?create:=20=ED=9A=8C=EC=9B=90=EA=B0=80?= =?UTF-8?q?=EC=9E=85=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BookCart/src/service/UserService.java | 47 +++++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/BookCart/src/service/UserService.java b/BookCart/src/service/UserService.java index 28b3af8..5b9c35a 100644 --- a/BookCart/src/service/UserService.java +++ b/BookCart/src/service/UserService.java @@ -1,21 +1,45 @@ package service; -import mapper.PersonMapper; -import vo.Person; +import entity.Person; +import mapper.PersonMapperImpl; + +import java.util.Scanner; public class UserService{ - private PersonMapper personMapper = new PersonMapper(); + private PersonMapperImpl personMapper = new PersonMapperImpl(); + private BookService bookService = new BookService(); + + static Scanner sc = new Scanner(System.in); // 회원가입 (성공시 1 반환) - public int join(Person person) { - if (checkPersonInfo(person)) { - personMapper.save(person); - return 1; + public String join() { + Person user = inputSignInForm(); + + if (checkPersonInfo(user)) { + personMapper.save(user); + bookService.createUserBookCart(user.getId()); + System.out.println("회원가입 성공"); + return user.getId(); } else { - return 0; + System.out.println("회원가입 실패"); + return null; } } + private Person inputSignInForm() { + //고객 정보 입력 + System.out.print("당신의 이름을 입력하세요 : "); + String name = sc.nextLine(); + System.out.print("연락처를 입력하세요 : "); + String phoneNumber = sc.nextLine(); + System.out.print("아이디를 입력하세요 : "); + String id = sc.nextLine(); + System.out.print("비밀번호를 입력하세요 : "); + String password = sc.nextLine(); + + return new Person.Builder(id, password, name, phoneNumber).build(); + } + // 사용자 정보 유효성 검사 public boolean checkPersonInfo(Person person) { if (personMapper.findById(person.getId()) == null) { @@ -28,8 +52,11 @@ public boolean checkPersonInfo(Person person) { } // 사용자 정보 출력 - public void menuGuestInfo(Person person) { + public void menuGuestInfo(String userId) { + Person person = personMapper.findById(userId); System.out.println("현재 고객 정보 : "); - System.out.println("이름 " + person.getName() + "연락처 " + person.getPhoneNumber()); + System.out.println("이름 " + person.getName() + + " 연락처 " + person.getPhoneNumber() + + " 아이디 " + person.getId()); } }