나만의 select shop 만들기

등록한 관심상품 최저가 설정하기

코린이 연대기 2020. 12. 10. 11:20

마지막으로 관심상품 등록하기에서 마무리 못한 최저가 설정 기능을 만들어보자

 

관심상품 등록하기를 위한 모달까지는 띄웠지만 최저가를 설정해주는 기능이 없었다.

크롬 개발자 도구에서 해당 버튼을 확인하면 setMyprice() 기능을 구현해야 한다는걸 알 수있다.

 

setMyprice 에서는 #myprice 에서 입력값을 받아 유효성 처리를 해주고

addProject() 에서 response.id 값을 targetId에 넣어줬으니 이걸 key값인 칼럼의 myprice에 #myprice 를 넣어줘야 한다.

 

static > basic.js

function setMyprice() {

    let myprice = $('#myprice').val();
    // 1. id가 myprice 인 input 태그에서 값을 가져온다.

    if (myprice == ''){
        alert('값을 입력해주세요');
        $('#myprice').focus;
        return;
    }
    // 2. 만약 값을 입력하지 않았으면 alert를 띄우고 중단한다.

    $.ajax({
        type: "PUT",
        url: `/api/products/${targetId}`,
        contentType: "application/json",
        data: JSON.stringify({myprice: myprice}),
        success: function (response) {
            // 4. 모달을 종료한다. $('#container').removeClass('active');
            $('#container').removeClass('active');
            // 5. 성공적으로 등록되었음을 알리는 alert를 띄운다.
            alert('성공적으로 등록되었습니다.');
            // 6. 창을 새로고침한다. window.location.reload();
            window.location.reload();
        }
    })

}

 

이제 setMyprice 에서 ajax로 가져온 id 의 myprice 값을 controller를 통해 업데이트 해준다.

controller > ProductRestController.java

    // 설정 가격 변경
    @PutMapping("/api/products/{id}")
    public Long updateProduct(@PathVariable Long id, @RequestBody ProductMypriceRequestDto requestDto) {
        return productService.update(id, requestDto);
    }