예약 취소는 db에 있는 imp_uid를 사용하면 된다
예약을 했다면
imp_uid도 같이 들어가 있다
이제 삭제 로직을 만들건대
개별 취소가 가능해야 하기 때문에
가격이 들어올 수 있게 코드를 바꾸자
restcontroller
reservationdto.setPrice(seatInforVo.getPrice());
dto에 넣어주고
vo
@Column(name = "price",nullable = false)
private int price;
this.price=reservationdto.getPrice();
추가해주면 테이블이 바뀌고
save 할 때 자동으로 들어간다
service는 바꿀 필요가 없다
이제 환불을 구현해보자
service
검증을 해준다
존재하는 예약인지 올바른 예약인지
그리고 맞다면 객체를 주고 아니라면 null을 준다
환불 로직은 이전에 구현했다
https://cordingmonster.tistory.com/78
하지만 여기서 끝이 아니라
이전 로직을 조금 바꿔줘야 한다
예를 들어 a-1 좌석 10/12시를 예약했는데
둘 중 하나만 취소된다면
1000원 중 500원만 환불될 수 있게!
service
if(returnPrice!=0){
body.put("amount", returnPrice);
}
로 판단해서 금액이 있다면
일부 환불이기 때문에
api에게 바디를 추가해서
던 저주자!
service
iamportservice.cancleBuy(reservationvo.getImp_uid(),reservationvo.getPrice());
reservationdao.deleteById(rid);
historyservice.deleteHistory(rid);
세줄이 환불/db삭제를 해준다
restcontroller
js
결과
예약
개별 취소를 해보자
부분 취소가 완료되었다!
솔직히 조금 당황했었다
여러 개 중 한 개만 예약을
취소하는 경우를 생각을 못했었다
제일 무서운 순간이다 어 코드 다 갈아야 하나..?
근데 생각해보면 db자체에 문제가 있어서
db에 금액만 추가하면 되는 문제였다
한 번 더 취소하겠다
성공!
이제 예약 변경을 만들어야 한다!
'Spring boot kim's cafe > 예약시스템' 카테고리의 다른 글
Springboot 당일 예약시스템 만들기!(4) with LocalDateTime (0) | 2021.07.12 |
---|---|
Springboot 예약변경 시스템!(1) with 아임포트 (0) | 2021.07.12 |
Springboot 결제+예약!(1) 당일 예약 시스템 with 아임포트 ,j쿼리,HttpSession (0) | 2021.07.08 |
Springboot 결제시스템 만들기!(3) 결제취소 with 아임포트,HttpEntity,RestTemplate,HttpHeaders,Json (0) | 2021.07.08 |
Springboot 결제 시스템 만들기!(2) 결제정보 가져오기 with 아임포트,RestTemplate,HttpHeaders,Json,HttpEntity (4) | 2021.07.08 |