카테고리 없음

240206_스프링부트 쇼핑몰 프로젝트

Seungyeon.Jung 2024. 2. 6. 16:56

클래스분석 UML Class Diagram

인텔리제이->패키지 선택->우클릭->diagrams->class선택->diagrams

itemRepository.java

    @Modifying
    @Query("DELETE FROM CartItem c WHERE c.item.id = :itemId")
    void deleteCartItemByItemId(Long itemId);

    @Modifying
    @Query("DELETE FROM OrderItem o WHERE o.item.id = :itemId")
    void deleteOrderItemByItemId(Long itemId);

    @Modifying
    @Query("DELETE FROM ItemImg o WHERE o.item.id = :itemId")
    void deleteItemImgByItemId(Long itemId);
------------------------------------------------------------------------------------------
ItemService.java

    @Transactional
    public void deleteItem(Long itemId) {
        
        // CartItem, OrderItem, ItemImg 엔티티들을 삭제
        itemRepository.deleteItemImgByItemId(itemId);
        itemRepository.deleteCartItemByItemId(itemId);
        itemRepository.deleteOrderItemByItemId(itemId);

        // 아이템 삭제
        itemRepository.deleteById(itemId);
    }
------------------------------------------------------------------------------------------
itemController.java

    @DeleteMapping(value = "/item/{itemId}")    // 아이템 삭제 수정
    public @ResponseBody ResponseEntity deleteItem(@PathVariable("itemId") Long itemId){

        itemService.deleteItem(itemId);

        return new ResponseEntity<Long>(itemId, HttpStatus.OK);
    }

------------------------------------------------------------------------------------------
itemMng.html
          function deleteItem(obj){
            var itemId = obj.getAttribute('data-id');
            var token = $("meta[name='_csrf']").attr("content");
            var header = $("meta[name='_csrf_header']").attr("content");

            var url = "/item/" + itemId;

            $.ajax({
                url      : url,
                type     : "DELETE",
                beforeSend : function(xhr){
                    xhr.setRequestHeader(header, token);
                },
                dataType : "json",
                cache   : false,
                success  : function(result, status){
                    location.href='/admin/items';
                },
                error : function(jqXHR, status, error){
                    if(jqXHR.status == '401'){
                        alert('로그인 후 이용해주세요');
                        location.href='/members/login';
                    } else{
                        alert(jqXHR.responseJSON.message);
                    }
                }
            });
        }


	    <td>
                    <button type="button" class="close" aria-label="Close">
                        <span aria-hidden="true" th:data-id="${item.id}" 
                        onclick="deleteItem(this)">x</span>
                    </button>
                </td>
------------------------------------------------------------------------------------------


실습-수정내용v1.1-shop_master.pptx
2.22MB