찜 다중 삭제 다이어그램.drawio.png

찜 목록 다이어그램.drawio

WishListController

// 선택 삭제
	@RequestMapping(value = "/deleteWishList.do", method = RequestMethod.POST)
	public String deleteWishList(HttpSession session, @RequestBody String checkedValArray) throws Exception{

		// 제이슨으로 객체에 담기
	    JSONObject jsonObject = new JSONObject(checkedValArray);
	    
	    // 제이슨 객체에 있는거 배열로 바꾸기
	    JSONArray checkedVal = jsonObject.getJSONArray("checkedVal");
	    
	    // 배열에 담기
	    List<String> checkedVals = new ArrayList<>();
	    
	    // 하나씩 빼보기
	    for (int i = 0; i < checkedVal.length(); i++) {
	    	checkedVals.add(checkedVal.getString(i));
	    }
	    
	    // 리스트에 잘 들어 갓나 확인.
	    for(String asd:checkedVals) {
	    	System.out.println("리스트에 잘 들어갔니? " + asd);
	    }
	    
	    // 세션에서 아이디 가져오고 맵에 선택한 글 번호들과 아이디 저장
	    Map<String, Object> deleteWishList = new HashMap<>();
	    
	    MemberDomain memberDomain = (MemberDomain) session.getAttribute("member");
    	String memberId = memberDomain.getMemberId();
    	
    	deleteWishList.put("memberId", memberId);
    	deleteWishList.put("checkedVals", checkedVals);
	    
    	wishListService.deleteWishLists(deleteWishList);
	    
		return "/mypage/wishlist/wishList";
	}

WishListServiceImpl

@Override
	public void deleteWishLists(Map<String, Object> deleteWishList) throws Exception {
		wishListDAO.deleteWishLists(deleteWishList);
	}

WishListDAOImpl

	// 선택 삭제
	@Override
	public void deleteMyBookMarkList(Map<String, Object> deleteBookMark) throws DataAccessException {
		sqlSession.delete("mapper.bookMark.deleteMyBookMarkList", deleteBookMark);
	}

WishList.xml

<!-- 체크 박스 찜 제거 -->
<delete id="deleteWishLists" parameterType="Map">
    	DELETE FROM wishList
    	WHERE memberId = #{memberId} AND productName IN
    <foreach item="productName" collection="checkedVals" open="(" separator="," close=")">
        	#{productName}
    </foreach>
</delete>

WishList.jsp

function checkDelete(){
	
	// 해당 아이디에 있는 모든 체크 박스 선택
	var checkBoxs = $("#checkArea > *");
	var checkedVal = [];
	
	// 체크 되었는지 확인.
	for (var i = 0; i < checkBoxs.length; i++){
		if(checkBoxs[i].checked){
		
		// 배열에 값들을 밀어 넣기.
		checkedVal.push(checkBoxs[i].value);
		}
	}
	
    if (checkedVal.length > 0) {
        $.ajax({
            url: '/gami/mypage/wishlist/deleteWishList.do',
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify({ checkedVal: checkedVal }),
            
            success: function() {
                alert("삭제가 완료 되었습니다.");
                location.reload();
            },
            
            error: function() {
                alert("오류가 발생하였습니다. 다시 시도해 주세요.");
            }
        });
        
    } else {
        alert("체크된 항목이 없습니다.");
    }
	
};

function checkAll() {
    var checkBoxs = $("#checkArea > *");
    var checkBoxAll = $("#checkAll").is(":checked");

    if (checkBoxAll) {
        checkBoxs.prop("checked", true);
    } else {
        checkBoxs.prop("checked", false);
    }
}