Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 5 additions & 19 deletions BookCart/src/BookMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
Expand All @@ -37,18 +29,12 @@ public static void main(String[] args) {
case 1 -> //고객 정보 확인하기
userService.menuGuestInfo(user1);
case 2 -> //장바구니 상품 목록 보기
{
List<CartElement> 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("장바구니 항목 삭제하기");
Expand Down
7 changes: 4 additions & 3 deletions BookCart/src/vo/Admin.java → BookCart/src/entity/Admin.java
Original file line number Diff line number Diff line change
@@ -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);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package vo;
package entity;

public class Book {
private String bookId;
Expand Down
54 changes: 54 additions & 0 deletions BookCart/src/entity/Person.java
Original file line number Diff line number Diff line change
@@ -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; }
}
8 changes: 8 additions & 0 deletions BookCart/src/entity/User.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package entity;

public class User extends Person {

public User(Builder builder) {
super(builder);
}
}
75 changes: 18 additions & 57 deletions BookCart/src/mapper/BookMapper.java
Original file line number Diff line number Diff line change
@@ -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<String, Book> books = new HashMap<>();
private Map<String, List<CartElement>> 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<CartElement> 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<Book> findAll() {
return new ArrayList<>(books.values());
}

// bookId로 Book 객체 찾아서 반환
public Book findByBookId(String bookId) {
return books.get(bookId);
}

// userId로 User 장바구니 조회
public List<CartElement> findCartByUserId(String userId) {
return cart.get(userId);
}

public void clear(String userId)
{
List<CartElement> userCart = cart.get(userId);
userCart.clear();
}
public interface BookMapper {

// C
void save(String userId, CartElement element);

// R
List<Book> findAll();
Book findByBookId(String bookId);
Map<String, Integer> findCartByUserId(String userId);

// U

// D
void clear(String userId);

}
50 changes: 50 additions & 0 deletions BookCart/src/mapper/BookMapperImpl.java
Original file line number Diff line number Diff line change
@@ -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<String, Book> books = new HashMap<>();
private static final Map<String, Map<String, Integer>> 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<String, Integer> userCart = cart.get(userId);
userCart.put(element.getBookId(), element.getAmount());
}

// 모든 도서 조회
public List<Book> findAll() {
return new ArrayList<>(books.values());
}

// bookId로 Book 객체 찾아서 반환
public Book findByBookId(String bookId) {
return books.get(bookId);
}

// userId로 User 장바구니 조회
public Map<String, Integer> findCartByUserId(String userId) {
return cart.get(userId);
}

// 장바구니 비우기
public void clear(String userId) {
cart.get(userId).clear();
}

public void insertCart(String userId) {
Map<String, Integer> newCart = new HashMap<>();
cart.put(userId, newCart);
}
}
19 changes: 4 additions & 15 deletions BookCart/src/mapper/PersonMapper.java
Original file line number Diff line number Diff line change
@@ -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<String, Person> 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);
}
19 changes: 19 additions & 0 deletions BookCart/src/mapper/PersonMapperImpl.java
Original file line number Diff line number Diff line change
@@ -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<String, Person> store = new HashMap<>();

// 회원가입
public void save(Person person) {
store.put(person.getId(), person);
}

// 사용자 조회
public Person findById(String id) {
return store.get(id);
}
}
5 changes: 3 additions & 2 deletions BookCart/src/service/AdminService.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package service;

import java.util.Scanner;
import vo.Admin;
import entity.Admin;
import entity.Person;

public class AdminService{

Expand All @@ -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로그인 성공");
Expand Down
Loading