본문 바로가기
✨ Back-end/Spring-Boot

[Spring] 쇼핑몰 - 53 관리자 계정 주문 관리 조회

by 환풍 2023. 4. 25.
728x90

 

주문 관리에 데이터를 뽑아보자.


주문관리 페이지를 꾸미기 위해 일단 데이터를 담은 테이블을 만들어보자.

STATUS_INFO , ORDER_STATUS 

STATUS_INFO 테이블과 ORDER_STATUS 테이블 두개를 생성해주었다.

ORDER_STATUS

STATR WITH 1 -> 1부터 시작
INCREMENT BY 1 -> 시퀸스가 1씩 증가
MINVALUE  1 -> 최소값 1
MAXVALUE  1 -> 최대값 100 

NEXTVAL -> 실행 시마다 1씩 증가된다.

CURRVAL -> 현재 값 조회

 

1. 구매시 주문 상태정보 테이블에 데이터 INSERT
2. 주문관리 페이지 -> 주문 목록 조회(전체)
컬럼 : NO, 구매코드, 구매자ID, 구매자연락처, 결제금액, 주문상태(문자), 구매날짜

join

join을 사용하여 각 테이블에서 필요한 데이터들을 뽑아와보았다.

OrderStatusVO, StatusInfoVO

DB에서 만든 데이터들을 VO에 똑같이 만들어주었다.

admin-mapper.xml

주문 상태 정보와 상태 정보 조회 쿼리문을 만들어주었다.

AdminService, AdminServiceImpl

 

AdminController 컨트롤러

 

order_manage.html

컨트롤러에서 model 객체로 뽑아온 데이터들을 각각 foreach문을 돌려 데이터를 착출하였다.

 

이렇게 데이터들이 잘 들어가있는 것을 확인해볼 수 있다.

admin-mapper.xml

association을 사용하고, VO에 변수를 넣어줌으로써 연관관계가 성립된다.

이렇게하면 굳이 service를 두개 만들지 않고, 하나의 쿼리만으로 association을 통해 끌어와서 사용할 수 있다.

order_manage.html

html에선 이렇게 데이터를 뽑아와서 사용해줄 수 있다.

 

buy-mapper.xml , buyServiceImpl

buyMapper에서 구매 후 구매 정보 등록을 위한 쿼리를 작성후, ServiceImpl에서 선택 구매 할 때 쿼리문을 넣어주었다.

 

item_detail.html

여기엔 session으로 받아온 데이터들이 들어와서 경로로 이동해야하는데, 나는 session 작업을 모두 지워주었기 때문에 발생하는 오류이다.

item_detail.html

기존에 있던 session 데이터 값들 대신해서 [[${#authentication.name}]] 을 사용해주었다.

item_detail.html

js에서 원래 ' ' 값인 memId를 anonymousUser로 바꿔주면, 로그인이 되지 않았을 땐 로그인 창을 띄울 것이다.

 

정상적으로 구매 페이지로 이동하며 데이터가 넘어온 것을 확인할 수 있다.

 

 

반응형

댓글