일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 상품명중복체크
- 주문취소하기기능
- jsp
- 쇼핑몰프로젝트
- 상품상세페이지
- vscode삭제
- html
- 상품수정
- 주문조회페이지
- 상품목록보기
- 유저삭제
- 자바스크립트
- 국비프로젝트
- 쇼핑몰만들기
- ajax중복체크
- 마이페이지만들기
- 쇼핑몰주문취소
- javascript
- DB공유하기
- 파이널프로젝트
- 생활코딩
- vscode폴더삭제
- 쇼핑몰홈페이지만들기
- 상품삭제
- 권한체크
- 생활코딩javascript
- 구매목록보기
- 구매목록페이지
- 아이디중복체크
- 스프링부트
- Today
- Total
INTP의 멋대로 개발 세상
[📚상품 구매 사이트 5단계] 관리자 페이지 - 유저의 구매목록 보기 본문
이전의 유저목록(유저관리) 페이지에서는
구매자, 관리자가 모두 페이지에 떴다.
구매자이든 관리자이든 하나의 user 테이블에 속해있기 때문에
findAll 메서드를 사용하니 둘 다 뜬 것이다.
이번에는 유저의 구매목록을 만들어 보자.😋😋
⏬ 5단계 깃 허브 보러가기 (전체 코드) ⏬
GitHub - JungminK1m/Springboot-Product-Study-V5
Contribute to JungminK1m/Springboot-Product-Study-V5 development by creating an account on GitHub.
github.com
📺 화면 설계📺
header.jsp
adminOrdersList.jsp
기존의 ordersList는 구매자 본인의 주문 목록이고,
adminOrdersList는 관리자가 유저들의 주문목록을 보는 화면이다.
(파일 이름 센스 부족 뭐임...와 진짜 누가보면 관리자가 구매한 목록 보는 페이지인 줄 알겠네)
🎤 코드 리뷰 🎤
우선 헤더에 유저구매목록 메뉴를 만들어 주자!
href는 주소는 컨트롤러의 @GetMapping 주소와 같다!
adminFindAll 메서드를 호출해서 orderedList에 담아주었다.
orderedList를 다시 Model 객체에 담아준다.
<왜 리턴타입이 AdminOrdersListDto일까?>
매개변수에 AdminOrdersListDto라는 것도 없는데 갑자기? 뭐야? 라고 생각한 나를 위해 정리했다.
< adminFindAll의 Join문에 대한 설명 >
그려놓은 화면을 보면
userName, ordersName, ordersPrice, ordersQty, createdAt 이 필요하다.
하지만 orders(주문) 테이블에는 user_name에 대한 정보가 입력되어 있지 않기 때문에
user 테이블과 조인해 주어야 한다.
user_id의 값만으로는 찾아올 수 없다.
왜냐하면 이전에 구매자 입장에서 본인의 주문목록을 볼 때는 데이터 바인딩을 통해 로그인 한 본인의 userId를 가져올 수 있었지만,
지금은 관리자의 입장에서 특정 유저 한 명이 아니라 유저 "모두"의 결과를 보아야 하기 때문이다.
레파지토리 메서드를 새로 만들어서 쿼리문을 새로 짜야 한다.
user 테이블에선 user_name만 가져오고, 나머지는 orders 테이블에 있는 정보를 가져왔다.
조인 조건은 user 테이블과 orders 테이블 동시에 있는 user_id로 연결시켜 준다.
where 절을 통해서 orders_qty(주문 수량)가 1개 이상인 유저로 찾아준다.
주문 수량이 0개라는 것은 주문한 적이 없다는 거니까..
구매자의 본인 주문목록 조회 쿼리와
관리자의 유저주문목록 조회 쿼리는 이렇게 차이가 있다! 아예 다른 쿼리문이다.
JSP에서는 orderedList 이름이 너무 길어 op로 정하고 데이터를 사용하였다😮
📊 결과 확인 📊
DB에 있는대로 유저의 구매목록이 뜨는 모습이다.
'KDT 풀스택 국비 과정 > 파이널 프로젝트(미니)' 카테고리의 다른 글
[📚상품 구매 사이트 5단계] 구매자 - JavaScript를 이용해서 회원가입 시 아이디 중복체크, 유효성 검사하기 (0) | 2023.05.09 |
---|---|
[📚상품 구매 사이트 5단계] 구매자/관리자 - 마이페이지, 회원정보수정하기, 탈퇴하기 기능 만들기 (0) | 2023.04.27 |
[📚상품 구매 사이트 5단계] 관리자 페이지 - 유저 목록보기, 유저 삭제하기 (0) | 2023.04.27 |
[📚상품 구매 사이트 4단계] MySQL DB 연결 없이 관리자 페이지 구현하기 - 5. 구매자 로그인/회원가입 유효성 체크 추가 (0) | 2023.04.27 |
[📚상품 구매 사이트 4단계] MySQL DB 연결 없이 관리자 페이지 구현하기 - 4. 관리자 상품 등록하기, 수정하기, 삭제하기 (0) | 2023.04.26 |