JiwoonKimKr / prjct-personal-q3-2024

Personal Project_Web Development_Q3_2024
http://13.125.131.19
0 stars 0 forks source link

관리자페이지 사용자 정보(+반려견 상세정보)조회 페이지 & 메인페이지 상품목록 마크업_07 08 2024 #9

Closed JiwoonKimKr closed 1 month ago

JiwoonKimKr commented 1 month ago

(수정) 🚫쇼핑몰 메인페이지 상품목록 마크업 & API

🚧🚧🚧🚫🛑🚫🛑 Product Table 관련하여, 현재 상품 재고 수량을 어떻게 기재할지 고민중, 별도 테이블로 빼야 하는지, 아니면 기존 테이블에 Column을 추가해서 update 하는 방식으로 해야 하는지 고민해봐야!

JiwoonKimKr commented 1 month ago

💡💡JPA에 limit SQL문 역할을 하는 top5 top10같은 구문 뒤에는 꼭 By를 붙여야 한다! 까먹지 말기ㅠㅠ

사용자 정보 조회 관련, JPA로 검색페이지 API 작성하는 시도 해봄; 생각보다 어렵지 않았다🤩🤩 하지만 조만간 꼭 🚧🚫🛑날짜 관련된 검색 항목들은 기간 설정할 수 있도록 View랑 JPA까지(다른 MyBatis 활용 조회 페이지도 마찬가지) 수정해야 함!

jUnit 테스트 활용해서 중간중간 확인하니까 너무 마음이 편하다. 진작 이렇게 할 걸ㅠㅡㅠ

JiwoonKimKr commented 1 month ago

사용자 조회 마크업 & API 작성; 반려견 상세 조회도 마무리 해야🙃🙃사용자 조회 후 Column에 반려견 목록이 뜨고, 클릭하면 반려견 상세 조회 페이지로 넘어가도록 설계되어 있는 상태;

JiwoonKimKr commented 1 month ago

반려견 상세 조회 마크업& 상세조회 API까지 구현 VO에 보호자(user) 관련 정보도 추가해서 한 꺼번에 Model로 보내도록 보완해야;

또한 관리자 페이지에서 Update, Delete API (또 Create까지!?) 구현해야 할 듯; Product의 경우에는 update, Invoice의 경우도 update(Patch)와 delete 구현이 필요할 듯

JiwoonKimKr commented 1 month ago

💡💡💡 thymeleaf가 Javascript에서 먹히지 않아서 session.userId를 불러오질 못했다. [[${session.userId}]]가 안 먹히나 싶었다. 알고보니 <script th:inline="javascript">가 script 태그에 쓰여있지 않았던 탓!

(수정) layout Fragement에 해당하는 header.html 쪽을 건드렸던 탓인지, 원래는 th:inline=javascript를 별도 기재하지 않아도 작동한다고 배움💡💡

JiwoonKimKr commented 1 month ago

Product 관련 수량을 저장하고 조회하는 별도의 DB Table을 구성해야 한다 🚧🛑💡

JiwoonKimKr commented 1 month ago

AdminProductRestController에서 Product 상세항목 내려보낼 때, 다른 항목들 처럼 VO로 내리도록 바꿔야; AdminProductVO라는 도메인 생성해서 BO 통하여 Controller에 뿌려야; 해당 상품ID로 product_buffer라는 DB table에서 SQL문으로 수량을 별도로 받아오도록 해야;

JiwoonKimKr commented 1 month ago

product_buffer는 JpaRepository에서 countByProductId()라는 방식으로 제품 수량을 뽑아옴. AdminProductVO에 수량을 담아서 View에 뿌려주도록 변경;

Invoice에서도 상품 종류 뿐만 아니라 product_buffer의 고유 번호도 각각 포함하고 있어야 한다. 10개의 동일 제품이라도 각 product_buffer PK가 다르기 때문이다.

일단 얼른 product_buffer에 invoiceID도 넣어야 겠다 ㅠ

JiwoonKimKr commented 1 month ago

집중력이 떨어져서ㅠㅡㅜ product_buffer 관련된 CRUD는 내일 보완해야 할 듯 ㅠㅡㅠ

JiwoonKimKr commented 1 month ago

💡💡💡 thymeleaf가 Javascript에서 먹히지 않아서 session.userId를 불러오질 못했다. [[${session.userId}]]가 안 먹히나 싶었다. 알고보니 <script th:inline="javascript">가 script 태그에 쓰여있지 않았던 탓!

(수정) layout Fragement에 해당하는 header.html 쪽을 건드렸던 탓인지, 원래는 th:inline=javascript를 별도 기재하지 않아도 작동한다고 배움💡💡

let userId =/*[[${session.userId}]]*/null;라고 쓸 때 thymeleaf 관련 구문들과 null을 완전 붙여서 써야 했다.

th:inline="javascript"를 안 써서 발생한 게 아니었다. 관련 구문들을 안 붙여서 쓰면 let userId = /* 5 */ null이런 식으로 나왔다