Closed seongkyu-lim closed 2 years ago
1-1 매장 식사 주문 생성 로직 API 테스트. /api/order
1-2 포장or배달 주문 생성 로직 API 테스트. /api/order
2 주문목록 조회 API 테스트. /api/order
유저 아이디로 주문 조회 API 테스트. /api/order/{userId}
주문 테이블 조회 API 테스트. /api/order-table
{
"userId": 1,
"orderType": "EATIN",
"orderStatus": "WAITING",
"paymentMethod": "카드",
"requirement": "맛있게 부탁드려요",
"deliveryAddress": "없음",
"orderTableDto": {
"emptyness": true,
"tableName": "1번 테이블",
"numberOfGuests": 4
},
"orderMenuDtoList": [
{
"quantity": 2,
"menuName": "짬뽕 세트"
}
]
}
{
"userId": 2,
"orderType": "TAKEOUT",
"orderStatus": "WAITING",
"paymentMethod": "현금",
"requirement": "30분 후에 가지러 올게요.",
"deliveryAddress": "없음",
"orderMenuDtoList": [
{
"quantity": 2,
"menuName": "짬뽕 세트"
}
]
}
CREATE TABLE delivery_address (
id bigint(20) NOT NULL AUTO_INCREMENT,
address varchar(100) NOT NULL,
customer_phone_number varchar(100) NOT NULL,
status varchar(100) NOT NULL,
note varchar(100) NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
CREATE TABLE order_menu (
id bigint(20) NOT NULL AUTO_INCREMENT,
quantity bigint(20) DEFAULT NULL,
created_at datetime NOT NULL,
orders_id bigint(20),
menu_id bigint(20),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
CREATE TABLE orders (
id bigint(20) NOT NULL AUTO_INCREMENT,
user_id bigint(20) NOT NULL,
order_type varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
order_status varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin,
payment_price bigint(20) NOT NULL,
payment_method varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
requirement varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL,
created_at datetime NOT NULL,
delivery_address_id bigint(20),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
CREATE TABLE order_table (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'index',
name varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
emptyness bit(1) NOT NULL,
number_of_guests int(4) NOT NULL,
created_at datetime NOT NULL,
orders_id bigint(20),
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
CREATE TABLE menu_group (
id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'index',
name varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
CREATE TABLE menu (
id bigint(20) NOT NULL AUTO_INCREMENT,
name varchar(20) DEFAULT NULL,
price int(11) NOT NULL,
is_hidden bit(1) NOT NULL,
created_at datetime NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
[x] 1. order-table이 현장에서의 테이블의 의미로 가자. -> 리팩토링 필요.
→ order entity가 가장 앞단으로,
→ 주문 종류에 따라 주문 방법 다르게,
[x] 2. dto에서 list는 immutable한 걸로 사용하는 것을 권장 → service 단에서 list에 add하지 않고 바로 선언하는 방식으로 코드 리팩토링 필요.
[ ] 3. 코틀린 확장 함수를 사용하면 if문과 같은 것을 줄일 수있다.
코틀린 의 apply, with, let, also, run 은 언제 사용하는가? kotlin doc, scope function